From: Avi Kivity <avi@redhat.com>
To: Gregory Haskins <gregory.haskins@gmail.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
"Ira W. Snyder" <iws@ovro.caltech.edu>,
netdev@vger.kernel.org,
virtualization@lists.linux-foundation.org, kvm@vger.kernel.org,
linux-kernel@vger.kernel.org, mingo@elte.hu, linux-mm@kvack.org,
akpm@linux-foundation.org, hpa@zytor.com,
Rusty Russell <rusty@rustcorp.com.au>,
s.hetze@linux-ag.com, alacrityvm-devel@lists.sourceforge.net
Subject: Re: [PATCHv5 3/3] vhost_net: a kernel-level virtio server
Date: Wed, 16 Sep 2009 16:05:38 +0300 [thread overview]
Message-ID: <4AB0E2A2.3080409@redhat.com> (raw)
In-Reply-To: <4AB0CFA5.6040104@gmail.com>
On 09/16/2009 02:44 PM, Gregory Haskins wrote:
> The problem isn't where to find the models...the problem is how to
> aggregate multiple models to the guest.
>
You mean configuration?
>> You instantiate multiple vhost-nets. Multiple ethernet NICs is a
>> supported configuration for kvm.
>>
> But this is not KVM.
>
>
If kvm can do it, others can.
>>> His slave boards surface themselves as PCI devices to the x86
>>> host. So how do you use that to make multiple vhost-based devices (say
>>> two virtio-nets, and a virtio-console) communicate across the transport?
>>>
>>>
>> I don't really see the difference between 1 and N here.
>>
> A KVM surfaces N virtio-devices as N pci-devices to the guest. What do
> we do in Ira's case where the entire guest represents itself as a PCI
> device to the host, and nothing the other way around?
>
There is no guest and host in this scenario. There's a device side
(ppc) and a driver side (x86). The driver side can access configuration
information on the device side. How to multiplex multiple devices is an
interesting exercise for whoever writes the virtio binding for that setup.
>>> There are multiple ways to do this, but what I am saying is that
>>> whatever is conceived will start to look eerily like a vbus-connector,
>>> since this is one of its primary purposes ;)
>>>
>>>
>> I'm not sure if you're talking about the configuration interface or data
>> path here.
>>
> I am talking about how we would tunnel the config space for N devices
> across his transport.
>
Sounds trivial. Write an address containing the device number and
register number to on location, read or write data from another. Just
like the PCI cf8/cfc interface.
>> They aren't in the "guest". The best way to look at it is
>>
>> - a device side, with a dma engine: vhost-net
>> - a driver side, only accessing its own memory: virtio-net
>>
>> Given that Ira's config has the dma engine in the ppc boards, that's
>> where vhost-net would live (the ppc boards acting as NICs to the x86
>> board, essentially).
>>
> That sounds convenient given his hardware, but it has its own set of
> problems. For one, the configuration/inventory of these boards is now
> driven by the wrong side and has to be addressed.
Why is it the wrong side?
> Second, the role
> reversal will likely not work for many models other than ethernet (e.g.
> virtio-console or virtio-blk drivers running on the x86 board would be
> naturally consuming services from the slave boards...virtio-net is an
> exception because 802.x is generally symmetrical).
>
There is no role reversal. The side doing dma is the device, the side
accessing its own memory is the driver. Just like that other 1e12
driver/device pairs out there.
>> I have no idea, that's for Ira to solve.
>>
> Bingo. Thus my statement that the vhost proposal is incomplete. You
> have the virtio-net and vhost-net pieces covering the fast-path
> end-points, but nothing in the middle (transport, aggregation,
> config-space), and nothing on the management-side. vbus provides most
> of the other pieces, and can even support the same virtio-net protocol
> on top. The remaining part would be something like a udev script to
> populate the vbus with devices on board-insert events.
>
Of course vhost is incomplete, in the same sense that Linux is
incomplete. Both require userspace.
>> If he could fake the PCI
>> config space as seen by the x86 board, he would just show the normal pci
>> config and use virtio-pci (multiple channels would show up as a
>> multifunction device). Given he can't, he needs to tunnel the virtio
>> config space some other way.
>>
> Right, and note that vbus was designed to solve this. This tunneling
> can, of course, be done without vbus using some other design. However,
> whatever solution is created will look incredibly close to what I've
> already done, so my point is "why reinvent it"?
>
virtio requires binding for this tunnelling, so does vbus. Its the same
problem with the same solution.
--
error compiling committee.c: too many arguments to function
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2009-09-16 13:05 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1251388414.git.mst@redhat.com>
2009-08-27 16:06 ` [PATCHv5 1/3] mm: export use_mm/unuse_mm to modules Michael S. Tsirkin
2009-08-28 15:31 ` Gregory Haskins
2009-08-27 16:07 ` [PATCHv5 2/3] mm: reduce atomic use on use_mm fast path Michael S. Tsirkin
2009-08-27 16:07 ` [PATCHv5 3/3] vhost_net: a kernel-level virtio server Michael S. Tsirkin
2009-09-03 18:39 ` Ira W. Snyder
2009-09-07 10:15 ` Michael S. Tsirkin
2009-09-08 17:20 ` Ira W. Snyder
2009-09-08 20:14 ` Michael S. Tsirkin
2009-09-11 15:17 ` Xin, Xiaohui
2009-09-13 5:46 ` Michael S. Tsirkin
2009-09-14 5:57 ` Xin, Xiaohui
2009-09-14 7:05 ` Michael S. Tsirkin
2009-09-11 16:00 ` Gregory Haskins
2009-09-11 16:14 ` Gregory Haskins
2009-09-13 12:01 ` Michael S. Tsirkin
2009-09-14 16:08 ` Gregory Haskins
2009-09-14 16:47 ` Michael S. Tsirkin
2009-09-14 19:14 ` Gregory Haskins
2009-09-15 12:35 ` Avi Kivity
2009-09-15 13:03 ` Gregory Haskins
2009-09-15 13:25 ` Avi Kivity
2009-09-15 13:50 ` Gregory Haskins
2009-09-15 14:28 ` Michael S. Tsirkin
2009-09-15 15:03 ` Avi Kivity
2009-09-15 20:08 ` Gregory Haskins
2009-09-15 20:40 ` Michael S. Tsirkin
2009-09-15 20:43 ` Gregory Haskins
2009-09-15 21:25 ` Michael S. Tsirkin
2009-09-15 21:39 ` Gregory Haskins
2009-09-15 21:38 ` Michael S. Tsirkin
2009-09-15 21:55 ` Gregory Haskins
2009-09-16 14:57 ` Arnd Bergmann
2009-09-16 15:13 ` Michael S. Tsirkin
2009-09-16 15:22 ` Arnd Bergmann
2009-09-16 16:08 ` Michael S. Tsirkin
2009-09-16 8:23 ` Avi Kivity
2009-09-16 11:44 ` Gregory Haskins
2009-09-16 13:05 ` Avi Kivity [this message]
2009-09-16 14:10 ` Gregory Haskins
2009-09-16 15:59 ` Avi Kivity
2009-09-16 19:22 ` Gregory Haskins
2009-09-16 21:00 ` Avi Kivity
2009-09-17 3:11 ` Gregory Haskins
2009-09-17 7:49 ` Avi Kivity
2009-09-17 14:16 ` Javier Guerra
2009-09-21 21:43 ` Ira W. Snyder
2009-09-22 9:43 ` Avi Kivity
2009-09-22 15:25 ` Ira W. Snyder
2009-09-22 15:56 ` Avi Kivity
2009-09-23 14:26 ` Gregory Haskins
2009-09-23 14:37 ` Avi Kivity
2009-09-23 15:10 ` Gregory Haskins
2009-09-23 17:58 ` Gregory Haskins
2009-09-23 19:37 ` Avi Kivity
2009-09-23 21:15 ` Gregory Haskins
2009-09-24 7:18 ` Avi Kivity
2009-09-24 18:03 ` Gregory Haskins
2009-09-25 8:22 ` Avi Kivity
2009-09-25 21:32 ` Gregory Haskins
2009-09-27 9:43 ` Avi Kivity
2009-09-30 20:04 ` Gregory Haskins
2009-10-01 8:34 ` Avi Kivity
2009-10-01 9:28 ` Michael S. Tsirkin
2009-10-01 19:24 ` Gregory Haskins
2009-10-03 10:00 ` Avi Kivity
2009-09-24 19:27 ` Ira W. Snyder
2009-09-25 7:43 ` Avi Kivity
2009-09-24 8:03 ` Avi Kivity
2009-09-24 18:04 ` Gregory Haskins
2009-09-17 3:57 ` Michael S. Tsirkin
2009-09-17 4:13 ` Gregory Haskins
2009-09-15 12:32 ` Avi Kivity
2009-09-14 16:53 ` Michael S. Tsirkin
2009-09-14 19:28 ` Gregory Haskins
2009-09-25 17:01 ` Ira W. Snyder
2009-09-27 7:43 ` Michael S. Tsirkin
[not found] <E88DD564E9DC5446A76B2B47C3BCCA150219600F9B@pdsmsx503.ccr.corp.intel.com>
2009-08-31 11:42 ` Xin, Xiaohui
2009-08-31 15:23 ` Arnd Bergmann
2009-09-01 14:58 ` Xin, Xiaohui
2009-08-31 17:52 ` Avi Kivity
2009-08-31 21:56 ` Anthony Liguori
2009-09-01 15:37 ` Xin, Xiaohui
2009-09-01 5:04 ` Xin, Xiaohui
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=4AB0E2A2.3080409@redhat.com \
--to=avi@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=alacrityvm-devel@lists.sourceforge.net \
--cc=gregory.haskins@gmail.com \
--cc=hpa@zytor.com \
--cc=iws@ovro.caltech.edu \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mingo@elte.hu \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
--cc=s.hetze@linux-ag.com \
--cc=virtualization@lists.linux-foundation.org \
/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 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).