• Nir Weiner's avatar
    KVM: Expose the initial start value in grow_halt_poll_ns() as a module parameter · 49113d36
    Nir Weiner authored
    The hard-coded value 10000 in grow_halt_poll_ns() stands for the initial
    start value when raising up vcpu->halt_poll_ns.
    It actually sets the first timeout to the first polling session.
    This value has significant effect on how tolerant we are to outliers.
    On the standard case, higher value is better - we will spend more time
    in the polling busyloop, handle events/interrupts faster and result
    in better performance.
    But on outliers it puts us in a busy loop that does nothing.
    Even if the shrink factor is zero, we will still waste time on the first
    iteration.
    The optimal value changes between different workloads. It depends on
    outliers rate and polling sessions length.
    As this value has significant effect on the dynamic halt-polling
    algorithm, it should be configurable and exposed.
    Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
    Reviewed-by: default avatarLiran Alon <liran.alon@oracle.com>
    Signed-off-by: default avatarNir Weiner <nir.weiner@oracle.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    49113d36
book3s_hv.c 141 KB