From: Danilo Krummrich <dakr@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: "John Hubbard" <jhubbard@nvidia.com>,
"Alexandre Courbot" <acourbot@nvidia.com>,
"Joel Fernandes" <joelagnelf@nvidia.com>,
"Timur Tabi" <ttabi@nvidia.com>,
"Alistair Popple" <apopple@nvidia.com>,
"Zhi Wang" <zhiw@nvidia.com>, "Surath Mitra" <smitra@nvidia.com>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Alex Williamson" <alex.williamson@redhat.com>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Krzysztof Wilczyński" <kwilczynski@kernel.org>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <lossin@kernel.org>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Alice Ryhl" <aliceryhl@google.com>,
"Trevor Gross" <tmgross@umich.edu>,
nouveau@lists.freedesktop.org, linux-pci@vger.kernel.org,
rust-for-linux@vger.kernel.org,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 1/2] rust: pci: skip probing VFs if driver doesn't support VFs
Date: Thu, 2 Oct 2025 20:42:58 +0200 [thread overview]
Message-ID: <56daf2fe-5554-4d52-94b3-feec4834c5be@kernel.org> (raw)
In-Reply-To: <20251002183114.GD3299207@nvidia.com>
On 10/2/25 8:31 PM, Jason Gunthorpe wrote:
> This exactly how this function is used.
>
> The core PF driver provides an API:
>
> struct mlx5_core_dev *mlx5_vf_get_core_dev(struct pci_dev *pdev)
>
> Which takes in the VF as pdev and internally it invokes:
>
> mdev = pci_iov_get_pf_drvdata(pdev, &mlx5_core_driver);
Oh, I see, that makes sense then. Thanks for clarifying. I think I already had
in mind how this would look like in the Rust abstraction, and there we don't
need pci_iov_get_pf_drvdata() to achieve the same thing.
> /**
> * pci_iov_get_pf_drvdata - Return the drvdata of a PF
> * @dev: VF pci_dev
> * @pf_driver: Device driver required to own the PF
> *
> * This must be called from a context that ensures that a VF driver is attached.
> * The value returned is invalid once the VF driver completes its remove()
> * callback.
> *
> * Locking is achieved by the driver core. A VF driver cannot be probed until
> * pci_enable_sriov() is called and pci_disable_sriov() does not return until
> * all VF drivers have completed their remove().
> *
> * The PF driver must call pci_disable_sriov() before it begins to destroy the
> * drvdata.
> */
>
> Meaning nova-core has to guarentee to call pci_disable_sriov() before
> remove completes or before a failing probe returns as part of
> implementing SRIOV support.
Yes, I already thought about this. In the context of adding support for SR-IOV
in the Rust abstractions I'm planning on sending an RFC to let the subsystem
provide this guarantee instead (at least under certain conditions).
This will allow us to assert the device to be bound by the type system in the
Rust PCI abstraction, rather than having the driver to provide a guarantee to
call pci_disable_sriov() manually. :)
next prev parent reply other threads:[~2025-10-02 18:43 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-02 2:00 [PATCH v2 0/2] rust: pci: don't probe() VFs in nova-core John Hubbard
2025-10-02 2:00 ` [PATCH v2 1/2] rust: pci: skip probing VFs if driver doesn't support VFs John Hubbard
2025-10-02 11:49 ` Danilo Krummrich
2025-10-02 12:11 ` Jason Gunthorpe
2025-10-02 12:18 ` Danilo Krummrich
2025-10-02 12:39 ` Jason Gunthorpe
2025-10-02 13:03 ` Danilo Krummrich
2025-10-02 13:56 ` Jason Gunthorpe
2025-10-02 15:11 ` Danilo Krummrich
2025-10-02 15:23 ` Jason Gunthorpe
2025-10-02 16:05 ` Danilo Krummrich
2025-10-02 17:05 ` Jason Gunthorpe
2025-10-02 17:37 ` Danilo Krummrich
2025-10-02 17:40 ` Danilo Krummrich
2025-10-02 17:49 ` John Hubbard
2025-10-02 18:05 ` Jason Gunthorpe
2025-10-02 18:09 ` John Hubbard
2025-10-02 18:32 ` Jason Gunthorpe
2025-10-02 18:17 ` Danilo Krummrich
2025-10-02 18:31 ` Jason Gunthorpe
2025-10-02 18:42 ` Danilo Krummrich [this message]
2025-10-02 18:56 ` Jason Gunthorpe
2025-10-02 19:36 ` Danilo Krummrich
2025-10-02 21:04 ` Jason Gunthorpe
2025-10-02 21:14 ` Danilo Krummrich
2025-10-02 21:32 ` Danilo Krummrich
2025-10-02 23:40 ` Jason Gunthorpe
2025-10-03 0:57 ` Danilo Krummrich
2025-10-03 11:52 ` Jason Gunthorpe
2025-10-02 17:56 ` Jason Gunthorpe
2025-10-02 18:55 ` Danilo Krummrich
2025-10-02 2:00 ` [PATCH v2 2/2] gpu: nova-core: declare that VFs are not (yet) supported John Hubbard
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=56daf2fe-5554-4d52-94b3-feec4834c5be@kernel.org \
--to=dakr@kernel.org \
--cc=a.hindborg@kernel.org \
--cc=acourbot@nvidia.com \
--cc=airlied@gmail.com \
--cc=alex.gaynor@gmail.com \
--cc=alex.williamson@redhat.com \
--cc=aliceryhl@google.com \
--cc=apopple@nvidia.com \
--cc=bhelgaas@google.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=gary@garyguo.net \
--cc=jgg@nvidia.com \
--cc=jhubbard@nvidia.com \
--cc=joelagnelf@nvidia.com \
--cc=kwilczynski@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=nouveau@lists.freedesktop.org \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=simona@ffwll.ch \
--cc=smitra@nvidia.com \
--cc=tmgross@umich.edu \
--cc=ttabi@nvidia.com \
--cc=zhiw@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox