On Wed, 2008-05-14 at 11:59 +0300, Avi Kivity wrote:
> Rusty Russell wrote:
> >> Sorry to barge in late, but IMO the timer should be on the host, which
> >> is cheaper than on the guest (well, a 100ms timer is likely zero cost,
> >> but  I still don't like it).
> >>
> >> the host should fire a tx completion interrupt whenever the completion
> >> queue has "enough" entries, where we can define "enough" now as the
> >> halfway mark or a timer expiry, whichever comes earlier.
> >>
> >> We can later improve "enough" to be "just enough so the timer never
> >> triggers" and adjust it dynamically.  It probably doesn't matter for
> >> Linux, but I don't want to punish guests that can do true async
> >> networking and depend on timely completion notification.
> >>     
> >
> > This implies that we should not be supressing notifications in the guest at 
> > all (unless we're sure there are more packets to come, which currently we 
> > never are: that needs new net infrastructure).
> >   
> 
> We don't have to be sure, just reasonably confident.  If we see a stream 
> of packets, we open the window, but set a timer in case we're wrong.  
> The expectation is that the timer will only fire when tx rate drops (or 
> tx stops completely).
> 
> > But that means we'd get a notification on every xmit at the moment.  
> > Benchmarks anyone?
> >   
> 
> Notification on every xmit will surely kill performance.  I'm trying to 
> get batching to work but also good latency when the link is not saturated.

I think Rusty is speaking from the POV of the guest driver - i.e. that
virtio_net should never disable notifications on the xmit queue using
disable_cb()?

Sounds like you think agree, but that the host side should throttle the
rate of xmit notifications?

Cheers,
Mark.

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization

Reply via email to