> > Under windows, it is the code that gets the next free ref
> > that is protected by spinlocks. I believe that if we only get
> > the ref once, but then reuse that ref over and over, then
> > we'd get a lot better performace.
> >
>
> Yes. Avoiding the spinlock should improve performance. Definetely,
it
> should be a win on the RX path. But is it worth in the TX path, if you
now
> have to copy the packet? Do you have experimental data showing that
> copying is better than the spinlock? I don't have much experience with
> Windows but I think this would be very surprising...
Looking at the profiling data that I have collected, the copy operation
(max 1500 bytes copy, probably around 200-300 on average) does appear to
consume less CPU resources than the acquire spinlock operation. The
other thing to consider is that Windows seems to give us 2-3 separate
pages of data per packet, one containing the header, another containing
the next header, and one containing the layer 3 data. This would be
three get grant entry operations.
However, if I can avoid the spinlock-per-grant-entry, and also avoid
copying, then things will be even better!
Btw, with 'request-rx-copy = 1', does that mean that the backend still
makes copies of the data to give to us?
James
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|