From: Jan Viktorin <viktorin@rehivetech.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v5] dpdk: new package
Date: Mon, 18 Apr 2016 10:23:15 +0200 [thread overview]
Message-ID: <20160418102315.169c22ad@jvn> (raw)
In-Reply-To: <20160417230607.75d32331@free-electrons.com>
On Sun, 17 Apr 2016 23:06:07 +0200
Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote:
> Hello,
>
> On Sun, 17 Apr 2016 22:56:07 +0200, Jan Viktorin wrote:
>
> > Well, your config is for ARMv7 so no kmods are built because all
> > current drivers require PCI which is hardly to see on this platform
> > (I know just about Armada).
>
> Indeed mvebu_v7 is for Marvell Armada. Is DPDK only for PCI NICs? Can't
> it be used for the internal NICs of certain ARM SoCs ?
Yes. DPDK up to 16.04 supports only PCI devices. We are going to change
this for 16.07 (the next release).
>
> > Ok. I don't know what would be the use case for dropping dependency
> > on the kernel. Building just the rootfs without the kernel?
>
> For example, yes. Another benefit of not having the mandatory kernel
> dependency is that the autobuilders would be able to test the DPDK
> package.
I have no clue about this. Does kernel dependency prevent some
auto-testing?
>
> > That means to check whether the kernel is enabled. And if it is then
> > to enable building of the DPDK kernel modules. Right?
>
> Correct.
I would implement this in Buildroot by a list of configuration keys
naming certain drivers. If the kernel is disabled, I'd disable all of
them during configure phase. Otherwise, I'd leave them untouched (to
have the current configuration as is). So, I'd put in dpdk.mk
something like:
ifeq ($(BR2_LINUX_KERNEL),y)
DPDK_DEPENDENCIES += linux
else
DPDK_KMODS = EAL_IGB_UIO KNI_KMOD LIBRTE_XEN_DOM0
define DPDK_DISABLE_KMODS
$(foreach m,$(DPDK_KMODS),\
$(call KCONFIG_DISABLE_OPT,CONFIG_RTE_$(m),$(@D)/build/.config))
endef
DPDK_POST_CONFIGURE_HOOKS += DPDK_DISABLE_KMODS
endif
Probably, I can improve it by testing whether a module is present
in the DPDK config and then setting the dependency on linux.
Anyway, it seems to be quite complex...
>
> > This can be done but I am afraid I have to disable certain modules by
> > name from the current configuration. This is not very generic
> > (consider adding a new out-of-tree kernel module or removing an
> > obsolete one from the DPDK, custom DPDK tree with third party
> > modules) but there are only few of them so it might be a working
> > solution. I will check if there is a more generic way but I don't
> > think so.
>
> I'm not sure what you mean here. If the default configuration on a
> given architecture builds kernel modules, then on this architecture,
> DPDK should depend on the kernel to be built. If the default
> configuration on another architecture does not build kernel modules,
> then there is no need to depend on the kernel.
>
> That being said, if only ARM does not build any kernel module, maybe we
> can simply do as you do right now, and depend on the kernel
> unconditionally, to keep things simple.
Yes, this would work for the existing defconfigs. What about a custom
one? E.g. I want some DPDK kernel modules for the Armada with a
PCI-E NIC. So, I need a custom DPDK configuration at the moment.
Fortunately, this is a rare case.
There is also a Xen module in DPDK that is not built by default so you
have to create a custom configuration (or alter an existing one) to
enable it.
I understand that you'd like to keep it as simple as possible. I'd like
to keep it simple too but also providing enough flexibility for easy
customizations. That's why I don't consider the ARMv7 configuration to
be "without kernel modules" as it is possible to enable some if needed.
Regards
Jan
>
> Thanks!
>
> Thomas
--
Jan Viktorin E-mail: Viktorin at RehiveTech.com
System Architect Web: www.RehiveTech.com
RehiveTech
Brno, Czech Republic
next prev parent reply other threads:[~2016-04-18 8:23 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-22 10:36 [Buildroot] [PATCH v3 0/3] dpdk: new package Jan Viktorin
2016-03-22 10:36 ` [Buildroot] [PATCH v3 1/3] python-ptyprocess: " Jan Viktorin
2016-03-22 11:02 ` Yegor Yefremov
2016-03-22 10:36 ` [Buildroot] [PATCH v3 2/3] python-pexpect: " Jan Viktorin
2016-03-22 11:06 ` Yegor Yefremov
2016-03-22 10:36 ` [Buildroot] [PATCH v3 3/3] dpdk: " Jan Viktorin
2016-03-22 20:12 ` Thomas Petazzoni
2016-03-23 12:50 ` Jan Viktorin
2016-03-25 12:32 ` Jan Viktorin
2016-03-25 13:17 ` Thomas Petazzoni
2016-03-27 1:31 ` [Buildroot] [PATCH v4 0/3] " Jan Viktorin
2016-03-27 1:31 ` [Buildroot] [PATCH v4 1/3] python-ptyprocess: " Jan Viktorin
2016-03-27 1:51 ` Jan Viktorin
2016-04-15 20:47 ` Thomas Petazzoni
2016-03-27 1:31 ` [Buildroot] [PATCH v4 2/3] python-pexpect: " Jan Viktorin
2016-03-27 1:50 ` Jan Viktorin
2016-03-27 20:51 ` Yegor Yefremov
2016-04-15 20:49 ` Thomas Petazzoni
2016-03-27 1:31 ` [Buildroot] [PATCH v4 3/3] dpdk: " Jan Viktorin
2016-03-27 1:48 ` Jan Viktorin
2016-04-15 21:52 ` Thomas Petazzoni
2016-04-16 0:07 ` Jan Viktorin
2016-04-16 7:31 ` Thomas Petazzoni
2016-04-16 17:08 ` [Buildroot] [PATCH v5] " Jan Viktorin
2016-04-17 14:38 ` Thomas Petazzoni
2016-04-17 15:56 ` Jan Viktorin
2016-04-17 19:35 ` Thomas Petazzoni
2016-04-17 20:56 ` Jan Viktorin
2016-04-17 21:06 ` Thomas Petazzoni
2016-04-18 8:23 ` Jan Viktorin [this message]
2016-04-18 22:50 ` Arnout Vandecappelle
2016-04-19 12:27 ` Jan Viktorin
2016-04-19 19:30 ` Arnout Vandecappelle
2016-04-19 20:47 ` Thomas Petazzoni
2016-04-19 21:41 ` Jan Viktorin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160418102315.169c22ad@jvn \
--to=viktorin@rehivetech.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox