Create kern folder for Linux kernel modules

Message ID 1513922231-15554-1-git-send-email-hemant.agrawal@nxp.com
State New
Headers show
Series
  • Create kern folder for Linux kernel modules
Related show

Commit Message

Hemant Agrawal Dec. 22, 2017, 5:57 a.m.
This patch moves the Linux kernel modules code to a common place.
 - Separate the kernel module code from user space code.
 - The GPL-2.0 licensed code is separated from the BSD-3 licensed userspace
   code

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>

---
 GNUmakefile                                                      | 2 +-
 kern/Makefile                                                    | 9 +++++++++
 {lib/librte_eal/linuxapp => kern}/igb_uio/Makefile               | 0
 {lib/librte_eal/linuxapp => kern}/igb_uio/compat.h               | 0
 {lib/librte_eal/linuxapp => kern}/igb_uio/igb_uio.c              | 0
 {lib/librte_eal/linuxapp => kern}/kni/Makefile                   | 0
 {lib/librte_eal/linuxapp => kern}/kni/compat.h                   | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/README             | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_82575.c  | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_82575.h  | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_api.c    | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_api.h    | 0
 .../librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_defines.h | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_hw.h     | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_i210.c   | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_i210.h   | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_mac.c    | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_mac.h    | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_manage.c | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_manage.h | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_mbx.c    | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_mbx.h    | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_nvm.c    | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_nvm.h    | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_osdep.h  | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_phy.c    | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_phy.h    | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_regs.h   | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/igb.h          | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/igb_ethtool.c  | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/igb_main.c     | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/igb_param.c    | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/igb_regtest.h  | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/igb_vmdq.c     | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/igb_vmdq.h     | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/kcompat.h      | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe.h      | 0
 .../librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_82598.c | 0
 .../librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_82598.h | 0
 .../librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_82599.c | 0
 .../librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_82599.h | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_api.c  | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_api.h  | 0
 .../linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_common.c           | 0
 .../linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_common.h           | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_dcb.h  | 0
 .../linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_ethtool.c          | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_fcoe.h | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_main.c | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_mbx.h  | 0
 .../librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_osdep.h | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_phy.c  | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_phy.h  | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_type.h | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_x540.c | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_x540.h | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/kcompat.c    | 0
 {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/kcompat.h    | 0
 {lib/librte_eal/linuxapp => kern}/kni/kni_dev.h                  | 0
 {lib/librte_eal/linuxapp => kern}/kni/kni_ethtool.c              | 0
 {lib/librte_eal/linuxapp => kern}/kni/kni_fifo.h                 | 0
 {lib/librte_eal/linuxapp => kern}/kni/kni_misc.c                 | 0
 {lib/librte_eal/linuxapp => kern}/kni/kni_net.c                  | 0
 lib/librte_eal/linuxapp/Makefile                                 | 2 --
 64 files changed, 10 insertions(+), 3 deletions(-)
 create mode 100644 kern/Makefile
 rename {lib/librte_eal/linuxapp => kern}/igb_uio/Makefile (100%)
 rename {lib/librte_eal/linuxapp => kern}/igb_uio/compat.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/igb_uio/igb_uio.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/Makefile (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/compat.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/README (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_82575.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_82575.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_api.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_api.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_defines.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_hw.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_i210.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_i210.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_mac.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_mac.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_manage.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_manage.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_mbx.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_mbx.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_nvm.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_nvm.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_osdep.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_phy.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_phy.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/e1000_regs.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/igb.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/igb_ethtool.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/igb_main.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/igb_param.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/igb_regtest.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/igb_vmdq.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/igb_vmdq.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/igb/kcompat.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_82598.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_82598.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_82599.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_82599.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_api.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_api.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_common.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_common.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_dcb.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_ethtool.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_fcoe.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_main.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_mbx.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_osdep.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_phy.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_phy.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_type.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_x540.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/ixgbe_x540.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/kcompat.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/ethtool/ixgbe/kcompat.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/kni_dev.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/kni_ethtool.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/kni_fifo.h (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/kni_misc.c (100%)
 rename {lib/librte_eal/linuxapp => kern}/kni/kni_net.c (100%)

-- 
2.7.4

Comments

Thomas Monjalon Dec. 22, 2017, 8:43 a.m. | #1
Hi,

22/12/2017 06:57, Hemant Agrawal:
> This patch moves the Linux kernel modules code to a common place.

>  - Separate the kernel module code from user space code.

>  - The GPL-2.0 licensed code is separated from the BSD-3 licensed userspace

>    code


What is the benefit of separate things by license?
These modules are Linux modules, so they should be in the linuxapp dir.
There are also some kernel modules in the bsdapp directory.
Hemant Agrawal Dec. 22, 2017, 10:04 a.m. | #2
On 12/22/2017 2:13 PM, Thomas Monjalon wrote:
> Hi,

>

> 22/12/2017 06:57, Hemant Agrawal:

>> This patch moves the Linux kernel modules code to a common place.

>>  - Separate the kernel module code from user space code.

>>  - The GPL-2.0 licensed code is separated from the BSD-3 licensed userspace

>>    code

>

> What is the benefit of separate things by license?


The separation makes it easy to identify and check the license.

Any patch introducing new file in *non-kern* folders shall not be 
GPL-2.0 licensed.  Or GPL-2.0 license is allowed only for kern folder.

> These modules are Linux modules, so they should be in the linuxapp dir.



This is a cleaner separation w.r.t userspace/kernel space code.
*kern* is a better placefolder for LKMs.

Also eal is not getting overloaded.

linuxapp is part of librte_eal.  KNI is not related to EAL, but still 
the kni kernel code is added to librte_eal under linuxapp.


> There are also some kernel modules in the bsdapp directory.


We can move them as well.

>

>
Thomas Monjalon Dec. 22, 2017, 11:38 a.m. | #3
22/12/2017 11:04, Hemant Agrawal:
> On 12/22/2017 2:13 PM, Thomas Monjalon wrote:

> > Hi,

> >

> > 22/12/2017 06:57, Hemant Agrawal:

> >> This patch moves the Linux kernel modules code to a common place.

> >>  - Separate the kernel module code from user space code.

> >>  - The GPL-2.0 licensed code is separated from the BSD-3 licensed userspace

> >>    code

> >

> > What is the benefit of separate things by license?

> 

> The separation makes it easy to identify and check the license.

> 

> Any patch introducing new file in *non-kern* folders shall not be 

> GPL-2.0 licensed.  Or GPL-2.0 license is allowed only for kern folder.


The kernel modules are in DPDK only for historical reasons.
We should get rid of them, and rely only on upstream modules.

And it should be allowed to have kernel-related files elsewhere.
Examples: GPL tools or BPF code.

> > These modules are Linux modules, so they should be in the linuxapp dir.

> 

> 

> This is a cleaner separation w.r.t userspace/kernel space code.

> *kern* is a better placefolder for LKMs.


I prefer "kernel" name.

> Also eal is not getting overloaded.

> 

> linuxapp is part of librte_eal.  KNI is not related to EAL, but still 

> the kni kernel code is added to librte_eal under linuxapp.


Yes it makes sense.

More opinions/votes?

> > There are also some kernel modules in the bsdapp directory.

> 

> We can move them as well.
Burakov, Anatoly Dec. 22, 2017, 1:05 p.m. | #4
On 22-Dec-17 10:04 AM, Hemant Agrawal wrote:
> On 12/22/2017 2:13 PM, Thomas Monjalon wrote:

>> Hi,

>>

>> 22/12/2017 06:57, Hemant Agrawal:

>>> This patch moves the Linux kernel modules code to a common place.

>>>  - Separate the kernel module code from user space code.

>>>  - The GPL-2.0 licensed code is separated from the BSD-3 licensed 

>>> userspace

>>>    code

>>

>> What is the benefit of separate things by license?

> 

> The separation makes it easy to identify and check the license.

> 

> Any patch introducing new file in *non-kern* folders shall not be 

> GPL-2.0 licensed.  Or GPL-2.0 license is allowed only for kern folder.


The latter is better since BSD kernel modules are not GPL-licensed. So, 
anything in the kern/kernel dir is not *necessarily* GPL-licensed, but 
anything *outside* kern/kernel dir is *necessarily not* GPL-licensed.

-- 
Thanks,
Anatoly
Wiles, Keith Dec. 22, 2017, 1:59 p.m. | #5
> On Dec 22, 2017, at 5:38 AM, Thomas Monjalon <thomas@monjalon.net> wrote:

> 

> 22/12/2017 11:04, Hemant Agrawal:

>> On 12/22/2017 2:13 PM, Thomas Monjalon wrote:

>>> Hi,

>>> 

>>> 22/12/2017 06:57, Hemant Agrawal:

>>>> This patch moves the Linux kernel modules code to a common place.

>>>> - Separate the kernel module code from user space code.

>>>> - The GPL-2.0 licensed code is separated from the BSD-3 licensed userspace

>>>>   code

>>> 

>>> What is the benefit of separate things by license?

>> 

>> The separation makes it easy to identify and check the license.

>> 

>> Any patch introducing new file in *non-kern* folders shall not be 

>> GPL-2.0 licensed.  Or GPL-2.0 license is allowed only for kern folder.

> 

> The kernel modules are in DPDK only for historical reasons.

> We should get rid of them, and rely only on upstream modules.

> 

> And it should be allowed to have kernel-related files elsewhere.

> Examples: GPL tools or BPF code.

> 

>>> These modules are Linux modules, so they should be in the linuxapp dir.

>> 

>> 

>> This is a cleaner separation w.r.t userspace/kernel space code.

>> *kern* is a better placefolder for LKMs.

> 

> I prefer "kernel" name.


The name should be related to Linux in some way, like linux_kern or linux_kernel or linux_modules (this is the one I prefer) this way it make it clear which OS they are designed for.

> 

>> Also eal is not getting overloaded.

>> 

>> linuxapp is part of librte_eal.  KNI is not related to EAL, but still 

>> the kni kernel code is added to librte_eal under linuxapp.

> 

> Yes it makes sense.

> 

> More opinions/votes?

> 

>>> There are also some kernel modules in the bsdapp directory.

>> 

>> We can move them as well.


Regards,
Keith
Thomas Monjalon Dec. 22, 2017, 2:17 p.m. | #6
22/12/2017 14:59, Wiles, Keith:
> 

> > On Dec 22, 2017, at 5:38 AM, Thomas Monjalon <thomas@monjalon.net> wrote:

> > 

> > 22/12/2017 11:04, Hemant Agrawal:

> >> On 12/22/2017 2:13 PM, Thomas Monjalon wrote:

> >>> These modules are Linux modules, so they should be in the linuxapp dir.

> >> 

> >> 

> >> This is a cleaner separation w.r.t userspace/kernel space code.

> >> *kern* is a better placefolder for LKMs.

> > 

> > I prefer "kernel" name.

> 

> The name should be related to Linux in some way, like linux_kern or linux_kernel or linux_modules (this is the one I prefer) this way it make it clear which OS they are designed for.


If such top-level directory is created, the BSD modules must be moved there too.
That's why "kernel/" or "kernel/linux/" is appropriate.

> >> Also eal is not getting overloaded.

> >> 

> >> linuxapp is part of librte_eal.  KNI is not related to EAL, but still 

> >> the kni kernel code is added to librte_eal under linuxapp.

> > 

> > Yes it makes sense.

> > 

> > More opinions/votes?

> > 

> >>> There are also some kernel modules in the bsdapp directory.

> >> 

> >> We can move them as well.
Van Haaren, Harry Dec. 22, 2017, 2:28 p.m. | #7
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon

> Sent: Friday, December 22, 2017 11:38 AM

> To: Hemant Agrawal <hemant.agrawal@nxp.com>

> Cc: dev@dpdk.org; Yigit, Ferruh <ferruh.yigit@intel.com>

> Subject: Re: [dpdk-dev] [PATCH] Create kern folder for Linux kernel modules

> 

> 22/12/2017 11:04, Hemant Agrawal:

> > On 12/22/2017 2:13 PM, Thomas Monjalon wrote:

> > > Hi,

> > >

> > > 22/12/2017 06:57, Hemant Agrawal:

> > >> This patch moves the Linux kernel modules code to a common place.

> > >>  - Separate the kernel module code from user space code.

> > >>  - The GPL-2.0 licensed code is separated from the BSD-3 licensed

> userspace

> > >>    code

> > >

> > > What is the benefit of separate things by license?

> >

> > The separation makes it easy to identify and check the license.

> >

> > Any patch introducing new file in *non-kern* folders shall not be

> > GPL-2.0 licensed.  Or GPL-2.0 license is allowed only for kern folder.

> 

> The kernel modules are in DPDK only for historical reasons.

> We should get rid of them, and rely only on upstream modules.

> 

> And it should be allowed to have kernel-related files elsewhere.

> Examples: GPL tools or BPF code.

> 

> > > These modules are Linux modules, so they should be in the linuxapp dir.

> >

> >

> > This is a cleaner separation w.r.t userspace/kernel space code.

> > *kern* is a better placefolder for LKMs.

> 

> I prefer "kernel" name.

> 

> > Also eal is not getting overloaded.

> >

> > linuxapp is part of librte_eal.  KNI is not related to EAL, but still

> > the kni kernel code is added to librte_eal under linuxapp.

> 

> Yes it makes sense.

> 

> More opinions/votes?



No strong opinion on moving source code around here... but:

We should be careful that the build system leaves the .ko and other files in the same place as before as moving the build output may break automated deployments of other projects that use DPDK.

We've accidentally broken things before, for example moving scripts/ to usertools/ broke automation in OpenStack IIRC.


> > > There are also some kernel modules in the bsdapp directory.

> >

> > We can move them as well.
Wiles, Keith Dec. 22, 2017, 2:51 p.m. | #8
> On Dec 22, 2017, at 8:17 AM, Thomas Monjalon <thomas@monjalon.net> wrote:

> 

> 22/12/2017 14:59, Wiles, Keith:

>> 

>>> On Dec 22, 2017, at 5:38 AM, Thomas Monjalon <thomas@monjalon.net> wrote:

>>> 

>>> 22/12/2017 11:04, Hemant Agrawal:

>>>> On 12/22/2017 2:13 PM, Thomas Monjalon wrote:

>>>>> These modules are Linux modules, so they should be in the linuxapp dir.

>>>> 

>>>> 

>>>> This is a cleaner separation w.r.t userspace/kernel space code.

>>>> *kern* is a better placefolder for LKMs.

>>> 

>>> I prefer "kernel" name.

>> 

>> The name should be related to Linux in some way, like linux_kern or linux_kernel or linux_modules (this is the one I prefer) this way it make it clear which OS they are designed for.

> 

> If such top-level directory is created, the BSD modules must be moved there too.

> That's why "kernel/" or "kernel/linux/" is appropriate.


OK seems reasonable, what about kernel/{freebsd,Linux, …}/modules/(module-name e.g. kni, igb_uio, nic_uio, …)

Kernel is misleading IMO, but I can live with it as long as we break down the different kernel related items. This is why I add modules in the path, as we could have other OSes like Windows with items that are not modules or VMs or containers…

I can live with kernel/{freebsd, linux, …}/{igb_uio, kni, nic_uio, ..}  but I would like to make sure it does not change in the future with adding windows.

> 

>>>> Also eal is not getting overloaded.

>>>> 

>>>> linuxapp is part of librte_eal.  KNI is not related to EAL, but still 

>>>> the kni kernel code is added to librte_eal under linuxapp.

>>> 

>>> Yes it makes sense.

>>> 

>>> More opinions/votes?

>>> 

>>>>> There are also some kernel modules in the bsdapp directory.

>>>> 

>>>> We can move them as well.

> 


Regards,
Keith
Hemant Agrawal Dec. 22, 2017, 4:25 p.m. | #9
On 12/22/2017 8:21 PM, Wiles, Keith wrote:
>

>

>> On Dec 22, 2017, at 8:17 AM, Thomas Monjalon <thomas@monjalon.net> wrote:

>>

>> 22/12/2017 14:59, Wiles, Keith:

>>>

>>>> On Dec 22, 2017, at 5:38 AM, Thomas Monjalon <thomas@monjalon.net> wrote:

>>>>

>>>> 22/12/2017 11:04, Hemant Agrawal:

>>>>> On 12/22/2017 2:13 PM, Thomas Monjalon wrote:

>>>>>> These modules are Linux modules, so they should be in the linuxapp dir.

>>>>>

>>>>>

>>>>> This is a cleaner separation w.r.t userspace/kernel space code.

>>>>> *kern* is a better placefolder for LKMs.

>>>>

>>>> I prefer "kernel" name.

>>>

>>> The name should be related to Linux in some way, like linux_kern or linux_kernel or linux_modules (this is the one I prefer) this way it make it clear which OS they are designed for.

>>

>> If such top-level directory is created, the BSD modules must be moved there too.

>> That's why "kernel/" or "kernel/linux/" is appropriate.

>

> OK seems reasonable, what about kernel/{freebsd,Linux, …}/modules/(module-name e.g. kni, igb_uio, nic_uio, …)

>

> Kernel is misleading IMO, but I can live with it as long as we break down the different kernel related items. This is why I add modules in the path, as we could have other OSes like Windows with items that are not modules or VMs or containers…

>

> I can live with kernel/{freebsd, linux, …}/{igb_uio, kni, nic_uio, ..}  but I would like to make sure it does not change in the future with adding windows.


Your suggestion seems reasonable.

I am not sure about windows.
May be some working on DPDK-on-windows can comment

>

>>

>>>>> Also eal is not getting overloaded.

>>>>>

>>>>> linuxapp is part of librte_eal.  KNI is not related to EAL, but still

>>>>> the kni kernel code is added to librte_eal under linuxapp.

>>>>

>>>> Yes it makes sense.

>>>>

>>>> More opinions/votes?

>>>>

>>>>>> There are also some kernel modules in the bsdapp directory.

>>>>>

>>>>> We can move them as well.

>>

>

> Regards,

> Keith

>

Patch

diff --git a/GNUmakefile b/GNUmakefile
index 45b7fbb..59a30f4 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -40,7 +40,7 @@  export RTE_SDK
 # directory list
 #
 
-ROOTDIRS-y := buildtools lib drivers app
+ROOTDIRS-y := buildtools lib drivers app kern
 ROOTDIRS-  := test
 
 include $(RTE_SDK)/mk/rte.sdkroot.mk
diff --git a/kern/Makefile b/kern/Makefile
new file mode 100644
index 0000000..c2c45a3
--- /dev/null
+++ b/kern/Makefile
@@ -0,0 +1,9 @@ 
+# SPDX-License-Identifier: GPL-2.0
+# Copyright 2017 NXP
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+DIRS-$(CONFIG_RTE_EAL_IGB_UIO) += igb_uio
+DIRS-$(CONFIG_RTE_KNI_KMOD) += kni
+
+include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/lib/librte_eal/linuxapp/igb_uio/Makefile b/kern/igb_uio/Makefile
similarity index 100%
rename from lib/librte_eal/linuxapp/igb_uio/Makefile
rename to kern/igb_uio/Makefile
diff --git a/lib/librte_eal/linuxapp/igb_uio/compat.h b/kern/igb_uio/compat.h
similarity index 100%
rename from lib/librte_eal/linuxapp/igb_uio/compat.h
rename to kern/igb_uio/compat.h
diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/kern/igb_uio/igb_uio.c
similarity index 100%
rename from lib/librte_eal/linuxapp/igb_uio/igb_uio.c
rename to kern/igb_uio/igb_uio.c
diff --git a/lib/librte_eal/linuxapp/kni/Makefile b/kern/kni/Makefile
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/Makefile
rename to kern/kni/Makefile
diff --git a/lib/librte_eal/linuxapp/kni/compat.h b/kern/kni/compat.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/compat.h
rename to kern/kni/compat.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/README b/kern/kni/ethtool/README
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/README
rename to kern/kni/ethtool/README
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_82575.c b/kern/kni/ethtool/igb/e1000_82575.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_82575.c
rename to kern/kni/ethtool/igb/e1000_82575.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_82575.h b/kern/kni/ethtool/igb/e1000_82575.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_82575.h
rename to kern/kni/ethtool/igb/e1000_82575.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_api.c b/kern/kni/ethtool/igb/e1000_api.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_api.c
rename to kern/kni/ethtool/igb/e1000_api.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_api.h b/kern/kni/ethtool/igb/e1000_api.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_api.h
rename to kern/kni/ethtool/igb/e1000_api.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_defines.h b/kern/kni/ethtool/igb/e1000_defines.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_defines.h
rename to kern/kni/ethtool/igb/e1000_defines.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_hw.h b/kern/kni/ethtool/igb/e1000_hw.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_hw.h
rename to kern/kni/ethtool/igb/e1000_hw.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_i210.c b/kern/kni/ethtool/igb/e1000_i210.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_i210.c
rename to kern/kni/ethtool/igb/e1000_i210.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_i210.h b/kern/kni/ethtool/igb/e1000_i210.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_i210.h
rename to kern/kni/ethtool/igb/e1000_i210.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mac.c b/kern/kni/ethtool/igb/e1000_mac.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mac.c
rename to kern/kni/ethtool/igb/e1000_mac.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mac.h b/kern/kni/ethtool/igb/e1000_mac.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mac.h
rename to kern/kni/ethtool/igb/e1000_mac.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_manage.c b/kern/kni/ethtool/igb/e1000_manage.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_manage.c
rename to kern/kni/ethtool/igb/e1000_manage.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_manage.h b/kern/kni/ethtool/igb/e1000_manage.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_manage.h
rename to kern/kni/ethtool/igb/e1000_manage.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mbx.c b/kern/kni/ethtool/igb/e1000_mbx.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mbx.c
rename to kern/kni/ethtool/igb/e1000_mbx.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mbx.h b/kern/kni/ethtool/igb/e1000_mbx.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mbx.h
rename to kern/kni/ethtool/igb/e1000_mbx.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_nvm.c b/kern/kni/ethtool/igb/e1000_nvm.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_nvm.c
rename to kern/kni/ethtool/igb/e1000_nvm.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_nvm.h b/kern/kni/ethtool/igb/e1000_nvm.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_nvm.h
rename to kern/kni/ethtool/igb/e1000_nvm.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_osdep.h b/kern/kni/ethtool/igb/e1000_osdep.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_osdep.h
rename to kern/kni/ethtool/igb/e1000_osdep.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c b/kern/kni/ethtool/igb/e1000_phy.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c
rename to kern/kni/ethtool/igb/e1000_phy.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.h b/kern/kni/ethtool/igb/e1000_phy.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.h
rename to kern/kni/ethtool/igb/e1000_phy.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_regs.h b/kern/kni/ethtool/igb/e1000_regs.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_regs.h
rename to kern/kni/ethtool/igb/e1000_regs.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb.h b/kern/kni/ethtool/igb/igb.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/igb.h
rename to kern/kni/ethtool/igb/igb.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c b/kern/kni/ethtool/igb/igb_ethtool.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
rename to kern/kni/ethtool/igb/igb_ethtool.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/kern/kni/ethtool/igb/igb_main.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
rename to kern/kni/ethtool/igb/igb_main.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_param.c b/kern/kni/ethtool/igb/igb_param.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/igb_param.c
rename to kern/kni/ethtool/igb/igb_param.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_regtest.h b/kern/kni/ethtool/igb/igb_regtest.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/igb_regtest.h
rename to kern/kni/ethtool/igb/igb_regtest.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_vmdq.c b/kern/kni/ethtool/igb/igb_vmdq.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/igb_vmdq.c
rename to kern/kni/ethtool/igb/igb_vmdq.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_vmdq.h b/kern/kni/ethtool/igb/igb_vmdq.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/igb_vmdq.h
rename to kern/kni/ethtool/igb/igb_vmdq.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/kern/kni/ethtool/igb/kcompat.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
rename to kern/kni/ethtool/igb/kcompat.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h b/kern/kni/ethtool/ixgbe/ixgbe.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
rename to kern/kni/ethtool/ixgbe/ixgbe.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82598.c b/kern/kni/ethtool/ixgbe/ixgbe_82598.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82598.c
rename to kern/kni/ethtool/ixgbe/ixgbe_82598.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82598.h b/kern/kni/ethtool/ixgbe/ixgbe_82598.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82598.h
rename to kern/kni/ethtool/ixgbe/ixgbe_82598.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c b/kern/kni/ethtool/ixgbe/ixgbe_82599.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c
rename to kern/kni/ethtool/ixgbe/ixgbe_82599.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.h b/kern/kni/ethtool/ixgbe/ixgbe_82599.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.h
rename to kern/kni/ethtool/ixgbe/ixgbe_82599.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_api.c b/kern/kni/ethtool/ixgbe/ixgbe_api.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_api.c
rename to kern/kni/ethtool/ixgbe/ixgbe_api.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_api.h b/kern/kni/ethtool/ixgbe/ixgbe_api.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_api.h
rename to kern/kni/ethtool/ixgbe/ixgbe_api.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_common.c b/kern/kni/ethtool/ixgbe/ixgbe_common.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_common.c
rename to kern/kni/ethtool/ixgbe/ixgbe_common.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_common.h b/kern/kni/ethtool/ixgbe/ixgbe_common.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_common.h
rename to kern/kni/ethtool/ixgbe/ixgbe_common.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_dcb.h b/kern/kni/ethtool/ixgbe/ixgbe_dcb.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_dcb.h
rename to kern/kni/ethtool/ixgbe/ixgbe_dcb.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c b/kern/kni/ethtool/ixgbe/ixgbe_ethtool.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
rename to kern/kni/ethtool/ixgbe/ixgbe_ethtool.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_fcoe.h b/kern/kni/ethtool/ixgbe/ixgbe_fcoe.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_fcoe.h
rename to kern/kni/ethtool/ixgbe/ixgbe_fcoe.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c b/kern/kni/ethtool/ixgbe/ixgbe_main.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c
rename to kern/kni/ethtool/ixgbe/ixgbe_main.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_mbx.h b/kern/kni/ethtool/ixgbe/ixgbe_mbx.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_mbx.h
rename to kern/kni/ethtool/ixgbe/ixgbe_mbx.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_osdep.h b/kern/kni/ethtool/ixgbe/ixgbe_osdep.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_osdep.h
rename to kern/kni/ethtool/ixgbe/ixgbe_osdep.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_phy.c b/kern/kni/ethtool/ixgbe/ixgbe_phy.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_phy.c
rename to kern/kni/ethtool/ixgbe/ixgbe_phy.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_phy.h b/kern/kni/ethtool/ixgbe/ixgbe_phy.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_phy.h
rename to kern/kni/ethtool/ixgbe/ixgbe_phy.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_type.h b/kern/kni/ethtool/ixgbe/ixgbe_type.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_type.h
rename to kern/kni/ethtool/ixgbe/ixgbe_type.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_x540.c b/kern/kni/ethtool/ixgbe/ixgbe_x540.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_x540.c
rename to kern/kni/ethtool/ixgbe/ixgbe_x540.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_x540.h b/kern/kni/ethtool/ixgbe/ixgbe_x540.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_x540.h
rename to kern/kni/ethtool/ixgbe/ixgbe_x540.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.c b/kern/kni/ethtool/ixgbe/kcompat.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.c
rename to kern/kni/ethtool/ixgbe/kcompat.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h b/kern/kni/ethtool/ixgbe/kcompat.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h
rename to kern/kni/ethtool/ixgbe/kcompat.h
diff --git a/lib/librte_eal/linuxapp/kni/kni_dev.h b/kern/kni/kni_dev.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/kni_dev.h
rename to kern/kni/kni_dev.h
diff --git a/lib/librte_eal/linuxapp/kni/kni_ethtool.c b/kern/kni/kni_ethtool.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/kni_ethtool.c
rename to kern/kni/kni_ethtool.c
diff --git a/lib/librte_eal/linuxapp/kni/kni_fifo.h b/kern/kni/kni_fifo.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/kni_fifo.h
rename to kern/kni/kni_fifo.h
diff --git a/lib/librte_eal/linuxapp/kni/kni_misc.c b/kern/kni/kni_misc.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/kni_misc.c
rename to kern/kni/kni_misc.c
diff --git a/lib/librte_eal/linuxapp/kni/kni_net.c b/kern/kni/kni_net.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/kni_net.c
rename to kern/kni/kni_net.c
diff --git a/lib/librte_eal/linuxapp/Makefile b/lib/librte_eal/linuxapp/Makefile
index 2ebdf31..5e100fb 100644
--- a/lib/librte_eal/linuxapp/Makefile
+++ b/lib/librte_eal/linuxapp/Makefile
@@ -32,8 +32,6 @@ 
 include $(RTE_SDK)/mk/rte.vars.mk
 
 DIRS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += eal
-DIRS-$(CONFIG_RTE_EAL_IGB_UIO) += igb_uio
-DIRS-$(CONFIG_RTE_KNI_KMOD) += kni
 DEPDIRS-kni := eal
 
 include $(RTE_SDK)/mk/rte.subdir.mk