• S
    aio: self-tune polling time · 82a41186
    Stefan Hajnoczi 提交于
    This patch is based on the algorithm for the kvm.ko halt_poll_ns
    parameter in Linux.  The initial polling time is zero.
    
    If the event loop is woken up within the maximum polling time it means
    polling could be effective, so grow polling time.
    
    If the event loop is woken up beyond the maximum polling time it means
    polling is not effective, so shrink polling time.
    
    If the event loop makes progress within the current polling time then
    the sweet spot has been reached.
    
    This algorithm adjusts the polling time so it can adapt to variations in
    workloads.  The goal is to reach the sweet spot while also recognizing
    when polling would hurt more than help.
    
    Two new trace events, poll_grow and poll_shrink, are added for observing
    polling time adjustment.
    Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
    Message-id: 20161201192652.9509-13-stefanha@redhat.com
    Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
    82a41186
trace-events 9.6 KB