From: Jason Gunthorpe <jgg@nvidia.com>
To: Alexey Kardashevskiy <aik@ozlabs.ru>
Cc: Max Gurtovoy <mgurtovoy@nvidia.com>,
alex.williamson@redhat.com, cohuck@redhat.com,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
liranl@nvidia.com, oren@nvidia.com, tzahio@nvidia.com,
leonro@nvidia.com, yarong@nvidia.com, aviadye@nvidia.com,
shahafs@nvidia.com, artemp@nvidia.com, kwankhede@nvidia.com,
ACurrid@nvidia.com, cjia@nvidia.com, yishaih@nvidia.com,
mjrosato@linux.ibm.com, hch@lst.de
Subject: Re: [PATCH 8/9] vfio/pci: export nvlink2 support into vendor vfio_pci drivers
Date: Wed, 10 Mar 2021 15:40:02 -0400 [thread overview]
Message-ID: <20210310194002.GD2356281@nvidia.com> (raw)
In-Reply-To: <3b772357-7448-5fa7-9ecc-c13c08df95c3@ozlabs.ru>
On Thu, Mar 11, 2021 at 01:24:47AM +1100, Alexey Kardashevskiy wrote:
>
>
> On 11/03/2021 00:02, Jason Gunthorpe wrote:
> > On Wed, Mar 10, 2021 at 02:57:57PM +0200, Max Gurtovoy wrote:
> >
> > > > > + .err_handler = &vfio_pci_core_err_handlers,
> > > > > +};
> > > > > +
> > > > > +#ifdef CONFIG_VFIO_PCI_DRIVER_COMPAT
> > > > > +struct pci_driver *get_nvlink2gpu_vfio_pci_driver(struct pci_dev *pdev)
> > > > > +{
> > > > > + if (pci_match_id(nvlink2gpu_vfio_pci_driver.id_table, pdev))
> > > > > + return &nvlink2gpu_vfio_pci_driver;
> > > >
> > > >
> > > > Why do we need matching PCI ids here instead of looking at the FDT which
> > > > will work better?
> > >
> > > what is FDT ? any is it better to use it instead of match_id ?
> >
> > This is emulating the device_driver match for the pci_driver.
>
> No it is not, it is a device tree info which lets to skip the linux PCI
> discovery part (the firmware does it anyway) but it tells nothing about
> which drivers to bind.
I mean get_nvlink2gpu_vfio_pci_driver() is emulating the PCI match.
Max added a pci driver for NPU here:
+static struct pci_driver npu2_vfio_pci_driver = {
+ .name = "npu2-vfio-pci",
+ .id_table = npu2_vfio_pci_table,
+ .probe = npu2_vfio_pci_probe,
new userspace should use driver_override with "npu-vfio-pci" as the
string not "vfio-pci"
The point of the get_npu2_vfio_pci_driver() is only optional
compatibility to redirect old userspace using "vfio-pci" in the
driver_override to the now split driver code so userspace doesn't see
any change in behavior.
If we don't do this then the vfio-pci driver override will disable the
npu2 special stuff, since Max took it all out of vfio-pci's
pci_driver.
It is supposed to match exactly the same match table as the pci_driver
above. We *don't* want different behavior from what the standrd PCI
driver matcher will do.
Since we don't have any way to mix in FDT discovery to the standard
PCI driver match it will still attach the npu driver but not enable
any special support. This seems OK.
Jason
next prev parent reply other threads:[~2021-03-10 19:40 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-09 8:33 [PATCH v3 0/9] Introduce vfio-pci-core subsystem Max Gurtovoy
2021-03-09 8:33 ` [PATCH 1/9] vfio-pci: rename vfio_pci.c to vfio_pci_core.c Max Gurtovoy
2021-03-09 8:33 ` [PATCH 2/9] vfio-pci: rename vfio_pci_private.h to vfio_pci_core.h Max Gurtovoy
2021-03-09 8:33 ` [PATCH 3/9] vfio-pci: rename vfio_pci_device to vfio_pci_core_device Max Gurtovoy
2021-03-09 8:33 ` [PATCH 4/9] vfio-pci: introduce vfio_pci_core subsystem driver Max Gurtovoy
2021-03-09 8:33 ` [PATCH 5/9] vfio/pci: introduce vfio_pci_device structure Max Gurtovoy
2021-03-09 8:33 ` [PATCH 6/9] vfio-pci-core: export vfio_pci_register_dev_region function Max Gurtovoy
2021-03-09 8:33 ` [PATCH 7/9] vfio/pci_core: split nvlink2 to nvlink2gpu and npu2 Max Gurtovoy
2021-03-10 8:08 ` Christoph Hellwig
2021-03-09 8:33 ` [PATCH 8/9] vfio/pci: export nvlink2 support into vendor vfio_pci drivers Max Gurtovoy
2021-03-10 6:39 ` Alexey Kardashevskiy
2021-03-10 12:57 ` Max Gurtovoy
2021-03-10 13:02 ` Jason Gunthorpe
2021-03-10 14:24 ` Alexey Kardashevskiy
2021-03-10 19:40 ` Jason Gunthorpe [this message]
2021-03-11 1:20 ` Alexey Kardashevskiy
2021-03-11 1:34 ` Jason Gunthorpe
2021-03-11 1:42 ` Alexey Kardashevskiy
2021-03-11 2:00 ` Jason Gunthorpe
2021-03-11 7:54 ` Alexey Kardashevskiy
2021-03-11 9:44 ` Max Gurtovoy
2021-03-11 16:51 ` Jason Gunthorpe
2021-03-11 17:01 ` Jason Gunthorpe
2021-03-10 14:19 ` Alexey Kardashevskiy
2021-03-11 1:10 ` Max Gurtovoy
2021-03-19 15:23 ` Alex Williamson
2021-03-19 16:17 ` Jason Gunthorpe
2021-03-19 16:20 ` Christoph Hellwig
2021-03-19 16:28 ` Jason Gunthorpe
2021-03-19 16:34 ` Christoph Hellwig
2021-03-19 17:36 ` Alex Williamson
2021-03-19 20:07 ` Jason Gunthorpe
2021-03-19 21:08 ` Alex Williamson
2021-03-19 22:59 ` Jason Gunthorpe
2021-03-20 4:40 ` Alex Williamson
2021-03-21 12:58 ` Jason Gunthorpe
2021-03-22 16:40 ` Alex Williamson
2021-03-23 19:32 ` Jason Gunthorpe
2021-03-24 2:39 ` Alexey Kardashevskiy
2021-03-29 23:10 ` Alex Williamson
2021-04-01 13:04 ` Cornelia Huck
2021-04-01 13:12 ` Jason Gunthorpe
2021-04-01 21:49 ` Alex Williamson
2021-03-22 15:11 ` Christoph Hellwig
2021-03-22 16:44 ` Jason Gunthorpe
2021-03-23 13:17 ` Christoph Hellwig
2021-03-23 13:42 ` Jason Gunthorpe
2021-03-09 8:33 ` [PATCH 9/9] vfio/pci: export igd support into vendor vfio_pci driver Max Gurtovoy
2021-03-10 8:15 ` Christoph Hellwig
2021-03-10 12:31 ` Jason Gunthorpe
2021-03-11 11:37 ` Christoph Hellwig
2021-03-11 12:09 ` Max Gurtovoy
2021-03-11 15:43 ` Jason Gunthorpe
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=20210310194002.GD2356281@nvidia.com \
--to=jgg@nvidia.com \
--cc=ACurrid@nvidia.com \
--cc=aik@ozlabs.ru \
--cc=alex.williamson@redhat.com \
--cc=artemp@nvidia.com \
--cc=aviadye@nvidia.com \
--cc=cjia@nvidia.com \
--cc=cohuck@redhat.com \
--cc=hch@lst.de \
--cc=kvm@vger.kernel.org \
--cc=kwankhede@nvidia.com \
--cc=leonro@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=liranl@nvidia.com \
--cc=mgurtovoy@nvidia.com \
--cc=mjrosato@linux.ibm.com \
--cc=oren@nvidia.com \
--cc=shahafs@nvidia.com \
--cc=tzahio@nvidia.com \
--cc=yarong@nvidia.com \
--cc=yishaih@nvidia.com \
/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.