On Tue, Apr 10, 2018 at 09:23:53AM +0000, Liang, Cunming wrote: > > > > -----Original Message----- > > From: Paolo Bonzini [mailto:pbonz...@redhat.com] > > Sent: Tuesday, April 10, 2018 3:52 PM > > To: Bie, Tiwei <tiwei....@intel.com>; Jason Wang <jasow...@redhat.com> > > Cc: m...@redhat.com; alex.william...@redhat.com; ddut...@redhat.com; > > Duyck, Alexander H <alexander.h.du...@intel.com>; virtio-dev@lists.oasis- > > open.org; linux-ker...@vger.kernel.org; k...@vger.kernel.org; > > virtualizat...@lists.linux-foundation.org; netdev@vger.kernel.org; Daly, Dan > > <dan.d...@intel.com>; Liang, Cunming <cunming.li...@intel.com>; Wang, > > Zhihong <zhihong.w...@intel.com>; Tan, Jianfeng <jianfeng....@intel.com>; > > Wang, Xiao W <xiao.w.w...@intel.com> > > Subject: Re: [virtio-dev] Re: [RFC] vhost: introduce mdev based hardware > > vhost backend > > > > On 10/04/2018 06:57, Tiwei Bie wrote: > > >> So you just move the abstraction layer from qemu to kernel, and you > > >> still need different drivers in kernel for different device > > >> interfaces of accelerators. This looks even more complex than leaving > > >> it in qemu. As you said, another idea is to implement userspace vhost > > >> backend for accelerators which seems easier and could co-work with > > >> other parts of qemu without inventing new type of messages. > > > > > > I'm not quite sure. Do you think it's acceptable to add various vendor > > > specific hardware drivers in QEMU? > > > > I think so. We have vendor-specific quirks, and at some point there was an > > idea of using quirks to implement (vendor-specific) live migration support > > for > > assigned devices. > > Vendor-specific quirks of accessing VGA is a small portion. Other major > portions are still handled by guest driver. > > While in this case, when saying various vendor specific drivers in QEMU, it > says QEMU takes over and provides the entire user space device drivers. Some > parts are even not relevant to vhost, they're basic device function enabling. > Moreover, it could be different kinds of devices(network/block/...) under > vhost. No matter # of vendors or # of types, total LOC is not small. > > The idea is to avoid introducing these extra complexity out of QEMU, keeping > vhost adapter simple. As vhost protocol is de factor standard, it leverages > kernel device driver to provide the diversity. Changing once in QEMU, then it > supports multi-vendor devices whose drivers naturally providing kernel driver > there. > > If QEMU is going to build a user space driver framework there, we're open > mind on that, even leveraging DPDK as the underlay library. Looking forward > to more others' comments from community. > > Steve
Dependency on a kernel driver is fine IMHO. It's the dependency on a DPDK backend that makes people unhappy, since the functionality in question is setup-time only. As others said, we do not need to go overeboard. A couple of small vendor-specific quirks in qemu isn't a big deal. > > > > Paolo