From: Blue S. <bla...@gm...> - 2008-04-20 06:42:13
|
On 4/19/08, Anthony Liguori <an...@co...> wrote: > Blue Swirl wrote: > > > On 4/17/08, Anthony Liguori <ali...@us...> wrote: > > > > > > > Yes, the vector version of packet receive is tough. I'll take a look > at > > > your patch. Basically, you need to associate a set of RX vectors with > each > > > VLANClientState and then when it comes time to deliver a packet to the > VLAN, > > > before calling fd_read, see if there is an RX vector available for the > > > client. > > > > > > In the case of tap, I want to optimize further and do the initial > readv() > > > to one of the clients RX buffers and then copy that RX buffer to the > rest of > > > the clients if necessary. > > > > > > > > > > The vector versions should also help SLIRP to add IP and Ethernet > > headers to the incoming packets. > > > > > > Yeah, I'm hoping that with my posted linux-aio interface, I can add vector > support since linux-aio has a proper asynchronous vector function. > > Are we happy with the DMA API? If so, we should commit it now so we can > start adding proper vector interfaces for net/block. Well, the IOVector part and bdrv_readv look OK, except for the heavy mallocing involved. I'm not so sure about the DMA side and how everything fits together for zero-copy IO. For example, do we still need explicit translation at some point? |