• Kimberly Brown's avatar
    Drivers: hv: vmbus: Expose counters for interrupts and full conditions · 396ae57e
    Kimberly Brown authored
    Counter values for per-channel interrupts and ring buffer full
    conditions are useful for investigating performance.
    
    Expose counters in sysfs for 2 types of guest to host interrupts:
    1) Interrupts caused by the channel's outbound ring buffer transitioning
    from empty to not empty
    2) Interrupts caused by the channel's inbound ring buffer transitioning
    from full to not full while a packet is waiting for enough buffer space to
    become available
    
    Expose 2 counters in sysfs for the number of times that write operations
    encountered a full outbound ring buffer:
    1) The total number of write operations that encountered a full
    condition
    2) The number of write operations that were the first to encounter a
    full condition
    
    Increment the outbound full condition counters in the
    hv_ringbuffer_write() function because, for most drivers, a full
    outbound ring buffer is detected in that function. Also increment the
    outbound full condition counters in the set_channel_pending_send_size()
    function. In the hv_sock driver, a full outbound ring buffer is detected
    and set_channel_pending_send_size() is called before
    hv_ringbuffer_write() is called.
    
    I tested this patch by confirming that the sysfs files were created and
    observing the counter values. The values seemed to increase by a
    reasonable amount when the Hyper-v related drivers were in use.
    Signed-off-by: default avatarKimberly Brown <kimbrownkd@gmail.com>
    Reviewed-by: default avatarMichael Kelley <mikelley@microsoft.com>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    396ae57e
ring_buffer.c 15.8 KB