[RFC v3 0/3] Import Kernel uAPI header files

Maxime Coquelin maxime.coquelin at redhat.com
Thu Sep 12 14:08:08 CEST 2024


Hi Ferruh,

On 9/12/24 10:30, Ferruh Yigit wrote:
> On 9/11/2024 8:32 PM, Maxime Coquelin wrote:
>> This series enables importing Linux Kernel uAPI headers
>> into the DPDK repository. It aims at solving alignment
>> issues between the build system and the system applications
>> linked ot DPDK libraries are run on.
>>
> 
> Hi Maxime,
> 
> Is the imported Linux Kernel uAPI headers are always backward compatible?

Yes, at least that's what is advertised! :)

"
The binary interface provided by the kernel to user space cannot be 
broken except under the most severe circumstances.
"


> If I build and run on identical platform, lets say has kernel v5.4,
> and DPDK has the kernel uAPI header from v6.10, is this has any chance
> to create backward compatibility issues?

It should not if backward compatibility is preserved as advertised.

> Or can it enable some features which are indeed not exist/supported in
> the platform that has old version of kernel?

It can enable new feature, like for example a new ioctl command.

In this case, it should return something like ENOIOCTLCMD if the Kernel
does not support it.

> 
>> It can also help simplify spaghetti code done to support
>> different versions of the Linux Kernel headers used by
>> the build system.
>>
>> Guidelines and import script are also part of first patch.
>> A uAPI checker script is added in this 3rd RFC, goals is to
>> use it in CI for any patch touching linux-headers/uapi.
>>
>> Follow-up patches are an example of imported uAPI inclusion
>> of VDUSE header into the Vhost library.
>>
>> Morten, I did not (again) apply your Ack on patch 1, as it
>> has some significant changes and additions.
>>
>> Changes in RFC v3:
>> ==================
>> - Support nested headers include
>> - Interactive mode to select which headers to include
>> - Store version in a file instead of git commit messages
>> - All imported headers aligned on same version
>> - Improve loops in scripts (David)
>> - Update documentation
>>
>>
>> Changes in RFC v2:
>> ==================
>> - Fix typos in documentation and commit messags (David, Morten)
>> - Add uAPI checker script
>> - Add uAPI to global_inc
>> - Fix build issues on FreeBSD and documentation (CI, David)
>> - Simplify import script (David)
>>
>> Maxime Coquelin (3):
>>    uapi: introduce kernel uAPI headers import
>>    uapi: import VDUSE header
>>    vduse: use imported VDUSE uAPI header
>>
>>   devtools/check-linux-uapi.sh           |  85 ++++++
>>   devtools/import-linux-uapi.sh          | 119 +++++++++
>>   doc/guides/contributing/index.rst      |   1 +
>>   doc/guides/contributing/linux_uapi.rst |  71 +++++
>>   lib/vhost/meson.build                  |   5 +-
>>   lib/vhost/vduse.c                      |   2 +-
>>   lib/vhost/vduse.h                      |  22 --
>>   linux-headers/uapi/.gitignore          |   4 +
>>   linux-headers/uapi/linux/vduse.h       | 353 +++++++++++++++++++++++++
>>   linux-headers/uapi/version             |   1 +
>>   meson.build                            |   8 +-
>>   11 files changed, 642 insertions(+), 29 deletions(-)
>>   create mode 100755 devtools/check-linux-uapi.sh
>>   create mode 100755 devtools/import-linux-uapi.sh
>>   create mode 100644 doc/guides/contributing/linux_uapi.rst
>>   create mode 100644 linux-headers/uapi/.gitignore
>>   create mode 100644 linux-headers/uapi/linux/vduse.h
>>   create mode 100644 linux-headers/uapi/version
>>
> 



More information about the dev mailing list