|
From: | Avi Kivity |
Subject: | Re: [Qemu-devel] Re: [PATCH 9/9] Introduce VLANClientState::cleanup() |
Date: | Thu, 30 Apr 2009 16:45:32 +0300 |
User-agent: | Thunderbird 2.0.0.21 (X11/20090320) |
Paul Brook wrote:
I'm still not understanding. Ethernet devices are fundamentally based around a bus architecture. "flip the TX/RX queues" only makes sense if you're talking about a point-point connection. For ethernet devices I see no reason to distinguish between "host" devices (slirp, vde, tap) and "guest" devices. They may be created for different reasons, but they're all doing fundamentally the same thing.In the bus model, there's an implicit copy-to-the-wire operation that results in replication of the packet to everything else on the bus. From a performance perspective, this is not at all ideal.I'm not convinced by this argument. I don't see why a one-many api requires a copy.
To achieve copyless receive (from guest perspective), you need to give the receive buffer to the transmitting device (tap). If there are more than one transmitting devices, you have a conflict.
Sure, you can short-ciruit the case where you have a pair of devices, but then you need to revoke posted receive descriptors.
-- error compiling committee.c: too many arguments to function
[Prev in Thread] | Current Thread | [Next in Thread] |