As decided in the Technical Board in November 2019, the kernel module igb_uio is moved to the dpdk-kmods repository in the /linux/igb_uio/ directory. Minutes of Technical Board meeting: https://mails.dpdk.org/archives/dev/2019-November/151763.html Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- MAINTAINERS | 1 - doc/guides/rel_notes/deprecation.rst | 7 - kernel/linux/igb_uio/Kbuild | 2 - kernel/linux/igb_uio/compat.h | 154 ------- kernel/linux/igb_uio/igb_uio.c | 660 --------------------------- kernel/linux/igb_uio/meson.build | 20 - kernel/linux/meson.build | 2 +- 7 files changed, 1 insertion(+), 845 deletions(-) delete mode 100644 kernel/linux/igb_uio/Kbuild delete mode 100644 kernel/linux/igb_uio/compat.h delete mode 100644 kernel/linux/igb_uio/igb_uio.c delete mode 100644 kernel/linux/igb_uio/meson.build diff --git a/MAINTAINERS b/MAINTAINERS index 3b16d7a4b8..d74bec58e1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -292,7 +292,6 @@ F: doc/guides/linux_gsg/ Linux UIO M: Ferruh Yigit <ferruh.yigit@intel.com> -F: kernel/linux/igb_uio/ F: drivers/bus/pci/linux/*uio* Linux VFIO diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 279eccb04a..6f722ad79d 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -96,13 +96,6 @@ Deprecation Notices used in the place of rte_cio_*mb APIs. The rte_cio_*mb APIs will be deprecated in 20.11 release. -* igb_uio: In the view of reducing the kernel dependency from the main tree, - as a first step, the Technical Board decided to move ``igb_uio`` - kernel module to the dpdk-kmods repository in the /linux/igb_uio/ directory - in 20.11. - Minutes of Technical Board Meeting of `2019-11-06 - <https://mails.dpdk.org/archives/dev/2019-November/151763.html>`_. - * lib: will fix extending some enum/define breaking the ABI. There are multiple samples in DPDK that enum/define terminated with a ``.*MAX.*`` value which is used by iterators, and arrays holding these values are sized with this diff --git a/kernel/linux/igb_uio/Kbuild b/kernel/linux/igb_uio/Kbuild deleted file mode 100644 index 3ab85c4116..0000000000 diff --git a/kernel/linux/igb_uio/compat.h b/kernel/linux/igb_uio/compat.h deleted file mode 100644 index 8dbb896ae1..0000000000 diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c deleted file mode 100644 index 039f5a5f63..0000000000 diff --git a/kernel/linux/igb_uio/meson.build b/kernel/linux/igb_uio/meson.build deleted file mode 100644 index 80540aecee..0000000000 diff --git a/kernel/linux/meson.build b/kernel/linux/meson.build index da79df1687..5c864a4653 100644 --- a/kernel/linux/meson.build +++ b/kernel/linux/meson.build @@ -1,7 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation -subdirs = ['igb_uio', 'kni'] +subdirs = ['kni'] # if we are cross-compiling we need kernel_dir specified if get_option('kernel_dir') == '' and meson.is_cross_build() -- 2.28.0
On Tue Sep 8, 2020 at 2:50 AM CEST, Thomas Monjalon wrote: > As decided in the Technical Board in November 2019, > the kernel module igb_uio is moved to the dpdk-kmods repository > in the /linux/igb_uio/ directory. The code is moved with its git history in http://git.dpdk.org/dpdk-kmods/ The move process started with these commands: cd dpdk dir=igb_uio path1=lib/librte_eal/linuxapp/$dir path2=kernel/linux/$dir git format-patch -o $dir 0c9a540ed2.. -- $path1 $path2 find $dir -type f -exec sed -i "s,$path1\|$path2,linux/$dir," '{}' \; cd ../dpdk-kmods git am ../dpdk/$dir/* git filter-branch --force --index-filter "git rm --cached --ignore-unmatch linux/$dir/Makefile" --prune-empty --tag-name-filter cat -- --all Makefile and meson.build files were not imported at all. Some other commits were skipped (virtio, vmxnet3 and Xen dom0 support), because they were not very useful and reverted later in the history. Anyway the original history is available forever in dpdk.git. Currently it cannot compile because the file rte_pci_dev_feature_defs.h is missing, defining enum rte_intr_mode. An option is to import this file. It would be nice to add a README file in the new igb_uio directory. Volunteers welcome :)
On Tue, Sep 08, 2020 at 02:14:02AM +0200, Thomas Monjalon wrote:
> On Tue Sep 8, 2020 at 2:50 AM CEST, Thomas Monjalon wrote:
> > As decided in the Technical Board in November 2019,
> > the kernel module igb_uio is moved to the dpdk-kmods repository
> > in the /linux/igb_uio/ directory.
>
> The code is moved with its git history in
> http://git.dpdk.org/dpdk-kmods/
>
> The move process started with these commands:
> cd dpdk
> dir=igb_uio
> path1=lib/librte_eal/linuxapp/$dir
> path2=kernel/linux/$dir
> git format-patch -o $dir 0c9a540ed2.. -- $path1 $path2
> find $dir -type f -exec sed -i "s,$path1\|$path2,linux/$dir," '{}' \;
> cd ../dpdk-kmods
> git am ../dpdk/$dir/*
> git filter-branch --force
> --index-filter "git rm --cached --ignore-unmatch linux/$dir/Makefile"
> --prune-empty --tag-name-filter cat -- --all
>
> Makefile and meson.build files were not imported at all.
> Some other commits were skipped (virtio, vmxnet3 and Xen dom0 support),
> because they were not very useful and reverted later in the history.
> Anyway the original history is available forever in dpdk.git.
>
> Currently it cannot compile because the file rte_pci_dev_feature_defs.h
> is missing, defining enum rte_intr_mode. An option is to import this file.
>
> It would be nice to add a README file in the new igb_uio directory.
> Volunteers welcome :)
In terms of building the module, one option which I think is worth
considering is to try and use meson subject/wrap support to download and
build this module as part of the main DPDK build, as now, when enable_kmods
option is set. With a wrap file in DPDK it can automatically pull down and
build the code as part of a main project build. I assume that integration
into main DPDK build is still something worth having? The only thing I
don't like about using a wrap file is that it has to be placed in a folder
called "subproject" at the top level of the DPDK project.
Thoughts,
/Bruce
08/09/2020 10:25, Bruce Richardson:
> On Tue, Sep 08, 2020 at 02:14:02AM +0200, Thomas Monjalon wrote:
> > On Tue Sep 8, 2020 at 2:50 AM CEST, Thomas Monjalon wrote:
> > > As decided in the Technical Board in November 2019,
> > > the kernel module igb_uio is moved to the dpdk-kmods repository
> > > in the /linux/igb_uio/ directory.
> >
> > The code is moved with its git history in
> > http://git.dpdk.org/dpdk-kmods/
> >
> > The move process started with these commands:
> > cd dpdk
> > dir=igb_uio
> > path1=lib/librte_eal/linuxapp/$dir
> > path2=kernel/linux/$dir
> > git format-patch -o $dir 0c9a540ed2.. -- $path1 $path2
> > find $dir -type f -exec sed -i "s,$path1\|$path2,linux/$dir," '{}' \;
> > cd ../dpdk-kmods
> > git am ../dpdk/$dir/*
> > git filter-branch --force
> > --index-filter "git rm --cached --ignore-unmatch linux/$dir/Makefile"
> > --prune-empty --tag-name-filter cat -- --all
> >
> > Makefile and meson.build files were not imported at all.
> > Some other commits were skipped (virtio, vmxnet3 and Xen dom0 support),
> > because they were not very useful and reverted later in the history.
> > Anyway the original history is available forever in dpdk.git.
> >
> > Currently it cannot compile because the file rte_pci_dev_feature_defs.h
> > is missing, defining enum rte_intr_mode. An option is to import this file.
> >
> > It would be nice to add a README file in the new igb_uio directory.
> > Volunteers welcome :)
>
> In terms of building the module, one option which I think is worth
> considering is to try and use meson subject/wrap support to download and
> build this module as part of the main DPDK build, as now, when enable_kmods
> option is set. With a wrap file in DPDK it can automatically pull down and
> build the code as part of a main project build. I assume that integration
> into main DPDK build is still something worth having? The only thing I
> don't like about using a wrap file is that it has to be placed in a folder
> called "subproject" at the top level of the DPDK project.
The idea is encouraging the use of VFIO and make igb_uio deprecated.
I think we should not do any effort to ease igb_uio usage inside dpdk.git.
Compiling the kernel module standalone in dpdk-kmods.git looks enough, isn't it?
On Tue, Sep 08, 2020 at 11:27:23AM +0200, Thomas Monjalon wrote:
> 08/09/2020 10:25, Bruce Richardson:
> > On Tue, Sep 08, 2020 at 02:14:02AM +0200, Thomas Monjalon wrote:
> > > On Tue Sep 8, 2020 at 2:50 AM CEST, Thomas Monjalon wrote:
> > > > As decided in the Technical Board in November 2019,
> > > > the kernel module igb_uio is moved to the dpdk-kmods repository
> > > > in the /linux/igb_uio/ directory.
> > >
> > > The code is moved with its git history in
> > > http://git.dpdk.org/dpdk-kmods/
> > >
> > > The move process started with these commands:
> > > cd dpdk
> > > dir=igb_uio
> > > path1=lib/librte_eal/linuxapp/$dir
> > > path2=kernel/linux/$dir
> > > git format-patch -o $dir 0c9a540ed2.. -- $path1 $path2
> > > find $dir -type f -exec sed -i "s,$path1\|$path2,linux/$dir," '{}' \;
> > > cd ../dpdk-kmods
> > > git am ../dpdk/$dir/*
> > > git filter-branch --force
> > > --index-filter "git rm --cached --ignore-unmatch linux/$dir/Makefile"
> > > --prune-empty --tag-name-filter cat -- --all
> > >
> > > Makefile and meson.build files were not imported at all.
> > > Some other commits were skipped (virtio, vmxnet3 and Xen dom0 support),
> > > because they were not very useful and reverted later in the history.
> > > Anyway the original history is available forever in dpdk.git.
> > >
> > > Currently it cannot compile because the file rte_pci_dev_feature_defs.h
> > > is missing, defining enum rte_intr_mode. An option is to import this file.
> > >
> > > It would be nice to add a README file in the new igb_uio directory.
> > > Volunteers welcome :)
> >
> > In terms of building the module, one option which I think is worth
> > considering is to try and use meson subject/wrap support to download and
> > build this module as part of the main DPDK build, as now, when enable_kmods
> > option is set. With a wrap file in DPDK it can automatically pull down and
> > build the code as part of a main project build. I assume that integration
> > into main DPDK build is still something worth having? The only thing I
> > don't like about using a wrap file is that it has to be placed in a folder
> > called "subproject" at the top level of the DPDK project.
>
> The idea is encouraging the use of VFIO and make igb_uio deprecated.
> I think we should not do any effort to ease igb_uio usage inside dpdk.git.
> Compiling the kernel module standalone in dpdk-kmods.git looks enough, isn't it?
>
Ok, that is fine if that is the objective. I thought the objective was to
move all kernel modules out of the DPDK tree, but if it's only certain
modules, then that is different.
/Bruce
08/09/2020 11:34, Bruce Richardson:
> On Tue, Sep 08, 2020 at 11:27:23AM +0200, Thomas Monjalon wrote:
> > 08/09/2020 10:25, Bruce Richardson:
> > > On Tue, Sep 08, 2020 at 02:14:02AM +0200, Thomas Monjalon wrote:
> > > > On Tue Sep 8, 2020 at 2:50 AM CEST, Thomas Monjalon wrote:
> > > > > As decided in the Technical Board in November 2019,
> > > > > the kernel module igb_uio is moved to the dpdk-kmods repository
> > > > > in the /linux/igb_uio/ directory.
> > > >
> > > > The code is moved with its git history in
> > > > http://git.dpdk.org/dpdk-kmods/
> > > >
> > > > The move process started with these commands:
> > > > cd dpdk
> > > > dir=igb_uio
> > > > path1=lib/librte_eal/linuxapp/$dir
> > > > path2=kernel/linux/$dir
> > > > git format-patch -o $dir 0c9a540ed2.. -- $path1 $path2
> > > > find $dir -type f -exec sed -i "s,$path1\|$path2,linux/$dir," '{}' \;
> > > > cd ../dpdk-kmods
> > > > git am ../dpdk/$dir/*
> > > > git filter-branch --force
> > > > --index-filter "git rm --cached --ignore-unmatch linux/$dir/Makefile"
> > > > --prune-empty --tag-name-filter cat -- --all
> > > >
> > > > Makefile and meson.build files were not imported at all.
> > > > Some other commits were skipped (virtio, vmxnet3 and Xen dom0 support),
> > > > because they were not very useful and reverted later in the history.
> > > > Anyway the original history is available forever in dpdk.git.
> > > >
> > > > Currently it cannot compile because the file rte_pci_dev_feature_defs.h
> > > > is missing, defining enum rte_intr_mode. An option is to import this file.
> > > >
> > > > It would be nice to add a README file in the new igb_uio directory.
> > > > Volunteers welcome :)
> > >
> > > In terms of building the module, one option which I think is worth
> > > considering is to try and use meson subject/wrap support to download and
> > > build this module as part of the main DPDK build, as now, when enable_kmods
> > > option is set. With a wrap file in DPDK it can automatically pull down and
> > > build the code as part of a main project build. I assume that integration
> > > into main DPDK build is still something worth having? The only thing I
> > > don't like about using a wrap file is that it has to be placed in a folder
> > > called "subproject" at the top level of the DPDK project.
> >
> > The idea is encouraging the use of VFIO and make igb_uio deprecated.
> > I think we should not do any effort to ease igb_uio usage inside dpdk.git.
> > Compiling the kernel module standalone in dpdk-kmods.git looks enough, isn't it?
>
> Ok, that is fine if that is the objective. I thought the objective was to
> move all kernel modules out of the DPDK tree, but if it's only certain
> modules, then that is different.
As we discussed in the Technical Board, the FreeBSD modules are required
for any use and should stay inside dpdk.git.
But the question is open for KNI.
I think KNI should be deprecated as well to encourage using other
methods which are more "upstream" for Linux.
On 9/7/2020 11:50 PM, Thomas Monjalon wrote:
> As decided in the Technical Board in November 2019,
> the kernel module igb_uio is moved to the dpdk-kmods repository
> in the /linux/igb_uio/ directory.
>
> Minutes of Technical Board meeting:
> https://mails.dpdk.org/archives/dev/2019-November/151763.html
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> MAINTAINERS | 1 -
> doc/guides/rel_notes/deprecation.rst | 7 -
> kernel/linux/igb_uio/Kbuild | 2 -
> kernel/linux/igb_uio/compat.h | 154 -------
> kernel/linux/igb_uio/igb_uio.c | 660 ---------------------------
> kernel/linux/igb_uio/meson.build | 20 -
> kernel/linux/meson.build | 2 +-
> 7 files changed, 1 insertion(+), 845 deletions(-)
> delete mode 100644 kernel/linux/igb_uio/Kbuild
> delete mode 100644 kernel/linux/igb_uio/compat.h
> delete mode 100644 kernel/linux/igb_uio/igb_uio.c
> delete mode 100644 kernel/linux/igb_uio/meson.build
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 3b16d7a4b8..d74bec58e1 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -292,7 +292,6 @@ F: doc/guides/linux_gsg/
>
> Linux UIO
> M: Ferruh Yigit <ferruh.yigit@intel.com>
> -F: kernel/linux/igb_uio/
> F: drivers/bus/pci/linux/*uio*
>
What do you think to have the new git repo information here as
"T: ..."
To help people looking for the module.
And I think at least 'doc/guides/linux_gsg/linux_drivers.rst' should be updated
to document the new home of the kernel module, but there are multiple references
in the documentation to the 'igb_uio', perhaps they should be replaced with
'vfio' too?
08/09/2020 14:06, Ferruh Yigit: > On 9/7/2020 11:50 PM, Thomas Monjalon wrote: > > As decided in the Technical Board in November 2019, > > the kernel module igb_uio is moved to the dpdk-kmods repository > > in the /linux/igb_uio/ directory. > > > > Minutes of Technical Board meeting: > > https://mails.dpdk.org/archives/dev/2019-November/151763.html > > > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> > > --- > > MAINTAINERS | 1 - > > doc/guides/rel_notes/deprecation.rst | 7 - > > kernel/linux/igb_uio/Kbuild | 2 - > > kernel/linux/igb_uio/compat.h | 154 ------- > > kernel/linux/igb_uio/igb_uio.c | 660 --------------------------- > > kernel/linux/igb_uio/meson.build | 20 - > > kernel/linux/meson.build | 2 +- > > 7 files changed, 1 insertion(+), 845 deletions(-) > > delete mode 100644 kernel/linux/igb_uio/Kbuild > > delete mode 100644 kernel/linux/igb_uio/compat.h > > delete mode 100644 kernel/linux/igb_uio/igb_uio.c > > delete mode 100644 kernel/linux/igb_uio/meson.build > > > > diff --git a/MAINTAINERS b/MAINTAINERS > > index 3b16d7a4b8..d74bec58e1 100644 > > --- a/MAINTAINERS > > +++ b/MAINTAINERS > > @@ -292,7 +292,6 @@ F: doc/guides/linux_gsg/ > > > > Linux UIO > > M: Ferruh Yigit <ferruh.yigit@intel.com> > > -F: kernel/linux/igb_uio/ > > F: drivers/bus/pci/linux/*uio* > > > > What do you think to have the new git repo information here as > "T: ..." > To help people looking for the module. I don't think we should reference the new home in the file MAINTAINERS of dpdk.git. But yes, it should be documented. I'll add something in v2. > And I think at least 'doc/guides/linux_gsg/linux_drivers.rst' should be updated > to document the new home of the kernel module, but there are multiple references > in the documentation to the 'igb_uio', perhaps they should be replaced with > 'vfio' too? As part of this patch, I will document the new home of igb_uio, but won't change the usage references. I think moving to VFIO in docs is another patch, and probably multiple.
As decided in the Technical Board in November 2019, the kernel module igb_uio is moved to the dpdk-kmods repository in the /linux/igb_uio/ directory. Minutes of Technical Board meeting: https://mails.dpdk.org/archives/dev/2019-November/151763.html Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- v2: update few docs (including release notes) --- MAINTAINERS | 1 - doc/guides/linux_gsg/enable_func.rst | 5 +- doc/guides/linux_gsg/linux_drivers.rst | 21 +- doc/guides/rel_notes/deprecation.rst | 7 - doc/guides/rel_notes/release_20_11.rst | 3 + kernel/linux/igb_uio/Kbuild | 2 - kernel/linux/igb_uio/compat.h | 154 ------ kernel/linux/igb_uio/igb_uio.c | 660 ------------------------- kernel/linux/igb_uio/meson.build | 20 - kernel/linux/meson.build | 2 +- 10 files changed, 12 insertions(+), 863 deletions(-) delete mode 100644 kernel/linux/igb_uio/Kbuild delete mode 100644 kernel/linux/igb_uio/compat.h delete mode 100644 kernel/linux/igb_uio/igb_uio.c delete mode 100644 kernel/linux/igb_uio/meson.build diff --git a/MAINTAINERS b/MAINTAINERS index 3b16d7a4b8..d74bec58e1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -292,7 +292,6 @@ F: doc/guides/linux_gsg/ Linux UIO M: Ferruh Yigit <ferruh.yigit@intel.com> -F: kernel/linux/igb_uio/ F: drivers/bus/pci/linux/*uio* Linux VFIO diff --git a/doc/guides/linux_gsg/enable_func.rst b/doc/guides/linux_gsg/enable_func.rst index b2bda80bb7..a6c5a980fd 100644 --- a/doc/guides/linux_gsg/enable_func.rst +++ b/doc/guides/linux_gsg/enable_func.rst @@ -129,7 +129,7 @@ Loading the DPDK KNI Kernel Module To run the DPDK Kernel NIC Interface (KNI) sample application, an extra kernel module (the kni module) must be loaded into the running kernel. The module is found in the kmod sub-directory of the DPDK target directory. -Similar to the loading of the ``igb_uio`` module, this module should be loaded using the insmod command as shown below +This module should be loaded using the insmod command as shown below (assuming that the current directory is the DPDK target directory): .. code-block:: console @@ -156,4 +156,5 @@ This results in pass-through of the DMAR (DMA Remapping) lookup in the host. Also, if ``INTEL_IOMMU_DEFAULT_ON`` is not set in the kernel, the ``intel_iommu=on`` kernel parameter must be used too. This ensures that the Intel IOMMU is being initialized as expected. -Please note that while using ``iommu=pt`` is compulsory for ``igb_uio driver``, the ``vfio-pci`` driver can actually work with both ``iommu=pt`` and ``iommu=on``. +Please note that while using ``iommu=pt`` is compulsory for ``igb_uio`` driver, +the ``vfio-pci`` driver can actually work with both ``iommu=pt`` and ``iommu=on``. diff --git a/doc/guides/linux_gsg/linux_drivers.rst b/doc/guides/linux_gsg/linux_drivers.rst index 185074013a..0024b23050 100644 --- a/doc/guides/linux_gsg/linux_drivers.rst +++ b/doc/guides/linux_gsg/linux_drivers.rst @@ -27,31 +27,20 @@ can provide the uio capability. This module can be loaded using the command: ``uio_pci_generic`` module doesn't support the creation of virtual functions. -As an alternative to the ``uio_pci_generic``, the DPDK also includes the igb_uio -module which can be found in the kmod subdirectory referred to above. It can -be loaded as shown below: +As an alternative to the ``uio_pci_generic``, there is the ``igb_uio`` module +which can be found in the repository ``dpdk-kmods``. +It can be loaded as shown below: .. code-block:: console sudo modprobe uio - sudo insmod kmod/igb_uio.ko - -.. note:: - - ``igb_uio`` module is disabled by default starting from ``DPDK v20.02``. - To build it, the config option ``CONFIG_RTE_EAL_IGB_UIO`` should be enabled. - It is planned to move ``igb_uio`` module to a different git repository. - -.. note:: - - For some devices which lack support for legacy interrupts, e.g. virtual function - (VF) devices, the ``igb_uio`` module may be needed in place of ``uio_pci_generic``. + sudo insmod igb_uio.ko .. note:: If UEFI secure boot is enabled, the Linux kernel may disallow the use of UIO on the system. Therefore, devices for use by DPDK should be bound to the - ``vfio-pci`` kernel module rather than ``igb_uio`` or ``uio_pci_generic``. + ``vfio-pci`` kernel module rather than any UIO-based module. For more details see :ref:`linux_gsg_binding_kernel` below. .. note:: diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 88d7d07613..64d1c7fdff 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -96,13 +96,6 @@ Deprecation Notices used in the place of rte_cio_*mb APIs. The rte_cio_*mb APIs will be deprecated in 20.11 release. -* igb_uio: In the view of reducing the kernel dependency from the main tree, - as a first step, the Technical Board decided to move ``igb_uio`` - kernel module to the dpdk-kmods repository in the /linux/igb_uio/ directory - in 20.11. - Minutes of Technical Board Meeting of `2019-11-06 - <https://mails.dpdk.org/archives/dev/2019-November/151763.html>`_. - * lib: will fix extending some enum/define breaking the ABI. There are multiple samples in DPDK that enum/define terminated with a ``.*MAX.*`` value which is used by iterators, and arrays holding these values are sized with this diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst index 667e3d54ad..ba4e237d1f 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -68,6 +68,9 @@ Removed Items Also, make sure to start the actual text at the margin. ======================================================= +kernel: The module ``igb_uio`` has been moved to the git repository +``dpdk-kmods`` in a new directory ``linux/igb_uio``. + API Changes ----------- diff --git a/kernel/linux/igb_uio/Kbuild b/kernel/linux/igb_uio/Kbuild deleted file mode 100644 index 3ab85c4116..0000000000 diff --git a/kernel/linux/igb_uio/compat.h b/kernel/linux/igb_uio/compat.h deleted file mode 100644 index 8dbb896ae1..0000000000 diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c deleted file mode 100644 index 039f5a5f63..0000000000 diff --git a/kernel/linux/igb_uio/meson.build b/kernel/linux/igb_uio/meson.build deleted file mode 100644 index 80540aecee..0000000000 diff --git a/kernel/linux/meson.build b/kernel/linux/meson.build index da79df1687..5c864a4653 100644 --- a/kernel/linux/meson.build +++ b/kernel/linux/meson.build @@ -1,7 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation -subdirs = ['igb_uio', 'kni'] +subdirs = ['kni'] # if we are cross-compiling we need kernel_dir specified if get_option('kernel_dir') == '' and meson.is_cross_build() -- 2.28.0
On 9/11/2020 4:54 PM, Thomas Monjalon wrote: > As decided in the Technical Board in November 2019, > the kernel module igb_uio is moved to the dpdk-kmods repository > in the /linux/igb_uio/ directory. > > Minutes of Technical Board meeting: > https://mails.dpdk.org/archives/dev/2019-November/151763.html > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> > --- > v2: update few docs (including release notes) <...> > @@ -292,7 +292,6 @@ F: doc/guides/linux_gsg/ > > Linux UIO > M: Ferruh Yigit <ferruh.yigit@intel.com> > -F: kernel/linux/igb_uio/ > F: drivers/bus/pci/linux/*uio* > We are loosing maintainer information for the kernel module, same concern for other kernel modules in the 'dpdk-kmods' repo. One option is 'dpdk-kmods' repo can have it's maintainers file, but I believe better to have single maintainer file, and cover the maintainer and location information in this file. <...> > +which can be found in the repository ``dpdk-kmods``. There is no information where 'dpdk-kmods' repo is. It can be good to have it as link.
11/09/2020 18:22, Ferruh Yigit: > On 9/11/2020 4:54 PM, Thomas Monjalon wrote: > > As decided in the Technical Board in November 2019, > > the kernel module igb_uio is moved to the dpdk-kmods repository > > in the /linux/igb_uio/ directory. > > > > Minutes of Technical Board meeting: > > https://mails.dpdk.org/archives/dev/2019-November/151763.html > > > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> > > --- > > v2: update few docs (including release notes) > > <...> > > > @@ -292,7 +292,6 @@ F: doc/guides/linux_gsg/ > > > > Linux UIO > > M: Ferruh Yigit <ferruh.yigit@intel.com> > > -F: kernel/linux/igb_uio/ > > F: drivers/bus/pci/linux/*uio* > > > > We are loosing maintainer information for the kernel module, same concern for > other kernel modules in the 'dpdk-kmods' repo. There is not even contribution guidelines, mailing-list etc. > One option is 'dpdk-kmods' repo can have it's maintainers file, but I believe > better to have single maintainer file, and cover the maintainer and location > information in this file. I think the contribution infos (including maintainers contact) should be inside the repo dpdk-kmods. > <...> > > +which can be found in the repository ``dpdk-kmods``. > > There is no information where 'dpdk-kmods' repo is. It can be good to have it as > link. The real URL would be the git ones: git://dpdk.org/dpdk-kmods http://dpdk.org/git/dpdk-kmods but the most convenient (for clicking) should be the cgit one: http://git.dpdk.org/dpdk-kmods/ or directly the sub-directory in cgit: http://git.dpdk.org/dpdk-kmods/tree/linux/igb_uio Note that this last one does not show the git URLs for cloning. Which one do you prefer?
On 9/12/2020 9:55 AM, Thomas Monjalon wrote: > 11/09/2020 18:22, Ferruh Yigit: >> On 9/11/2020 4:54 PM, Thomas Monjalon wrote: >>> As decided in the Technical Board in November 2019, >>> the kernel module igb_uio is moved to the dpdk-kmods repository >>> in the /linux/igb_uio/ directory. >>> >>> Minutes of Technical Board meeting: >>> https://mails.dpdk.org/archives/dev/2019-November/151763.html >>> >>> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> >>> --- >>> v2: update few docs (including release notes) >> >> <...> >> >>> @@ -292,7 +292,6 @@ F: doc/guides/linux_gsg/ >>> >>> Linux UIO >>> M: Ferruh Yigit <ferruh.yigit@intel.com> >>> -F: kernel/linux/igb_uio/ >>> F: drivers/bus/pci/linux/*uio* >>> >> >> We are loosing maintainer information for the kernel module, same concern for >> other kernel modules in the 'dpdk-kmods' repo. > > There is not even contribution guidelines, mailing-list etc. > >> One option is 'dpdk-kmods' repo can have it's maintainers file, but I believe >> better to have single maintainer file, and cover the maintainer and location >> information in this file. > > I think the contribution infos (including maintainers contact) > should be inside the repo dpdk-kmods. > >> <...> >>> +which can be found in the repository ``dpdk-kmods``. >> >> There is no information where 'dpdk-kmods' repo is. It can be good to have it as >> link. > > The real URL would be the git ones: > git://dpdk.org/dpdk-kmods > http://dpdk.org/git/dpdk-kmods > but the most convenient (for clicking) should be the cgit one: > http://git.dpdk.org/dpdk-kmods/ > or directly the sub-directory in cgit: > http://git.dpdk.org/dpdk-kmods/tree/linux/igb_uio > Note that this last one does not show the git URLs for cloning. > > Which one do you prefer? > > +1 that "http://git.dpdk.org/dpdk-kmods/" is more convenient for documentation. People can figure out the git repo address from there.
On Fri, 11 Sep 2020 17:54:48 +0200
Thomas Monjalon <thomas@monjalon.net> wrote:
> As decided in the Technical Board in November 2019,
> the kernel module igb_uio is moved to the dpdk-kmods repository
> in the /linux/igb_uio/ directory.
>
> Minutes of Technical Board meeting:
> https://mails.dpdk.org/archives/dev/2019-November/151763.html
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> v2: update few docs (including release notes)
Good so far:
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
You may want to address all the references to igb_uio in guides/nics
ark.rst
axgbe.rst
bnx2x.rst
bnxt.rst
build_and_test.rst
ena.rst
enic.rst
features.rst
hns3.rst
i40e.rst
intel_vf.rst
ixgbe.rst
liquidio.rst
mlx4.rst
mlx5.rst
nfp.rst
qede.rst
virtio.rst
What about drivers like ark which don't mention vfio?
Does virtio still require igb_uio? or x86 I/O port for doorbell?
Or is this just stale language.
24/09/2020 07:41, Stephen Hemminger: > On Fri, 11 Sep 2020 17:54:48 +0200 > Thomas Monjalon <thomas@monjalon.net> wrote: > > > As decided in the Technical Board in November 2019, > > the kernel module igb_uio is moved to the dpdk-kmods repository > > in the /linux/igb_uio/ directory. > > > > Minutes of Technical Board meeting: > > https://mails.dpdk.org/archives/dev/2019-November/151763.html > > > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> > > --- > > v2: update few docs (including release notes) > > Good so far: > Acked-by: Stephen Hemminger <stephen@networkplumber.org> > > You may want to address all the references to igb_uio in guides/nics > > ark.rst > axgbe.rst > bnx2x.rst > bnxt.rst > build_and_test.rst > ena.rst > enic.rst > features.rst > hns3.rst > i40e.rst > intel_vf.rst > ixgbe.rst > liquidio.rst > mlx4.rst > mlx5.rst > nfp.rst > qede.rst > virtio.rst igb_uio is still available. A next step in deprecation might be to remove igb_uio references. > What about drivers like ark which don't mention vfio? They should be updated by their maintainer. > Does virtio still require igb_uio? or x86 I/O port for doorbell? > Or is this just stale language. Maxime, any update on the use of igb_uio with virtio?
On 10/5/20 10:57 AM, Thomas Monjalon wrote:
> 24/09/2020 07:41, Stephen Hemminger:
>> On Fri, 11 Sep 2020 17:54:48 +0200
>> Thomas Monjalon <thomas@monjalon.net> wrote:
>>
>>> As decided in the Technical Board in November 2019,
>>> the kernel module igb_uio is moved to the dpdk-kmods repository
>>> in the /linux/igb_uio/ directory.
>>>
>>> Minutes of Technical Board meeting:
>>> https://mails.dpdk.org/archives/dev/2019-November/151763.html
>>>
>>> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
>>> ---
>>> v2: update few docs (including release notes)
>>
>> Good so far:
>> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
>>
>> You may want to address all the references to igb_uio in guides/nics
>>
>> ark.rst
>> axgbe.rst
>> bnx2x.rst
>> bnxt.rst
>> build_and_test.rst
>> ena.rst
>> enic.rst
>> features.rst
>> hns3.rst
>> i40e.rst
>> intel_vf.rst
>> ixgbe.rst
>> liquidio.rst
>> mlx4.rst
>> mlx5.rst
>> nfp.rst
>> qede.rst
>> virtio.rst
>
> igb_uio is still available.
> A next step in deprecation might be to remove igb_uio references.
>
>> What about drivers like ark which don't mention vfio?
>
> They should be updated by their maintainer.
>
>> Does virtio still require igb_uio? or x86 I/O port for doorbell?
>> Or is this just stale language.
>
> Maxime, any update on the use of igb_uio with virtio?
For sure Virtio don't require igb_uio, I always use vfio myself.
It seems the doc needs an update, I'll try to look at it later in this
release.
Regards,
Maxime
As decided in the Technical Board in November 2019, the kernel module igb_uio is moved to the dpdk-kmods repository in the /linux/igb_uio/ directory. Minutes of Technical Board meeting: https://mails.dpdk.org/archives/dev/2019-November/151763.html Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Stephen Hemminger <stephen@networkplumber.org> --- v3: update more docs and provide a link to the new repo v2: update few docs (including release notes) --- MAINTAINERS | 1 - doc/guides/bbdevs/fpga_5gnr_fec.rst | 3 +- doc/guides/bbdevs/fpga_lte_fec.rst | 3 +- doc/guides/cryptodevs/ccp.rst | 3 +- doc/guides/cryptodevs/qat.rst | 3 +- doc/guides/howto/lm_bond_virtio_sriov.rst | 2 +- doc/guides/howto/lm_virtio_vhost_user.rst | 2 +- doc/guides/howto/openwrt.rst | 5 - doc/guides/linux_gsg/enable_func.rst | 3 +- doc/guides/linux_gsg/linux_drivers.rst | 23 +- doc/guides/nics/build_and_test.rst | 2 +- doc/guides/nics/ena.rst | 4 +- doc/guides/rel_notes/deprecation.rst | 7 - doc/guides/rel_notes/release_20_11.rst | 4 +- doc/guides/sample_app_ug/multi_process.rst | 2 - drivers/bus/pci/bsd/pci.c | 2 +- kernel/linux/igb_uio/Kbuild | 2 - kernel/linux/igb_uio/compat.h | 154 ----- kernel/linux/igb_uio/igb_uio.c | 660 --------------------- kernel/linux/igb_uio/meson.build | 20 - kernel/linux/meson.build | 2 +- 21 files changed, 21 insertions(+), 886 deletions(-) delete mode 100644 kernel/linux/igb_uio/Kbuild delete mode 100644 kernel/linux/igb_uio/compat.h delete mode 100644 kernel/linux/igb_uio/igb_uio.c delete mode 100644 kernel/linux/igb_uio/meson.build diff --git a/MAINTAINERS b/MAINTAINERS index 681093d949..f15eec0c35 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -290,7 +290,6 @@ F: doc/guides/linux_gsg/ Linux UIO M: Ferruh Yigit <ferruh.yigit@intel.com> -F: kernel/linux/igb_uio/ F: drivers/bus/pci/linux/*uio* Linux VFIO diff --git a/doc/guides/bbdevs/fpga_5gnr_fec.rst b/doc/guides/bbdevs/fpga_5gnr_fec.rst index 6760391e8c..709e7baed9 100644 --- a/doc/guides/bbdevs/fpga_5gnr_fec.rst +++ b/doc/guides/bbdevs/fpga_5gnr_fec.rst @@ -93,8 +93,7 @@ the UIO driver by repeating this command for every function. .. code-block:: console - cd <dpdk-top-level-directory> - insmod ./build/kmod/igb_uio.ko + insmod igb_uio.ko echo "8086 0d8f" > /sys/bus/pci/drivers/igb_uio/new_id lspci -vd8086:0d8f diff --git a/doc/guides/bbdevs/fpga_lte_fec.rst b/doc/guides/bbdevs/fpga_lte_fec.rst index fdc8a76981..344a2cc06a 100644 --- a/doc/guides/bbdevs/fpga_lte_fec.rst +++ b/doc/guides/bbdevs/fpga_lte_fec.rst @@ -92,8 +92,7 @@ the UIO driver by repeating this command for every function. .. code-block:: console - cd <dpdk-top-level-directory> - insmod ./build/kmod/igb_uio.ko + insmod igb_uio.ko echo "1172 5052" > /sys/bus/pci/drivers/igb_uio/new_id lspci -vd1172: diff --git a/doc/guides/cryptodevs/ccp.rst b/doc/guides/cryptodevs/ccp.rst index a43fe92de9..9c1997768a 100644 --- a/doc/guides/cryptodevs/ccp.rst +++ b/doc/guides/cryptodevs/ccp.rst @@ -75,9 +75,8 @@ Initialization Bind the CCP devices to DPDK UIO driver module before running the CCP PMD stack. e.g. for the 0x1456 device:: - cd to the top-level DPDK directory modprobe uio - insmod ./build/kmod/igb_uio.ko + insmod igb_uio.ko echo "1022 1456" > /sys/bus/pci/drivers/igb_uio/new_id Another way to bind the CCP devices to DPDK UIO driver is by using the ``dpdk-devbind.py`` script. diff --git a/doc/guides/cryptodevs/qat.rst b/doc/guides/cryptodevs/qat.rst index e5d2cf4997..7c56293192 100644 --- a/doc/guides/cryptodevs/qat.rst +++ b/doc/guides/cryptodevs/qat.rst @@ -642,9 +642,8 @@ Install the DPDK igb_uio driver, bind the VF PCI Device id to it and use lspci to confirm the VF devices are now in use by igb_uio kernel driver, e.g. for the C62x device:: - cd to the top-level DPDK directory modprobe uio - insmod ./build/kmod/igb_uio.ko + insmod igb_uio.ko echo "8086 37c9" > /sys/bus/pci/drivers/igb_uio/new_id lspci -vvd:37c9 diff --git a/doc/guides/howto/lm_bond_virtio_sriov.rst b/doc/guides/howto/lm_bond_virtio_sriov.rst index 02ba1cdf5d..16d86d122c 100644 --- a/doc/guides/howto/lm_bond_virtio_sriov.rst +++ b/doc/guides/howto/lm_bond_virtio_sriov.rst @@ -591,7 +591,7 @@ Set up DPDK in the Virtual Machine rmmod virtio-pci ixgbevf modprobe uio - insmod /root/dpdk/<build_dir>/kernel/linux/igb_uio/igb_uio.ko + insmod igb_uio.ko /root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:03.0 /root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:04.0 diff --git a/doc/guides/howto/lm_virtio_vhost_user.rst b/doc/guides/howto/lm_virtio_vhost_user.rst index 330ff5a9c8..e495ac976e 100644 --- a/doc/guides/howto/lm_virtio_vhost_user.rst +++ b/doc/guides/howto/lm_virtio_vhost_user.rst @@ -421,7 +421,7 @@ setup_dpdk_virtio_in_vm.sh rmmod virtio-pci modprobe uio - insmod /root/dpdk/<build_dir>/kernel/linux/igb_uio/igb_uio.ko + insmod igb_uio.ko /root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:03.0 /root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:04.0 diff --git a/doc/guides/howto/openwrt.rst b/doc/guides/howto/openwrt.rst index 6081f057be..e1d7db2a90 100644 --- a/doc/guides/howto/openwrt.rst +++ b/doc/guides/howto/openwrt.rst @@ -103,11 +103,6 @@ first. meson builddir --cross-file openwrt-cross ninja -C builddir -.. note:: - - For compiling the igb_uio with the kernel version used in target machine, - you need to explicitly specify kernel_dir in meson_options.txt. - Running DPDK application on OpenWrt ----------------------------------- diff --git a/doc/guides/linux_gsg/enable_func.rst b/doc/guides/linux_gsg/enable_func.rst index 06c17e4058..aab32252ea 100644 --- a/doc/guides/linux_gsg/enable_func.rst +++ b/doc/guides/linux_gsg/enable_func.rst @@ -155,4 +155,5 @@ This results in pass-through of the DMAR (DMA Remapping) lookup in the host. Also, if ``INTEL_IOMMU_DEFAULT_ON`` is not set in the kernel, the ``intel_iommu=on`` kernel parameter must be used too. This ensures that the Intel IOMMU is being initialized as expected. -Please note that while using ``iommu=pt`` is compulsory for ``igb_uio driver``, the ``vfio-pci`` driver can actually work with both ``iommu=pt`` and ``iommu=on``. +Please note that while using ``iommu=pt`` is compulsory for ``igb_uio`` driver, +the ``vfio-pci`` driver can actually work with both ``iommu=pt`` and ``iommu=on``. diff --git a/doc/guides/linux_gsg/linux_drivers.rst b/doc/guides/linux_gsg/linux_drivers.rst index 7789c572bb..080b44955a 100644 --- a/doc/guides/linux_gsg/linux_drivers.rst +++ b/doc/guides/linux_gsg/linux_drivers.rst @@ -27,33 +27,20 @@ can provide the uio capability. This module can be loaded using the command: ``uio_pci_generic`` module doesn't support the creation of virtual functions. -As an alternative to the ``uio_pci_generic``, the DPDK also includes the igb_uio -module which can be found in the kernel/linux subdirectory referred to above. It can -be loaded as shown below: +As an alternative to the ``uio_pci_generic``, there is the ``igb_uio`` module +which can be found in the repository `dpdk-kmods <http://git.dpdk.org/dpdk-kmods>`_. +It can be loaded as shown below: .. code-block:: console sudo modprobe uio - sudo insmod <build_dir>/kernel/linux/igb_uio/igb_uio.ko - -.. note:: - - Building DPDK Linux kernel modules is disabled by default starting from DPDK 20.02. - To enable them again, the config option "enable_kmods" needs to be set - in the meson build configuration. - See :ref:`adjusting_build_options` for details on how to set/clear build options. - It is planned to move ``igb_uio`` module to a different git repository. - -.. note:: - - For some devices which lack support for legacy interrupts, e.g. virtual function - (VF) devices, the ``igb_uio`` module may be needed in place of ``uio_pci_generic``. + sudo insmod igb_uio.ko .. note:: If UEFI secure boot is enabled, the Linux kernel may disallow the use of UIO on the system. Therefore, devices for use by DPDK should be bound to the - ``vfio-pci`` kernel module rather than ``igb_uio`` or ``uio_pci_generic``. + ``vfio-pci`` kernel module rather than any UIO-based module. For more details see :ref:`linux_gsg_binding_kernel` below. .. note:: diff --git a/doc/guides/nics/build_and_test.rst b/doc/guides/nics/build_and_test.rst index 3138c0f880..ba196382a9 100644 --- a/doc/guides/nics/build_and_test.rst +++ b/doc/guides/nics/build_and_test.rst @@ -69,7 +69,7 @@ This section demonstrates how to setup and run ``testpmd`` in Linux. .. code-block:: console modprobe uio - insmod ./x86_64-native-linux-gcc/kmod/igb_uio.ko + insmod igb_uio.ko or diff --git a/doc/guides/nics/ena.rst b/doc/guides/nics/ena.rst index bec97c3326..3a6074cdf6 100644 --- a/doc/guides/nics/ena.rst +++ b/doc/guides/nics/ena.rst @@ -169,8 +169,8 @@ Prerequisites (*) ENAv2 hardware supports Low Latency Queue v2 (LLQv2). This feature reduces the latency of the packets by pushing the header directly through the PCI to the device, before the DMA is even triggered. For proper work - kernel PCI driver must support write combining (WC). In mainline version of - ``igb_uio`` (in DPDK repo) it must be enabled by loading module with + kernel PCI driver must support write combining (WC). + In DPDK ``igb_uio`` it must be enabled by loading module with ``wc_activate=1`` flag (example below). However, mainline's vfio-pci driver in kernel doesn't have WC support yet (planed to be added). If vfio-pci used user should be either turn off ENAv2 (to avoid performance diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 0be208edca..2d2a7d20b6 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -78,13 +78,6 @@ Deprecation Notices These wrappers must be used for patches that need to be merged in 20.08 onwards. This change will not introduce any performance degradation. -* igb_uio: In the view of reducing the kernel dependency from the main tree, - as a first step, the Technical Board decided to move ``igb_uio`` - kernel module to the dpdk-kmods repository in the /linux/igb_uio/ directory - in 20.11. - Minutes of Technical Board Meeting of `2019-11-06 - <https://mails.dpdk.org/archives/dev/2019-November/151763.html>`_. - * lib: will fix extending some enum/define breaking the ABI. There are multiple samples in DPDK that enum/define terminated with a ``.*MAX.*`` value which is used by iterators, and arrays holding these values are sized with this diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst index 4e61431c6c..243bd940a4 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -122,9 +122,11 @@ Removed Items * vhost: Dequeue zero-copy support has been removed. +* kernel: The module ``igb_uio`` has been moved to the git repository +``dpdk-kmods`` in a new directory ``linux/igb_uio``. + * Removed Python 2 support since it was EOL'd in January 2020. - API Changes ----------- diff --git a/doc/guides/sample_app_ug/multi_process.rst b/doc/guides/sample_app_ug/multi_process.rst index f2a79a6397..bd329c2db2 100644 --- a/doc/guides/sample_app_ug/multi_process.rst +++ b/doc/guides/sample_app_ug/multi_process.rst @@ -64,8 +64,6 @@ The process should start successfully and display a command prompt as follows: EAL: Virtual area found at 0x7ff200000000 (size = 0x40000000) ... - EAL: check igb_uio module - EAL: check module finished EAL: Master core 0 is ready (tid=54e41820) EAL: Core 1 is ready (tid=53b32700) diff --git a/drivers/bus/pci/bsd/pci.c b/drivers/bus/pci/bsd/pci.c index 2ed8261349..97c611737a 100644 --- a/drivers/bus/pci/bsd/pci.c +++ b/drivers/bus/pci/bsd/pci.c @@ -50,7 +50,7 @@ * This code is used to simulate a PCI probe by parsing information in * sysfs. Moreover, when a registered driver matches a device, the * kernel driver currently using it is unloaded and replaced by - * igb_uio module, which is a very minimal userland driver for Intel + * nic_uio module, which is a very minimal userland driver for Intel * network card, only providing access to PCI BAR to applications, and * enabling bus master. */ diff --git a/kernel/linux/igb_uio/Kbuild b/kernel/linux/igb_uio/Kbuild deleted file mode 100644 index 3ab85c4116..0000000000 diff --git a/kernel/linux/igb_uio/compat.h b/kernel/linux/igb_uio/compat.h deleted file mode 100644 index 8dbb896ae1..0000000000 diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c deleted file mode 100644 index 039f5a5f63..0000000000 diff --git a/kernel/linux/igb_uio/meson.build b/kernel/linux/igb_uio/meson.build deleted file mode 100644 index 80540aecee..0000000000 diff --git a/kernel/linux/meson.build b/kernel/linux/meson.build index da79df1687..5c864a4653 100644 --- a/kernel/linux/meson.build +++ b/kernel/linux/meson.build @@ -1,7 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation -subdirs = ['igb_uio', 'kni'] +subdirs = ['kni'] # if we are cross-compiling we need kernel_dir specified if get_option('kernel_dir') == '' and meson.is_cross_build() -- 2.28.0
As decided in the Technical Board in November 2019, the kernel module igb_uio is moved to the dpdk-kmods repository in the /linux/igb_uio/ directory. Minutes of Technical Board meeting: https://mails.dpdk.org/archives/dev/2019-November/151763.html Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Stephen Hemminger <stephen@networkplumber.org> --- v4: Cc more maintainers v3: update more docs and provide a link to the new repo v2: update few docs (including release notes) --- MAINTAINERS | 1 - doc/guides/bbdevs/fpga_5gnr_fec.rst | 3 +- doc/guides/bbdevs/fpga_lte_fec.rst | 3 +- doc/guides/cryptodevs/ccp.rst | 3 +- doc/guides/cryptodevs/qat.rst | 3 +- doc/guides/howto/lm_bond_virtio_sriov.rst | 2 +- doc/guides/howto/lm_virtio_vhost_user.rst | 2 +- doc/guides/howto/openwrt.rst | 5 - doc/guides/linux_gsg/enable_func.rst | 3 +- doc/guides/linux_gsg/linux_drivers.rst | 23 +- doc/guides/nics/build_and_test.rst | 2 +- doc/guides/nics/ena.rst | 4 +- doc/guides/rel_notes/deprecation.rst | 7 - doc/guides/rel_notes/release_20_11.rst | 4 +- doc/guides/sample_app_ug/multi_process.rst | 2 - drivers/bus/pci/bsd/pci.c | 2 +- kernel/linux/igb_uio/Kbuild | 2 - kernel/linux/igb_uio/compat.h | 154 ----- kernel/linux/igb_uio/igb_uio.c | 660 --------------------- kernel/linux/igb_uio/meson.build | 20 - kernel/linux/meson.build | 2 +- 21 files changed, 21 insertions(+), 886 deletions(-) delete mode 100644 kernel/linux/igb_uio/Kbuild delete mode 100644 kernel/linux/igb_uio/compat.h delete mode 100644 kernel/linux/igb_uio/igb_uio.c delete mode 100644 kernel/linux/igb_uio/meson.build diff --git a/MAINTAINERS b/MAINTAINERS index 681093d949..f15eec0c35 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -290,7 +290,6 @@ F: doc/guides/linux_gsg/ Linux UIO M: Ferruh Yigit <ferruh.yigit@intel.com> -F: kernel/linux/igb_uio/ F: drivers/bus/pci/linux/*uio* Linux VFIO diff --git a/doc/guides/bbdevs/fpga_5gnr_fec.rst b/doc/guides/bbdevs/fpga_5gnr_fec.rst index 6760391e8c..709e7baed9 100644 --- a/doc/guides/bbdevs/fpga_5gnr_fec.rst +++ b/doc/guides/bbdevs/fpga_5gnr_fec.rst @@ -93,8 +93,7 @@ the UIO driver by repeating this command for every function. .. code-block:: console - cd <dpdk-top-level-directory> - insmod ./build/kmod/igb_uio.ko + insmod igb_uio.ko echo "8086 0d8f" > /sys/bus/pci/drivers/igb_uio/new_id lspci -vd8086:0d8f diff --git a/doc/guides/bbdevs/fpga_lte_fec.rst b/doc/guides/bbdevs/fpga_lte_fec.rst index fdc8a76981..344a2cc06a 100644 --- a/doc/guides/bbdevs/fpga_lte_fec.rst +++ b/doc/guides/bbdevs/fpga_lte_fec.rst @@ -92,8 +92,7 @@ the UIO driver by repeating this command for every function. .. code-block:: console - cd <dpdk-top-level-directory> - insmod ./build/kmod/igb_uio.ko + insmod igb_uio.ko echo "1172 5052" > /sys/bus/pci/drivers/igb_uio/new_id lspci -vd1172: diff --git a/doc/guides/cryptodevs/ccp.rst b/doc/guides/cryptodevs/ccp.rst index a43fe92de9..9c1997768a 100644 --- a/doc/guides/cryptodevs/ccp.rst +++ b/doc/guides/cryptodevs/ccp.rst @@ -75,9 +75,8 @@ Initialization Bind the CCP devices to DPDK UIO driver module before running the CCP PMD stack. e.g. for the 0x1456 device:: - cd to the top-level DPDK directory modprobe uio - insmod ./build/kmod/igb_uio.ko + insmod igb_uio.ko echo "1022 1456" > /sys/bus/pci/drivers/igb_uio/new_id Another way to bind the CCP devices to DPDK UIO driver is by using the ``dpdk-devbind.py`` script. diff --git a/doc/guides/cryptodevs/qat.rst b/doc/guides/cryptodevs/qat.rst index e5d2cf4997..7c56293192 100644 --- a/doc/guides/cryptodevs/qat.rst +++ b/doc/guides/cryptodevs/qat.rst @@ -642,9 +642,8 @@ Install the DPDK igb_uio driver, bind the VF PCI Device id to it and use lspci to confirm the VF devices are now in use by igb_uio kernel driver, e.g. for the C62x device:: - cd to the top-level DPDK directory modprobe uio - insmod ./build/kmod/igb_uio.ko + insmod igb_uio.ko echo "8086 37c9" > /sys/bus/pci/drivers/igb_uio/new_id lspci -vvd:37c9 diff --git a/doc/guides/howto/lm_bond_virtio_sriov.rst b/doc/guides/howto/lm_bond_virtio_sriov.rst index 02ba1cdf5d..16d86d122c 100644 --- a/doc/guides/howto/lm_bond_virtio_sriov.rst +++ b/doc/guides/howto/lm_bond_virtio_sriov.rst @@ -591,7 +591,7 @@ Set up DPDK in the Virtual Machine rmmod virtio-pci ixgbevf modprobe uio - insmod /root/dpdk/<build_dir>/kernel/linux/igb_uio/igb_uio.ko + insmod igb_uio.ko /root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:03.0 /root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:04.0 diff --git a/doc/guides/howto/lm_virtio_vhost_user.rst b/doc/guides/howto/lm_virtio_vhost_user.rst index 330ff5a9c8..e495ac976e 100644 --- a/doc/guides/howto/lm_virtio_vhost_user.rst +++ b/doc/guides/howto/lm_virtio_vhost_user.rst @@ -421,7 +421,7 @@ setup_dpdk_virtio_in_vm.sh rmmod virtio-pci modprobe uio - insmod /root/dpdk/<build_dir>/kernel/linux/igb_uio/igb_uio.ko + insmod igb_uio.ko /root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:03.0 /root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:04.0 diff --git a/doc/guides/howto/openwrt.rst b/doc/guides/howto/openwrt.rst index 6081f057be..e1d7db2a90 100644 --- a/doc/guides/howto/openwrt.rst +++ b/doc/guides/howto/openwrt.rst @@ -103,11 +103,6 @@ first. meson builddir --cross-file openwrt-cross ninja -C builddir -.. note:: - - For compiling the igb_uio with the kernel version used in target machine, - you need to explicitly specify kernel_dir in meson_options.txt. - Running DPDK application on OpenWrt ----------------------------------- diff --git a/doc/guides/linux_gsg/enable_func.rst b/doc/guides/linux_gsg/enable_func.rst index 06c17e4058..aab32252ea 100644 --- a/doc/guides/linux_gsg/enable_func.rst +++ b/doc/guides/linux_gsg/enable_func.rst @@ -155,4 +155,5 @@ This results in pass-through of the DMAR (DMA Remapping) lookup in the host. Also, if ``INTEL_IOMMU_DEFAULT_ON`` is not set in the kernel, the ``intel_iommu=on`` kernel parameter must be used too. This ensures that the Intel IOMMU is being initialized as expected. -Please note that while using ``iommu=pt`` is compulsory for ``igb_uio driver``, the ``vfio-pci`` driver can actually work with both ``iommu=pt`` and ``iommu=on``. +Please note that while using ``iommu=pt`` is compulsory for ``igb_uio`` driver, +the ``vfio-pci`` driver can actually work with both ``iommu=pt`` and ``iommu=on``. diff --git a/doc/guides/linux_gsg/linux_drivers.rst b/doc/guides/linux_gsg/linux_drivers.rst index 7789c572bb..080b44955a 100644 --- a/doc/guides/linux_gsg/linux_drivers.rst +++ b/doc/guides/linux_gsg/linux_drivers.rst @@ -27,33 +27,20 @@ can provide the uio capability. This module can be loaded using the command: ``uio_pci_generic`` module doesn't support the creation of virtual functions. -As an alternative to the ``uio_pci_generic``, the DPDK also includes the igb_uio -module which can be found in the kernel/linux subdirectory referred to above. It can -be loaded as shown below: +As an alternative to the ``uio_pci_generic``, there is the ``igb_uio`` module +which can be found in the repository `dpdk-kmods <http://git.dpdk.org/dpdk-kmods>`_. +It can be loaded as shown below: .. code-block:: console sudo modprobe uio - sudo insmod <build_dir>/kernel/linux/igb_uio/igb_uio.ko - -.. note:: - - Building DPDK Linux kernel modules is disabled by default starting from DPDK 20.02. - To enable them again, the config option "enable_kmods" needs to be set - in the meson build configuration. - See :ref:`adjusting_build_options` for details on how to set/clear build options. - It is planned to move ``igb_uio`` module to a different git repository. - -.. note:: - - For some devices which lack support for legacy interrupts, e.g. virtual function - (VF) devices, the ``igb_uio`` module may be needed in place of ``uio_pci_generic``. + sudo insmod igb_uio.ko .. note:: If UEFI secure boot is enabled, the Linux kernel may disallow the use of UIO on the system. Therefore, devices for use by DPDK should be bound to the - ``vfio-pci`` kernel module rather than ``igb_uio`` or ``uio_pci_generic``. + ``vfio-pci`` kernel module rather than any UIO-based module. For more details see :ref:`linux_gsg_binding_kernel` below. .. note:: diff --git a/doc/guides/nics/build_and_test.rst b/doc/guides/nics/build_and_test.rst index 3138c0f880..ba196382a9 100644 --- a/doc/guides/nics/build_and_test.rst +++ b/doc/guides/nics/build_and_test.rst @@ -69,7 +69,7 @@ This section demonstrates how to setup and run ``testpmd`` in Linux. .. code-block:: console modprobe uio - insmod ./x86_64-native-linux-gcc/kmod/igb_uio.ko + insmod igb_uio.ko or diff --git a/doc/guides/nics/ena.rst b/doc/guides/nics/ena.rst index bec97c3326..3a6074cdf6 100644 --- a/doc/guides/nics/ena.rst +++ b/doc/guides/nics/ena.rst @@ -169,8 +169,8 @@ Prerequisites (*) ENAv2 hardware supports Low Latency Queue v2 (LLQv2). This feature reduces the latency of the packets by pushing the header directly through the PCI to the device, before the DMA is even triggered. For proper work - kernel PCI driver must support write combining (WC). In mainline version of - ``igb_uio`` (in DPDK repo) it must be enabled by loading module with + kernel PCI driver must support write combining (WC). + In DPDK ``igb_uio`` it must be enabled by loading module with ``wc_activate=1`` flag (example below). However, mainline's vfio-pci driver in kernel doesn't have WC support yet (planed to be added). If vfio-pci used user should be either turn off ENAv2 (to avoid performance diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 0be208edca..2d2a7d20b6 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -78,13 +78,6 @@ Deprecation Notices These wrappers must be used for patches that need to be merged in 20.08 onwards. This change will not introduce any performance degradation. -* igb_uio: In the view of reducing the kernel dependency from the main tree, - as a first step, the Technical Board decided to move ``igb_uio`` - kernel module to the dpdk-kmods repository in the /linux/igb_uio/ directory - in 20.11. - Minutes of Technical Board Meeting of `2019-11-06 - <https://mails.dpdk.org/archives/dev/2019-November/151763.html>`_. - * lib: will fix extending some enum/define breaking the ABI. There are multiple samples in DPDK that enum/define terminated with a ``.*MAX.*`` value which is used by iterators, and arrays holding these values are sized with this diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst index 4e61431c6c..243bd940a4 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -122,9 +122,11 @@ Removed Items * vhost: Dequeue zero-copy support has been removed. +* kernel: The module ``igb_uio`` has been moved to the git repository +``dpdk-kmods`` in a new directory ``linux/igb_uio``. + * Removed Python 2 support since it was EOL'd in January 2020. - API Changes ----------- diff --git a/doc/guides/sample_app_ug/multi_process.rst b/doc/guides/sample_app_ug/multi_process.rst index f2a79a6397..bd329c2db2 100644 --- a/doc/guides/sample_app_ug/multi_process.rst +++ b/doc/guides/sample_app_ug/multi_process.rst @@ -64,8 +64,6 @@ The process should start successfully and display a command prompt as follows: EAL: Virtual area found at 0x7ff200000000 (size = 0x40000000) ... - EAL: check igb_uio module - EAL: check module finished EAL: Master core 0 is ready (tid=54e41820) EAL: Core 1 is ready (tid=53b32700) diff --git a/drivers/bus/pci/bsd/pci.c b/drivers/bus/pci/bsd/pci.c index 2ed8261349..97c611737a 100644 --- a/drivers/bus/pci/bsd/pci.c +++ b/drivers/bus/pci/bsd/pci.c @@ -50,7 +50,7 @@ * This code is used to simulate a PCI probe by parsing information in * sysfs. Moreover, when a registered driver matches a device, the * kernel driver currently using it is unloaded and replaced by - * igb_uio module, which is a very minimal userland driver for Intel + * nic_uio module, which is a very minimal userland driver for Intel * network card, only providing access to PCI BAR to applications, and * enabling bus master. */ diff --git a/kernel/linux/igb_uio/Kbuild b/kernel/linux/igb_uio/Kbuild deleted file mode 100644 index 3ab85c4116..0000000000 diff --git a/kernel/linux/igb_uio/compat.h b/kernel/linux/igb_uio/compat.h deleted file mode 100644 index 8dbb896ae1..0000000000 diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c deleted file mode 100644 index 039f5a5f63..0000000000 diff --git a/kernel/linux/igb_uio/meson.build b/kernel/linux/igb_uio/meson.build deleted file mode 100644 index 80540aecee..0000000000 diff --git a/kernel/linux/meson.build b/kernel/linux/meson.build index da79df1687..5c864a4653 100644 --- a/kernel/linux/meson.build +++ b/kernel/linux/meson.build @@ -1,7 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation -subdirs = ['igb_uio', 'kni'] +subdirs = ['kni'] # if we are cross-compiling we need kernel_dir specified if get_option('kernel_dir') == '' and meson.is_cross_build() -- 2.28.0
On Mon, Oct 05, 2020 at 11:11:40AM +0200, Maxime Coquelin wrote:
>
>
> On 10/5/20 10:57 AM, Thomas Monjalon wrote:
> > 24/09/2020 07:41, Stephen Hemminger:
> >> On Fri, 11 Sep 2020 17:54:48 +0200
> >> Thomas Monjalon <thomas@monjalon.net> wrote:
> >>
> >>> As decided in the Technical Board in November 2019,
> >>> the kernel module igb_uio is moved to the dpdk-kmods repository
> >>> in the /linux/igb_uio/ directory.
> >>>
> >>> Minutes of Technical Board meeting:
> >>> https://mails.dpdk.org/archives/dev/2019-November/151763.html
> >>>
> >>> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> >>> ---
> >>> v2: update few docs (including release notes)
> >>
> >> Good so far:
> >> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
> >>
> >> You may want to address all the references to igb_uio in guides/nics
> >>
> >> ark.rst
> >> axgbe.rst
> >> bnx2x.rst
> >> bnxt.rst
> >> build_and_test.rst
> >> ena.rst
> >> enic.rst
> >> features.rst
> >> hns3.rst
> >> i40e.rst
> >> intel_vf.rst
> >> ixgbe.rst
> >> liquidio.rst
> >> mlx4.rst
> >> mlx5.rst
> >> nfp.rst
> >> qede.rst
> >> virtio.rst
> >
> > igb_uio is still available.
> > A next step in deprecation might be to remove igb_uio references.
> >
> >> What about drivers like ark which don't mention vfio?
> >
> > They should be updated by their maintainer.
> >
> >> Does virtio still require igb_uio? or x86 I/O port for doorbell?
> >> Or is this just stale language.
> >
> > Maxime, any update on the use of igb_uio with virtio?
>
> For sure Virtio don't require igb_uio, I always use vfio myself.
> It seems the doc needs an update, I'll try to look at it later in this
> release.
>
Another gap I believe we need to close is that we need some instructions in
the GSG for using vfio in noiommu mode, for those running in VMs without an
emulated iommu. The VM case is the big one where using regular VFIO may
cause problems. I do see in the GSG one mention that it's possible to use
VFIO without an IOMMU, but no instructions on how to do so.
/Bruce
On 10/5/20 12:42 PM, Thomas Monjalon wrote:
> As decided in the Technical Board in November 2019,
> the kernel module igb_uio is moved to the dpdk-kmods repository
> in the /linux/igb_uio/ directory.
>
> Minutes of Technical Board meeting:
> https://mails.dpdk.org/archives/dev/2019-November/151763.html
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
On Mon, Oct 5, 2020 at 3:45 PM Andrew Rybchenko <arybchenko@solarflare.com> wrote: > > On 10/5/20 12:42 PM, Thomas Monjalon wrote: > > As decided in the Technical Board in November 2019, > > the kernel module igb_uio is moved to the dpdk-kmods repository > > in the /linux/igb_uio/ directory. > > > > Minutes of Technical Board meeting: > > https://mails.dpdk.org/archives/dev/2019-November/151763.html > > > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> > > Acked-by: Stephen Hemminger <stephen@networkplumber.org> > > Acked-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Jerin Jacob <jerinj@marvell.com> >
On 10/5/2020 10:42 AM, Thomas Monjalon wrote: > As decided in the Technical Board in November 2019, > the kernel module igb_uio is moved to the dpdk-kmods repository > in the /linux/igb_uio/ directory. > > Minutes of Technical Board meeting: > https://mails.dpdk.org/archives/dev/2019-November/151763.html > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> > Acked-by: Stephen Hemminger <stephen@networkplumber.org> > --- > v4: Cc more maintainers > v3: update more docs and provide a link to the new repo > v2: update few docs (including release notes) > --- > MAINTAINERS | 1 - > doc/guides/bbdevs/fpga_5gnr_fec.rst | 3 +- > doc/guides/bbdevs/fpga_lte_fec.rst | 3 +- > doc/guides/cryptodevs/ccp.rst | 3 +- > doc/guides/cryptodevs/qat.rst | 3 +- > doc/guides/howto/lm_bond_virtio_sriov.rst | 2 +- > doc/guides/howto/lm_virtio_vhost_user.rst | 2 +- > doc/guides/howto/openwrt.rst | 5 - > doc/guides/linux_gsg/enable_func.rst | 3 +- > doc/guides/linux_gsg/linux_drivers.rst | 23 +- > doc/guides/nics/build_and_test.rst | 2 +- > doc/guides/nics/ena.rst | 4 +- > doc/guides/rel_notes/deprecation.rst | 7 - > doc/guides/rel_notes/release_20_11.rst | 4 +- > doc/guides/sample_app_ug/multi_process.rst | 2 - > drivers/bus/pci/bsd/pci.c | 2 +- > kernel/linux/igb_uio/Kbuild | 2 - > kernel/linux/igb_uio/compat.h | 154 ----- > kernel/linux/igb_uio/igb_uio.c | 660 --------------------- > kernel/linux/igb_uio/meson.build | 20 - > kernel/linux/meson.build | 2 +- > 21 files changed, 21 insertions(+), 886 deletions(-) > delete mode 100644 kernel/linux/igb_uio/Kbuild > delete mode 100644 kernel/linux/igb_uio/compat.h > delete mode 100644 kernel/linux/igb_uio/igb_uio.c > delete mode 100644 kernel/linux/igb_uio/meson.build > Patch doesn't apply cleanly, not sure why, CI seems having same problem: http://mails.dpdk.org/archives/test-report/2020-October/156378.html <...> > index 7789c572bb..080b44955a 100644 > --- a/doc/guides/linux_gsg/linux_drivers.rst > +++ b/doc/guides/linux_gsg/linux_drivers.rst > @@ -27,33 +27,20 @@ can provide the uio capability. This module can be loaded using the command: > > ``uio_pci_generic`` module doesn't support the creation of virtual functions. > > -As an alternative to the ``uio_pci_generic``, the DPDK also includes the igb_uio > -module which can be found in the kernel/linux subdirectory referred to above. It can > -be loaded as shown below: > +As an alternative to the ``uio_pci_generic``, there is the ``igb_uio`` module > +which can be found in the repository `dpdk-kmods <http://git.dpdk.org/dpdk-kmods>`_. > +It can be loaded as shown below: > > .. code-block:: console > > sudo modprobe uio > - sudo insmod <build_dir>/kernel/linux/igb_uio/igb_uio.ko > - > -.. note:: > - > - Building DPDK Linux kernel modules is disabled by default starting from DPDK 20.02. > - To enable them again, the config option "enable_kmods" needs to be set > - in the meson build configuration. > - See :ref:`adjusting_build_options` for details on how to set/clear build options. > - It is planned to move ``igb_uio`` module to a different git repository. > - > -.. note:: > - > - For some devices which lack support for legacy interrupts, e.g. virtual function > - (VF) devices, the ``igb_uio`` module may be needed in place of ``uio_pci_generic``. > + sudo insmod igb_uio.ko > > .. note:: > > If UEFI secure boot is enabled, the Linux kernel may disallow the use of > UIO on the system. Therefore, devices for use by DPDK should be bound to the > - ``vfio-pci`` kernel module rather than ``igb_uio`` or ``uio_pci_generic``. > + ``vfio-pci`` kernel module rather than any UIO-based module. > For more details see :ref:`linux_gsg_binding_kernel` below. Should we change the order of the kernel drivers, currently first section is "UIO" and second section is "VFIO". Since we encoruage vfio and move igb_uio out of the repo, should we list the "VfIO" first? <...> > index 4e61431c6c..243bd940a4 100644 > --- a/doc/guides/rel_notes/release_20_11.rst > +++ b/doc/guides/rel_notes/release_20_11.rst > @@ -122,9 +122,11 @@ Removed Items > > * vhost: Dequeue zero-copy support has been removed. > > +* kernel: The module ``igb_uio`` has been moved to the git repository > +``dpdk-kmods`` in a new directory ``linux/igb_uio``. > + Doc build giving warning on this: WARNING: Bullet list ends without a blank line; unexpected unindent. Except from above minor comments looks good to me, Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
06/10/2020 12:16, Ferruh Yigit: > On 10/5/2020 10:42 AM, Thomas Monjalon wrote: > > As decided in the Technical Board in November 2019, > > the kernel module igb_uio is moved to the dpdk-kmods repository > > in the /linux/igb_uio/ directory. [...] > Patch doesn't apply cleanly, not sure why, CI seems having same problem: > http://mails.dpdk.org/archives/test-report/2020-October/156378.html That's because I used --irreversible-delete to minimize the size of the patch. [...] > > If UEFI secure boot is enabled, the Linux kernel may disallow the use of > > UIO on the system. Therefore, devices for use by DPDK should be bound to the > > - ``vfio-pci`` kernel module rather than ``igb_uio`` or ``uio_pci_generic``. > > + ``vfio-pci`` kernel module rather than any UIO-based module. > > For more details see :ref:`linux_gsg_binding_kernel` below. > > Should we change the order of the kernel drivers, currently first section is > "UIO" and second section is "VFIO". Since we encoruage vfio and move igb_uio out > of the repo, should we list the "VfIO" first? Absolutely. In general we need to encourage more VFIO and remove some references to igb_uio. But I don't want to do such "marketing" change in this patch. The goal of this patch is just to move the code. [...] > > +* kernel: The module ``igb_uio`` has been moved to the git repository > > +``dpdk-kmods`` in a new directory ``linux/igb_uio``. > > + > > Doc build giving warning on this: > WARNING: Bullet list ends without a blank line; unexpected unindent. Probably a merge issue. That's fine on my side. > Except from above minor comments looks good to me, > Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Do we agree I can merge without any change?
On 10/6/2020 11:54 AM, Thomas Monjalon wrote: > 06/10/2020 12:16, Ferruh Yigit: >> On 10/5/2020 10:42 AM, Thomas Monjalon wrote: >>> As decided in the Technical Board in November 2019, >>> the kernel module igb_uio is moved to the dpdk-kmods repository >>> in the /linux/igb_uio/ directory. > > [...] >> Patch doesn't apply cleanly, not sure why, CI seems having same problem: >> http://mails.dpdk.org/archives/test-report/2020-October/156378.html > > That's because I used --irreversible-delete to minimize the size of the patch. > > [...] >>> If UEFI secure boot is enabled, the Linux kernel may disallow the use of >>> UIO on the system. Therefore, devices for use by DPDK should be bound to the >>> - ``vfio-pci`` kernel module rather than ``igb_uio`` or ``uio_pci_generic``. >>> + ``vfio-pci`` kernel module rather than any UIO-based module. >>> For more details see :ref:`linux_gsg_binding_kernel` below. >> >> Should we change the order of the kernel drivers, currently first section is >> "UIO" and second section is "VFIO". Since we encoruage vfio and move igb_uio out >> of the repo, should we list the "VfIO" first? > > Absolutely. > In general we need to encourage more VFIO and remove some references > to igb_uio. But I don't want to do such "marketing" change in this patch. > The goal of this patch is just to move the code. > OK. > [...] >>> +* kernel: The module ``igb_uio`` has been moved to the git repository >>> +``dpdk-kmods`` in a new directory ``linux/igb_uio``. >>> + >> >> Doc build giving warning on this: >> WARNING: Bullet list ends without a blank line; unexpected unindent. > > Probably a merge issue. That's fine on my side. > I can see it is wrong in the patch itself, please double check in your end to be sure warning is not hidden in doc build. I am good as long as there is no warning. >> Except from above minor comments looks good to me, >> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> > > Do we agree I can merge without any change? > Agree if the above doc warning is gone.
06/10/2020 13:09, Ferruh Yigit:
> On 10/6/2020 11:54 AM, Thomas Monjalon wrote:
> > 06/10/2020 12:16, Ferruh Yigit:
> >> On 10/5/2020 10:42 AM, Thomas Monjalon wrote:
> >>> +* kernel: The module ``igb_uio`` has been moved to the git repository
> >>> +``dpdk-kmods`` in a new directory ``linux/igb_uio``.
> >>> +
> >>
> >> Doc build giving warning on this:
> >> WARNING: Bullet list ends without a blank line; unexpected unindent.
> >
> > Probably a merge issue. That's fine on my side.
>
> I can see it is wrong in the patch itself, please double check in your end to be
> sure warning is not hidden in doc build.
Yes you're right.
I misinterpreted the warning, now I see the missing indent,
and my sphinx reports the problem as well.
06/10/2020 13:09, Ferruh Yigit: > On 10/6/2020 11:54 AM, Thomas Monjalon wrote: > > 06/10/2020 12:16, Ferruh Yigit: > >> On 10/5/2020 10:42 AM, Thomas Monjalon wrote: > >>> As decided in the Technical Board in November 2019, > >>> the kernel module igb_uio is moved to the dpdk-kmods repository > >>> in the /linux/igb_uio/ directory. > > > > [...] > >> Except from above minor comments looks good to me, > >> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> > > > > Do we agree I can merge without any change? > > Agree if the above doc warning is gone. Fixed the warning and applied. igb_uio is now retired in http://git.dpdk.org/dpdk-kmods/tree/linux/igb_uio Next steps: - remove unneeded references to igb_uio. - plan what to do with kni.
On 2020/10/5 17:11, Maxime Coquelin wrote:
>
> On 10/5/20 10:57 AM, Thomas Monjalon wrote:
>> 24/09/2020 07:41, Stephen Hemminger:
>>> On Fri, 11 Sep 2020 17:54:48 +0200
>>> Thomas Monjalon <thomas@monjalon.net> wrote:
>>>
>>>> As decided in the Technical Board in November 2019,
>>>> the kernel module igb_uio is moved to the dpdk-kmods repository
>>>> in the /linux/igb_uio/ directory.
>>>>
>>>> Minutes of Technical Board meeting:
>>>> https://mails.dpdk.org/archives/dev/2019-November/151763.html
>>>>
>>>> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
>>>> ---
>>>> v2: update few docs (including release notes)
>>> Good so far:
>>> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
>>>
>>> You may want to address all the references to igb_uio in guides/nics
>>>
>>> ark.rst
>>> axgbe.rst
>>> bnx2x.rst
>>> bnxt.rst
>>> build_and_test.rst
>>> ena.rst
>>> enic.rst
>>> features.rst
>>> hns3.rst
>>> i40e.rst
>>> intel_vf.rst
>>> ixgbe.rst
>>> liquidio.rst
>>> mlx4.rst
>>> mlx5.rst
>>> nfp.rst
>>> qede.rst
>>> virtio.rst
>> igb_uio is still available.
>> A next step in deprecation might be to remove igb_uio references.
>>
>>> What about drivers like ark which don't mention vfio?
>> They should be updated by their maintainer.
>>
>>> Does virtio still require igb_uio? or x86 I/O port for doorbell?
>>> Or is this just stale language.
>> Maxime, any update on the use of igb_uio with virtio?
> For sure Virtio don't require igb_uio, I always use vfio myself.
> It seems the doc needs an update, I'll try to look at it later in this
> release.
>
> Regards,
> Maxime
PIO/MMIO write(notify backend) needs to go through vfio ioctl call,
which impacts performance. I fix this in another patch. PIO/MMIO
read/write will be executed directly in user space whatever driver is being
used.
/huawei