• Rusty Russell's avatar
    lguest: avoid sending interrupts to Guest when no activity occurs. · 95c517c0
    Rusty Russell authored
    If we track how many buffers we've used, we can tell whether we really
    need to interrupt the Guest.  This happens as a side effect of
    spurious notifications.
    
    Spurious notifications happen because it can take a while before the
    Host thread wakes up and sets the VRING_USED_F_NO_NOTIFY flag, and
    meanwhile the Guest can more notifications.
    
    A real fix would be to use wake counts, rather than a suppression
    flag, but the practical difference is generally in the noise: the
    interrupt is usually coalesced into a pending one anyway so we just
    save a system call which isn't clearly measurable.
    
    				Secs	Spurious IRQS
    1G TCP Guest->Host:		3.93	58
    1M normal pings:		100	72
    1M 1k pings (-l 120):		57	492904
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    95c517c0
lguest.c 52.9 KB