From: "Burakov, Anatoly" <anatoly.burakov@intel.com>
To: David Marchand <david.marchand@redhat.com>
Cc: <dev@dpdk.org>, <thomas@monjalon.net>, <maxime.coquelin@redhat.com>
Subject: Re: [RFC 0/8] Cleanup VFIO API and import Linux uAPI header
Date: Wed, 3 Sep 2025 16:25:10 +0200 [thread overview]
Message-ID: <ac5775a3-d5bd-4fec-9b0e-dcf92ca7ed47@intel.com> (raw)
In-Reply-To: <CAJFAV8yQ7D-k4ZjiP6jet2RrhNO0Y18iqXpdidB+AXOgTrFdxA@mail.gmail.com>
On 9/3/2025 11:52 AM, David Marchand wrote:
> Hello,
>
> On Wed, 3 Sept 2025 at 11:30, Burakov, Anatoly
> <anatoly.burakov@intel.com> wrote:
>>
>> On 9/3/2025 9:28 AM, David Marchand wrote:
>>> The VFIO headers have a number of issues:
>>> - showing to the world a lot of internal considerations,
>>> - defining macros with the VFIO_ namespace (confusing, and a source of
>>> conflicts with the VFIO official uAPI),
>>> - wrapping around VFIO uAPI in case the kernel headers do not contain the
>>> expected API (putting the burden on DPDK developers to find the right
>>> way to detect the presence of a VFIO feature),
>>> - (somehow related to the previous point) supporting old version of the
>>> Linux kernel while DPDK now requires a v5.4 Linux kernel at least,
>>>
>>> This series proposes to cleanup those headers by hiding as much as
>>> possible internal macros and structures, then removing the explicit
>>> inclusion of linux/vfio.h from rte_vfio.h (pushing this inclusion to the
>>> application which may want to do some funny stuff with VFIO and should
>>> already include this header on its own) and finally importing the VFIO
>>> uAPI header from Linux v6.15 for internal consumption by DPDK
>>> components.
>>>
>>>
>>
>> I've been working on something like this myself, so it'll be interesting
>> to compare notes! I too found that refactoring VFIO is a nightmare due
>> to how much stuff is exposed to external headers.
>
> Oh cool.
>
> A v2 is neeed, as this series breaks FreeBSD compilation.
> I'll wait for comments before sending.
>
>
Feel free to submit v2 at your own pace, as it might take a few days
before I can get to review this properly. I must say including uAPI in
DPDK is not something I thought of as I would've considered this to be a
very bold step, but it actually fixes a lot of problems in a really neat
way, so I like this idea.
--
Thanks,
Anatoly
next prev parent reply other threads:[~2025-09-03 14:25 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-03 7:28 David Marchand
2025-09-03 7:28 ` [RFC 1/8] vfio: remove confusing check on VFIO presence David Marchand
2025-09-03 9:38 ` Xu, Rosen
2025-09-03 7:28 ` [RFC 2/8] vfio: assume VFIO is always and only present on Linux David Marchand
2025-09-03 7:28 ` [RFC 3/8] vfio: remove public wrappers David Marchand
2025-09-03 7:28 ` [RFC 4/8] eal/linux: remove more internal VFIO macros David Marchand
2025-09-03 7:28 ` [RFC 5/8] eal/linux: remove internal VFIO wrappers for old Linux David Marchand
2025-09-03 7:28 ` [RFC 6/8] vfio: stop including Linux kernel header in public and driver API David Marchand
2025-09-03 9:38 ` Xu, Rosen
2025-09-03 7:28 ` [RFC 7/8] uapi: import VFIO header David Marchand
2025-09-03 7:28 ` [RFC 8/8] vfio: use imported uAPI header David Marchand
2025-09-03 9:38 ` Xu, Rosen
2025-09-03 7:50 ` [RFC 0/8] Cleanup VFIO API and import Linux " David Marchand
2025-09-03 9:29 ` Burakov, Anatoly
2025-09-03 9:52 ` David Marchand
2025-09-03 14:25 ` Burakov, Anatoly [this message]
2025-09-03 15:13 ` [RFC v2 0/9] " David Marchand
2025-09-03 15:13 ` [RFC v2 1/9] drivers: remove unneeded VFIO header inclusion David Marchand
2025-09-03 15:13 ` [RFC v2 2/9] vfio: remove confusing check on VFIO presence David Marchand
2025-09-03 15:13 ` [RFC v2 3/9] vfio: assume VFIO is always and only present on Linux David Marchand
2025-09-03 15:13 ` [RFC v2 4/9] vfio: remove public wrappers David Marchand
2025-09-03 15:13 ` [RFC v2 5/9] eal/linux: remove more internal VFIO macros David Marchand
2025-09-03 15:13 ` [RFC v2 6/9] eal/linux: remove internal VFIO wrappers for old Linux David Marchand
2025-09-03 15:22 ` [RFC v2 0/9] Cleanup VFIO API and import Linux uAPI header David Marchand
2025-09-03 15:17 ` David Marchand
2025-09-03 15:17 ` [RFC v2 1/9] drivers: remove unneeded VFIO header inclusion David Marchand
2025-09-03 15:17 ` [RFC v2 2/9] vfio: remove confusing check on VFIO presence David Marchand
2025-09-03 15:17 ` [RFC v2 3/9] vfio: assume VFIO is always and only present on Linux David Marchand
2025-09-03 15:17 ` [RFC v2 4/9] vfio: remove public wrappers David Marchand
2025-09-03 15:17 ` [RFC v2 5/9] eal/linux: remove more internal VFIO macros David Marchand
2025-09-03 15:17 ` [RFC v2 6/9] eal/linux: remove internal VFIO wrappers for old Linux David Marchand
2025-09-03 15:17 ` [RFC v2 7/9] vfio: stop including Linux kernel header in public and driver API David Marchand
2025-09-03 15:17 ` [RFC v2 8/9] uapi: import VFIO header David Marchand
2025-09-03 15:17 ` [RFC v2 9/9] vfio: use imported uAPI header David Marchand
2025-09-04 7:08 ` [RFC v2 0/9] Cleanup VFIO API and import Linux " David Marchand
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=ac5775a3-d5bd-4fec-9b0e-dcf92ca7ed47@intel.com \
--to=anatoly.burakov@intel.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=maxime.coquelin@redhat.com \
--cc=thomas@monjalon.net \
/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;
as well as URLs for NNTP newsgroup(s).