Re: [PATCH 5/6] vdpa: introduce virtio pci driver
From: Jason Wang <jasowang@redhat.com>
Date: 2020-06-08 09:19:21
Also in:
kvm, lkml, virtualization
On 2020/6/8 下午2:32, Michael S. Tsirkin wrote:
On Mon, Jun 08, 2020 at 11:32:31AM +0800, Jason Wang wrote:quoted
On 2020/6/7 下午9:51, Michael S. Tsirkin wrote:quoted
On Fri, Jun 05, 2020 at 04:54:17PM +0800, Jason Wang wrote:quoted
On 2020/6/2 下午3:08, Jason Wang wrote:quoted
quoted
quoted
+static const struct pci_device_id vp_vdpa_id_table[] = { + { PCI_DEVICE(PCI_VENDOR_ID_REDHAT_QUMRANET, PCI_ANY_ID) }, + { 0 } +};This looks like it'll create a mess with either virtio pci or vdpa being loaded at random. Maybe just don't specify any IDs for now. Down the road we could get a distinct vendor ID or a range of device IDs for this.Right, will do. ThanksRethink about this. If we don't specify any ID, the binding won't work.We can bind manually. It's not really for production anyway, so not a big deal imho.I think you mean doing it via "new_id", right.I really meant driver_override. This is what people have been using with pci-stub for years now.
Do you want me to implement "driver_overrid" in this series, or a NULL id_table is sufficient?
quoted
quoted
quoted
How about using a dedicated subsystem vendor id for this? ThanksIf virtio vendor id is used then standard driver is expected to bind, right? Maybe use a dedicated vendor id?I meant something like: static const struct pci_device_id vp_vdpa_id_table[] = { { PCI_DEVICE_SUB(PCI_VENDOR_ID_REDHAT_QUMRANET, PCI_ANY_ID, VP_TEST_VENDOR_ID, VP_TEST_DEVICE_ID) }, { 0 } }; ThanksThen regular virtio will still bind to it. It has drivers/virtio/virtio_pci_common.c: { PCI_DEVICE(PCI_VENDOR_ID_REDHAT_QUMRANET, PCI_ANY_ID) },
IFCVF use this to avoid the binding to regular virtio device. Looking at pci_match_one_device() it checks both subvendor and subdevice there. Thanks