All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Asias He <asias.hejun@gmail.com>,
	Pekka Enberg <penberg@cs.helsinki.fi>,
	Cyrill Gorcunov <gorcunov@gmail.com>,
	kvm@vger.kernel.org
Subject: Re: [transparent networking] Re: [PATCH] kvm tools: Implement virtio network device
Date: Wed, 13 Apr 2011 16:38:32 +0300	[thread overview]
Message-ID: <4DA5A758.4070808@redhat.com> (raw)
In-Reply-To: <4DA5A633.8060104@redhat.com>

On 04/13/2011 04:33 PM, Avi Kivity wrote:
> On 04/13/2011 04:02 PM, Ingo Molnar wrote:
>> * Asias He<asias.hejun@gmail.com>  wrote:
>>
>> > >>  Here are some scp performance test for differenct implementations:
>> > >>  None of rx and tx as thread:
>> > >>  guest to host 3.2MB/s
>> > >>  host  to guest 3.1MB/s
>> > >>
>> > >>  Only rx as thread:
>> > >>  guest to host  14.7MB/s
>> > >>  host  to guest 33.4MB/s
>> > >>
>> > >>  Both rx and tx as thread(This patch works this way):
>> > >>  guest to host  19.8MB/s
>> > >>  host  to guest 32.5MB/s
>> > >>
>> > >>  Signed-off-by: Asias He<asias.hejun@gmail.com>
>> > >
>> > >  This is already in master. Thanks!
>> > >
>> >
>> >  Ingo suggested to CC the updated version of this patch to kvm 
>> list. So I
>> >  am posting this patch again.
>>
>> Thanks Asias, cool stuff.
>>
>> Maybe other KVM developers want to chime in about how to best implement
>> transparent (non-TAP-using) guest-side networking.
>>
>> The best approach would be to not go down as low as the IP/Ethernet 
>> packeting
>> level (it's unnecessary protocol overhead), but to implement some 
>> sort of
>> streaming, virtio based TCP connection proxying support.
>>
>> Strictly talking the guest does not need ICMP packets to have working 
>> Internet
>> connectivity - only passing/tunneling through TCP sockets would be 
>> enough. The
>> following highlevel ops are needed:
>>
>>   - connect/shutdown/close
>>   - send/receive
>>   - poll
>>
>> And would be passed through to the host side and mirrored there into 
>> real
>> connect/shutdown TCP socket ops and into send/receive ops.
>>
>> The guest OS does not need to be 'aware' of this in any way, as long 
>> as the
>> bzImage has this magic guest tunneling support included.
>>
>> Obviously, such a highlevel approach would be much faster as well 
>> than any
>> packet level virtual networking approach.
>>
>> Does something like this exist upstream, or do we have to implement it?
>>
>
> macvtap does non-privileged setupless networking.
>

But this doesn't really answer your message.  No, there is no tcp-level 
virtio device.  However, because of GSO/GRO, I don't think there is a 
huge win to be gained by bypassing the lower layers.  If you want to 
send a megabyte's worth of data into a tcp stream, you prepend a header 
and post it to virtio-net, and this goes all the way down to the real 
device.

I'm not sure tcp-offload like you propose would pass netdev@.  Similar 
approaches for real hardware were rejected since they would bypass the 
tcp stack.  Things like netfilter would no longer work.

-- 
error compiling committee.c: too many arguments to function


  reply	other threads:[~2011-04-13 13:38 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-13 11:48 [PATCH] kvm tools: Implement virtio network device Asias He
2011-04-13 11:51 ` Pekka Enberg
2011-04-13 12:00   ` Asias He
2011-04-13 13:02     ` [transparent networking] " Ingo Molnar
2011-04-13 13:33       ` Avi Kivity
2011-04-13 13:38         ` Avi Kivity [this message]
2011-04-13 13:39         ` Asias He
2011-04-13 16:21       ` Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DA5A758.4070808@redhat.com \
    --to=avi@redhat.com \
    --cc=asias.hejun@gmail.com \
    --cc=gorcunov@gmail.com \
    --cc=kvm@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=penberg@cs.helsinki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.