-----Original Message-----Vendor-specific quirks of accessing VGA is a small portion. Other major portions are still handled by guest driver.
From: Paolo Bonzini [mailto:pbonzini@xxxxxxxxxx]
Sent: Tuesday, April 10, 2018 3:52 PM
To: Bie, Tiwei <tiwei.bie@xxxxxxxxx>; Jason Wang <jasowang@xxxxxxxxxx>
Cc: mst@xxxxxxxxxx; alex.williamson@xxxxxxxxxx; ddutile@xxxxxxxxxx;
Duyck, Alexander H <alexander.h.duyck@xxxxxxxxx>; virtio-dev@xxxxxxxxxxxx
open.org; linux-kernel@xxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx;
virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; Daly, Dan
<dan.daly@xxxxxxxxx>; Liang, Cunming <cunming.liang@xxxxxxxxx>; Wang,
Zhihong <zhihong.wang@xxxxxxxxx>; Tan, Jianfeng <jianfeng.tan@xxxxxxxxx>;
Wang, Xiao W <xiao.w.wang@xxxxxxxxx>
Subject: Re: [virtio-dev] Re: [RFC] vhost: introduce mdev based hardware
vhost backend
On 10/04/2018 06:57, Tiwei Bie wrote:
I think so. We have vendor-specific quirks, and at some point there was anSo you just move the abstraction layer from qemu to kernel, and youI'm not quite sure. Do you think it's acceptable to add various vendor
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.
specific hardware drivers in QEMU?
idea of using quirks to implement (vendor-specific) live migration support for
assigned devices.
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
Paolo