* [Qemu-devel] difference between receive_raw() and receive() NetClientInfo methods ?
@ 2013-06-06 9:40 Luigi Rizzo
2013-06-07 12:29 ` Stefan Hajnoczi
0 siblings, 1 reply; 2+ messages in thread
From: Luigi Rizzo @ 2013-06-06 9:40 UTC (permalink / raw)
To: qemu-devel; +Cc: Giuseppe Lettieri, Luigi Rizzo, Vincenzo Maffione
[-- Attachment #1: Type: text/plain, Size: 993 bytes --]
Can someone clarify what is the difference between the two methods
r
eceive_raw() and receive() in NetClientInfo ?
tap seems to be the only backend actually implementing receive_raw(),
but apart from prepending a vnet_hdr i cannot tell what is this for,
and whether receive_raw() is a custom addon for tap, or it can be used
by other backends to implement different features.
The reason I am asking is that we are working on a "fewer copies"
path between guests, and one of the things we need is an
asynchronous "receive" so that a backend can notify the frontend
when a buffer has been actually consumed.
Right now nc->info->receive() and friends are all synchronous,
and there is no mechanism to support asynchronous completion,
which forces the backend to make a copy if it cannot
complete the request inline.
Hence i probably need to add another method to NetClientInfo
so that the frontend can register the callback, or pass it to
the backend together with the buffer/iov
thanks
luigi
[-- Attachment #2: Type: text/html, Size: 3190 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-06-07 12:29 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-06 9:40 [Qemu-devel] difference between receive_raw() and receive() NetClientInfo methods ? Luigi Rizzo
2013-06-07 12:29 ` Stefan Hajnoczi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).