[dpdk-dev] how to compile kernel drivers only

2015-07-30 Thread Thomas Monjalon
Francesco, please reply below (easier to follow the thread).

2015-07-30 12:48, Montorsi, Francesco:
> From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com] 
> > 2015-07-30 12:17, Montorsi, Francesco:
> > > How can I avoid building any app like dump_cfg?
> > 
> > In app/Makefile, you'll find the options to disable:
> > DIRS-$(CONFIG_RTE_APP_TEST) += test
> > DIRS-$(CONFIG_RTE_LIBRTE_ACL) += test-acl
> > DIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += test-pipeline
> > DIRS-$(CONFIG_RTE_TEST_PMD) += test-pmd
> > DIRS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_test
> > DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += proc_info
> 
> My problem is that I have in app/Makefile:
> 
> DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += dump_cfg
> 
> So that I should put 
> 
> CONFIG_RTE_LIBRTE_EAL_LINUXAPP=n
> 
> To disable dump_cfg application build. However, If I do so, the kernel 
> drivers are not built at all and make just says:
> 
> make T=x86_64-native-linuxapp-gcc O=x86_64-native-linuxapp-gcc 
> EXTRA_LDFLAGS="" --directory=dpdk-2.0.0 all
> make[1]: Entering directory 
> `/home/hammer/share/CSA-Hamachi-Sprint/HW-Accel/drivers/dpdk/dpdk-2.0.0'
> == Build lib
> == Build lib/librte_compat
>   SYMLINK-FILE include/rte_compat.h
> == Build lib/librte_eal
> == Build app
> Build complete
> 
> So that 
> CONFIG_RTE_LIBRTE_EAL_LINUXAPP=y
> Seems to be a pre-requisite of kernel drivers... or am I missing something?

You're right. You cannot build only kernel drivers.
You are welcome to add a new config option to enable/disable apps.


[dpdk-dev] how to compile kernel drivers only

2015-07-30 Thread Thomas Monjalon
2015-07-30 12:17, Montorsi, Francesco:
> How can I avoid building any app like dump_cfg?

In app/Makefile, you'll find the options to disable:
DIRS-$(CONFIG_RTE_APP_TEST) += test
DIRS-$(CONFIG_RTE_LIBRTE_ACL) += test-acl   
 
DIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += test-pipeline
DIRS-$(CONFIG_RTE_TEST_PMD) += test-pmd
DIRS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_test
DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += proc_info



[dpdk-dev] how to compile kernel drivers only

2015-07-30 Thread Montorsi, Francesco
Hi Thomas,
Thanks for your reply.

My problem is that I have in app/Makefile:

DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += dump_cfg

So that I should put 

CONFIG_RTE_LIBRTE_EAL_LINUXAPP=n

To disable dump_cfg application build. However, If I do so, the kernel drivers 
are not built at all and make just says:

make T=x86_64-native-linuxapp-gcc O=x86_64-native-linuxapp-gcc EXTRA_LDFLAGS="" 
--directory=dpdk-2.0.0 all
make[1]: Entering directory 
`/home/hammer/share/CSA-Hamachi-Sprint/HW-Accel/drivers/dpdk/dpdk-2.0.0'
== Build lib
== Build lib/librte_compat
  SYMLINK-FILE include/rte_compat.h
== Build lib/librte_eal
== Build app
Build complete

So that 
CONFIG_RTE_LIBRTE_EAL_LINUXAPP=y
Seems to be a pre-requisite of kernel drivers... or am I missing something?

Thanks,
Francesco

-Original Message-
From: Thomas Monjalon [mailto:thomas.monja...@6wind.com] 
Sent: gioved? 30 luglio 2015 14:23
To: Montorsi, Francesco
Cc: dev at dpdk.org
Subject: Re: [dpdk-dev] how to compile kernel drivers only

2015-07-30 12:17, Montorsi, Francesco:
> How can I avoid building any app like dump_cfg?

In app/Makefile, you'll find the options to disable:
DIRS-$(CONFIG_RTE_APP_TEST) += test
DIRS-$(CONFIG_RTE_LIBRTE_ACL) += test-acl   
 
DIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += test-pipeline
DIRS-$(CONFIG_RTE_TEST_PMD) += test-pmd
DIRS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_test
DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += proc_info



[dpdk-dev] how to compile kernel drivers only

2015-07-30 Thread Montorsi, Francesco
Hi all,

I'm trying to compile DPDK kernel drivers (i.e., igb_uio.ko and kni.ko if I got 
it right) only on a certain machine.
On that machine, I'm not interested in anything else. how can I tweak .config 
file to achieve it?

I have tried to set all options to =n, except for:

CONFIG_RTE_LIBRTE_EAL=y
CONFIG_RTE_LIBRTE_EAL_LINUXAPP=y
CONFIG_RTE_EAL_IGB_UIO=y
CONFIG_RTE_EAL_VFIO=y
CONFIG_RTE_LIBRTE_KNI=y

But then I get a compile error about app/dump_cfg:

== Build app/dump_cfg
? CC main.o
? LD dump_cfg
dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_common_log.o): 
In function `rte_eal_common_log_init':
eal_common_log.c:(.text+0x1b0): undefined reference to `rte_mempool_create'
eal_common_log.c:(.text+0x1fe): undefined reference to `rte_mempool_lookup'
dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_pci_uio.o): In 
function `pci_uio_map_resource':
eal_pci_uio.c:(.text+0x4dd): undefined reference to `rte_zmalloc'
eal_pci_uio.c:(.text+0x873): undefined reference to `rte_malloc'
eal_pci_uio.c:(.text+0x9bf): undefined reference to `rte_malloc'
eal_pci_uio.c:(.text+0xb0a): undefined reference to `rte_malloc'
eal_pci_uio.c:(.text+0xc55): undefined reference to `rte_malloc'
eal_pci_uio.c:(.text+0xda6): undefined reference to `rte_malloc'
dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_pci_uio.o):eal_pci_uio.c:(.text+0xf00):
 more undefined references to `rte_malloc' follow
dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_pci_uio.o): In 
function `pci_uio_map_resource':
eal_pci_uio.c:(.text+0x10e4): undefined reference to `rte_free'
dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_interrupts.o): 
In function `rte_intr_callback_unregister':
eal_interrupts.c:(.text+0x7b6): undefined reference to `rte_free'
eal_interrupts.c:(.text+0x7f2): undefined reference to `rte_free'
eal_interrupts.c:(.text+0x84c): undefined reference to `rte_free'
dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_interrupts.o): 
In function `rte_intr_callback_register':
eal_interrupts.c:(.text+0x8fb): undefined reference to `rte_zmalloc'
eal_interrupts.c:(.text+0x96f): undefined reference to `rte_zmalloc'
eal_interrupts.c:(.text+0xac4): undefined reference to `rte_free'
dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_alarm.o): In 
function `rte_eal_alarm_cancel':
eal_alarm.c:(.text+0xa4): undefined reference to `rte_free'
eal_alarm.c:(.text+0x128): undefined reference to `rte_free'
eal_alarm.c:(.text+0x156): undefined reference to `rte_free'
eal_alarm.c:(.text+0x1d3): undefined reference to `rte_free'
dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_alarm.o): In 
function `rte_eal_alarm_set':
eal_alarm.c:(.text+0x31e): undefined reference to `rte_zmalloc'
dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_alarm.o): In 
function `eal_alarm_callback':
eal_alarm.c:(.text+0x59e): undefined reference to `rte_free'


How can I avoid building any app like dump_cfg?

Thanks!
Francesco