[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] one more question on ethernet front end

> If my domain loans a page out and then reduces its reservation, is it safe 
> to assume that when that page appears in the rx ring as a result that it 
> will be one of the ones I loaned out? in other words, do pages I return to 
> Xen for use in the rx ring get replaced by other pages, or do they come 
> back to me when they are full of data?

Nope, that wouldn't be a safe assumption.

All the pages given up by different domains go into the driver
domain's free buffer pool that are fed to the hardware.

When a packet is received by the Ethernet NIC, it will be DMAed
into whatever buffer happens to be the head of the queue. Once
the driver domain figures out which domain this packet should be
delivered to, it reassigns the page to that domain, so its then
able to map the page into its address space.

In a world with smarter NICs, we could give each domain its own
receive buffer pool and have the NIC do the demultiplex direct
into the domain's buffers. For the moment, the current scheme is
the best we can do with 'stock' hardware. [1]

Aside: some researchers have previously claimed that 'page
flipping' is slow as it involves TLB shootdowns on SMP systems.
Xen uses a few neat tricks such to avoid the need for shootdowns
in the vast majority of cases. It's not slow at all. Really.


[1] Keir and I built such as smart NIC a few years ago. See:

This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.