* Drivers, architectures, processor families, etc. @ 2023-08-02 21:49 Philip Prindeville 2023-08-02 22:47 ` Stephen Hemminger 2023-08-14 15:31 ` Ferruh Yigit 0 siblings, 2 replies; 9+ messages in thread From: Philip Prindeville @ 2023-08-02 21:49 UTC (permalink / raw) To: dev Hi, I'm trying to come up with some Kconfig logic for OpenWRT packaging to help users select the right build options for their hardware. Most OpenWRT developers typically cross-compile, so we obviously can't rely on detection on the build host as that's rarely the same as the target machine. Looking in the DPDK repo, I don't see any description of the available architectures, drivers, etc. and what I had seen previously was (if I remember) only for x86_64 hardware, and even that I can't seem to locate again. Would it make sense to put some of these definitions into the repo itself, so that when new drivers are added, that stands out (at least in the commit logs) and we can capture the permutations of what driver goes with which SoC on what architecture, etc? Thanks, -Philip ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Drivers, architectures, processor families, etc. 2023-08-02 21:49 Drivers, architectures, processor families, etc Philip Prindeville @ 2023-08-02 22:47 ` Stephen Hemminger 2023-08-03 8:17 ` Bruce Richardson 2023-08-03 16:40 ` Philip Prindeville 2023-08-14 15:31 ` Ferruh Yigit 1 sibling, 2 replies; 9+ messages in thread From: Stephen Hemminger @ 2023-08-02 22:47 UTC (permalink / raw) To: Philip Prindeville; +Cc: dev On Wed, 2 Aug 2023 15:49:54 -0600 Philip Prindeville <philipp_subx@redfish-solutions.com> wrote: > Hi, > > I'm trying to come up with some Kconfig logic for OpenWRT packaging to help users select the right build options for their hardware. > > Most OpenWRT developers typically cross-compile, so we obviously can't rely on detection on the build host as that's rarely the same as the target machine. > > Looking in the DPDK repo, I don't see any description of the available architectures, drivers, etc. and what I had seen previously was (if I remember) only for x86_64 hardware, and even that I can't seem to locate again. > > Would it make sense to put some of these definitions into the repo itself, so that when new drivers are added, that stands out (at least in the commit logs) and we can capture the permutations of what driver goes with which SoC on what architecture, etc? > > Thanks, > > -Philip > DPDK now uses meson which by default builds everything available on the build architecture. There is intentionally no way to disable drivers, you can disable some libraries though. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Drivers, architectures, processor families, etc. 2023-08-02 22:47 ` Stephen Hemminger @ 2023-08-03 8:17 ` Bruce Richardson 2023-08-05 21:32 ` Philip Prindeville 2023-08-03 16:40 ` Philip Prindeville 1 sibling, 1 reply; 9+ messages in thread From: Bruce Richardson @ 2023-08-03 8:17 UTC (permalink / raw) To: Stephen Hemminger; +Cc: Philip Prindeville, dev On Wed, Aug 02, 2023 at 03:47:59PM -0700, Stephen Hemminger wrote: > On Wed, 2 Aug 2023 15:49:54 -0600 > Philip Prindeville <philipp_subx@redfish-solutions.com> wrote: > > > Hi, > > > > I'm trying to come up with some Kconfig logic for OpenWRT packaging to help users select the right build options for their hardware. > > > > Most OpenWRT developers typically cross-compile, so we obviously can't rely on detection on the build host as that's rarely the same as the target machine. > > > > Looking in the DPDK repo, I don't see any description of the available architectures, drivers, etc. and what I had seen previously was (if I remember) only for x86_64 hardware, and even that I can't seem to locate again. > > > > Would it make sense to put some of these definitions into the repo itself, so that when new drivers are added, that stands out (at least in the commit logs) and we can capture the permutations of what driver goes with which SoC on what architecture, etc? > > > > Thanks, > > > > -Philip > > > > DPDK now uses meson which by default builds everything available on the build architecture. > There is intentionally no way to disable drivers, you can disable some libraries though. Actually, we do now support disabling drivers, and also only selectively enabling specific ones. See disable_drivers and enable_drivers meson options. To find our different architecture support, I suggest looking in the config directory. The subfolders there often contain cross-files for meson for building for various architectures. For example, config/arm, contains a number of reference files for cross-compiling for different arm platforms. Regards, /Bruce ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Drivers, architectures, processor families, etc. 2023-08-03 8:17 ` Bruce Richardson @ 2023-08-05 21:32 ` Philip Prindeville 2023-08-08 8:17 ` Bruce Richardson 0 siblings, 1 reply; 9+ messages in thread From: Philip Prindeville @ 2023-08-05 21:32 UTC (permalink / raw) To: Bruce Richardson; +Cc: Stephen Hemminger, dev > On Aug 3, 2023, at 2:17 AM, Bruce Richardson <bruce.richardson@intel.com> wrote: > > On Wed, Aug 02, 2023 at 03:47:59PM -0700, Stephen Hemminger wrote: >> On Wed, 2 Aug 2023 15:49:54 -0600 >> Philip Prindeville <philipp_subx@redfish-solutions.com> wrote: >> >>> Hi, >>> >>> I'm trying to come up with some Kconfig logic for OpenWRT packaging to help users select the right build options for their hardware. >>> >>> Most OpenWRT developers typically cross-compile, so we obviously can't rely on detection on the build host as that's rarely the same as the target machine. >>> >>> Looking in the DPDK repo, I don't see any description of the available architectures, drivers, etc. and what I had seen previously was (if I remember) only for x86_64 hardware, and even that I can't seem to locate again. >>> >>> Would it make sense to put some of these definitions into the repo itself, so that when new drivers are added, that stands out (at least in the commit logs) and we can capture the permutations of what driver goes with which SoC on what architecture, etc? >>> >>> Thanks, >>> >>> -Philip >>> >> >> DPDK now uses meson which by default builds everything available on the build architecture. >> There is intentionally no way to disable drivers, you can disable some libraries though. > > Actually, we do now support disabling drivers, and also only selectively > enabling specific ones. See disable_drivers and enable_drivers meson > options. > > To find our different architecture support, I suggest looking in the config > directory. The subfolders there often contain cross-files for meson for > building for various architectures. For example, config/arm, contains a > number of reference files for cross-compiling for different arm platforms. > > Regards, > /Bruce Noticed also that the ARM architecture has configs, but AMD64 seems to be wide open... just one generic config. Is that because some chips, like Xeon-D have on-die NICs, and others like Xeon-E don't? -Philip ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Drivers, architectures, processor families, etc. 2023-08-05 21:32 ` Philip Prindeville @ 2023-08-08 8:17 ` Bruce Richardson 2023-08-08 16:38 ` Philip Prindeville 0 siblings, 1 reply; 9+ messages in thread From: Bruce Richardson @ 2023-08-08 8:17 UTC (permalink / raw) To: Philip Prindeville; +Cc: Stephen Hemminger, dev On Sat, Aug 05, 2023 at 03:32:37PM -0600, Philip Prindeville wrote: > > > > On Aug 3, 2023, at 2:17 AM, Bruce Richardson <bruce.richardson@intel.com> wrote: > > > > On Wed, Aug 02, 2023 at 03:47:59PM -0700, Stephen Hemminger wrote: > >> On Wed, 2 Aug 2023 15:49:54 -0600 > >> Philip Prindeville <philipp_subx@redfish-solutions.com> wrote: > >> > >>> Hi, > >>> > >>> I'm trying to come up with some Kconfig logic for OpenWRT packaging to help users select the right build options for their hardware. > >>> > >>> Most OpenWRT developers typically cross-compile, so we obviously can't rely on detection on the build host as that's rarely the same as the target machine. > >>> > >>> Looking in the DPDK repo, I don't see any description of the available architectures, drivers, etc. and what I had seen previously was (if I remember) only for x86_64 hardware, and even that I can't seem to locate again. > >>> > >>> Would it make sense to put some of these definitions into the repo itself, so that when new drivers are added, that stands out (at least in the commit logs) and we can capture the permutations of what driver goes with which SoC on what architecture, etc? > >>> > >>> Thanks, > >>> > >>> -Philip > >>> > >> > >> DPDK now uses meson which by default builds everything available on the build architecture. > >> There is intentionally no way to disable drivers, you can disable some libraries though. > > > > Actually, we do now support disabling drivers, and also only selectively > > enabling specific ones. See disable_drivers and enable_drivers meson > > options. > > > > To find our different architecture support, I suggest looking in the config > > directory. The subfolders there often contain cross-files for meson for > > building for various architectures. For example, config/arm, contains a > > number of reference files for cross-compiling for different arm platforms. > > > > Regards, > > /Bruce > > > Noticed also that the ARM architecture has configs, but AMD64 seems to be wide open... just one generic config. > > Is that because some chips, like Xeon-D have on-die NICs, and others like Xeon-E don't? > Its just that folks generally don't cross-compile for x86, and also the fact that nobody has ever brought it up before. We have no "native-build" files in DPDK, only cross-files for cross-compilation. However, if there is demand for them no reason we can't store some. /Bruce ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Drivers, architectures, processor families, etc. 2023-08-08 8:17 ` Bruce Richardson @ 2023-08-08 16:38 ` Philip Prindeville 0 siblings, 0 replies; 9+ messages in thread From: Philip Prindeville @ 2023-08-08 16:38 UTC (permalink / raw) To: Bruce Richardson; +Cc: Stephen Hemminger, dev > On Aug 8, 2023, at 2:17 AM, Bruce Richardson <bruce.richardson@intel.com> wrote: > > On Sat, Aug 05, 2023 at 03:32:37PM -0600, Philip Prindeville wrote: >> >> Noticed also that the ARM architecture has configs, but AMD64 seems to be wide open... just one generic config. >> >> Is that because some chips, like Xeon-D have on-die NICs, and others like Xeon-E don't? >> > > Its just that folks generally don't cross-compile for x86, and also the > fact that nobody has ever brought it up before. We have no "native-build" > files in DPDK, only cross-files for cross-compilation. However, if there is > demand for them no reason we can't store some. > > /Bruce We bought a Mac Studio (fully configured) for doing in-house CI/CD, and it was beating the pants off of any of our Xeon servers, so now we build everything either on an M2 Mac or on a Graviton EC2 instance. Native builds are overrated. :-) -Philip ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Drivers, architectures, processor families, etc. 2023-08-02 22:47 ` Stephen Hemminger 2023-08-03 8:17 ` Bruce Richardson @ 2023-08-03 16:40 ` Philip Prindeville 2023-08-08 8:29 ` Bruce Richardson 1 sibling, 1 reply; 9+ messages in thread From: Philip Prindeville @ 2023-08-03 16:40 UTC (permalink / raw) To: Stephen Hemminger; +Cc: dev > On Aug 2, 2023, at 4:47 PM, Stephen Hemminger <stephen@networkplumber.org> wrote: > > On Wed, 2 Aug 2023 15:49:54 -0600 > Philip Prindeville <philipp_subx@redfish-solutions.com> wrote: > >> Hi, >> >> I'm trying to come up with some Kconfig logic for OpenWRT packaging to help users select the right build options for their hardware. >> >> Most OpenWRT developers typically cross-compile, so we obviously can't rely on detection on the build host as that's rarely the same as the target machine. >> >> Looking in the DPDK repo, I don't see any description of the available architectures, drivers, etc. and what I had seen previously was (if I remember) only for x86_64 hardware, and even that I can't seem to locate again. >> >> Would it make sense to put some of these definitions into the repo itself, so that when new drivers are added, that stands out (at least in the commit logs) and we can capture the permutations of what driver goes with which SoC on what architecture, etc? >> >> Thanks, >> >> -Philip >> > > DPDK now uses meson which by default builds everything available on the build architecture. > There is intentionally no way to disable drivers, you can disable some libraries though. The issue I'm trying to resolve is that if you're building for SoC Xyzzy that includes an on-chip NIC, then that driver should *only* ever be selectable when building for that SoC. There's no point if generating (or packaging) combinations of platform + driver that aren't viable. Are you suggesting that we just select the architecture, and let the available drivers fall out of that? ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Drivers, architectures, processor families, etc. 2023-08-03 16:40 ` Philip Prindeville @ 2023-08-08 8:29 ` Bruce Richardson 0 siblings, 0 replies; 9+ messages in thread From: Bruce Richardson @ 2023-08-08 8:29 UTC (permalink / raw) To: Philip Prindeville; +Cc: Stephen Hemminger, dev On Thu, Aug 03, 2023 at 10:40:47AM -0600, Philip Prindeville wrote: > > > > On Aug 2, 2023, at 4:47 PM, Stephen Hemminger <stephen@networkplumber.org> wrote: > > > > On Wed, 2 Aug 2023 15:49:54 -0600 > > Philip Prindeville <philipp_subx@redfish-solutions.com> wrote: > > > >> Hi, > >> > >> I'm trying to come up with some Kconfig logic for OpenWRT packaging to help users select the right build options for their hardware. > >> > >> Most OpenWRT developers typically cross-compile, so we obviously can't rely on detection on the build host as that's rarely the same as the target machine. > >> > >> Looking in the DPDK repo, I don't see any description of the available architectures, drivers, etc. and what I had seen previously was (if I remember) only for x86_64 hardware, and even that I can't seem to locate again. > >> > >> Would it make sense to put some of these definitions into the repo itself, so that when new drivers are added, that stands out (at least in the commit logs) and we can capture the permutations of what driver goes with which SoC on what architecture, etc? > >> > >> Thanks, > >> > >> -Philip > >> > > > > DPDK now uses meson which by default builds everything available on the build architecture. > > There is intentionally no way to disable drivers, you can disable some libraries though. > > > > The issue I'm trying to resolve is that if you're building for SoC Xyzzy that includes an on-chip NIC, then that driver should *only* ever be selectable when building for that SoC. > > There's no point if generating (or packaging) combinations of platform + driver that aren't viable. > Actually, for development purposes there is good reason. By having e.g. NIC drivers for ARM SoCs be built when doing an x86 build, it allows us to catch changes that break that driver. It also allows one to do a generic build where the one build could be used across multiple platforms. /Bruce ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Drivers, architectures, processor families, etc. 2023-08-02 21:49 Drivers, architectures, processor families, etc Philip Prindeville 2023-08-02 22:47 ` Stephen Hemminger @ 2023-08-14 15:31 ` Ferruh Yigit 1 sibling, 0 replies; 9+ messages in thread From: Ferruh Yigit @ 2023-08-14 15:31 UTC (permalink / raw) To: Philip Prindeville, dev; +Cc: Bruce Richardson, Stephen Hemminger On 8/2/2023 10:49 PM, Philip Prindeville wrote: > Hi, > > I'm trying to come up with some Kconfig logic for OpenWRT packaging to help users select the right build options for their hardware. > > Most OpenWRT developers typically cross-compile, so we obviously can't rely on detection on the build host as that's rarely the same as the target machine. > > Looking in the DPDK repo, I don't see any description of the available architectures, drivers, etc. and what I had seen previously was (if I remember) only for x86_64 hardware, and even that I can't seem to locate again. > > Would it make sense to put some of these definitions into the repo itself, so that when new drivers are added, that stands out (at least in the commit logs) and we can capture the permutations of what driver goes with which SoC on what architecture, etc? > Hi Philip, DPDK builds x86 architecture as natively, and rest (arm, ppc, riscv, ..) as cross compile and doesn't select drivers based on architecture but tries to build as much driver as possible. But there is an OS based filtering, like some drivers are disabled if the build OS is Windows or FreeBSD etc.. As most of the devices are external devices, unlike on-chip devices in SoC, it make sense to build them into final binary. Still there are on-chip devices, or there are combinations that some devices can't be used in an architecture but still included, to NOT have a finer granularity here helps DPDK binary distributions also helps build testing. There are meson build options to limit which driver to built in or not, if there is a specific embedded platform target and if binary size matters, these arguments can be used. But we don't have a generic config or logic that can be used for OpenWRT builds. Thanks, ferruh ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-08-14 15:31 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-08-02 21:49 Drivers, architectures, processor families, etc Philip Prindeville 2023-08-02 22:47 ` Stephen Hemminger 2023-08-03 8:17 ` Bruce Richardson 2023-08-05 21:32 ` Philip Prindeville 2023-08-08 8:17 ` Bruce Richardson 2023-08-08 16:38 ` Philip Prindeville 2023-08-03 16:40 ` Philip Prindeville 2023-08-08 8:29 ` Bruce Richardson 2023-08-14 15:31 ` Ferruh Yigit
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).