On Mon, Feb 13, 2023 at 02:55:41PM +0100, Thomas Monjalon wrote: > 13/02/2023 12:05, Bruce Richardson: > > On Sun, Feb 12, 2023 at 10:53:19AM +0200, Ophir Munk wrote: > > > In current DPDK the RTE_MAX_MEMZONE definition is unconditionally > > > hard coded as 2560. For applications requiring different values of > > > this parameter – it is more convenient to set its value as part of > > > the meson command line rather than changing the dpdk source code per > > > application. An example would be of an application that uses the > > > DPDK mempool library which is based on DPDK memzone library. The > > > application may need to create a number of steering tables, each of > > > which will require its own mempool allocation. This commit adds a > > > meson optional parameter named max_memzones. If not specified - it is > > > set by default to 2560. The hard coded definition of RTE_MAX_MEMZONE > > > is removed. During meson build time the RTE_MAX_MEMZONE can be > > > optionally defined as the value of max_memzones parameter. > > > > > > Signed-off-by: Ophir Munk <ophi...@nvidia.com> --- RFC: > > > https://patchwork.dpdk.org/project/dpdk/patch/20230130092302.376145-1-ophi...@nvidia.com/ > > > > > > config/meson.build | 1 + config/rte_config.h | 1 - > > > meson_options.txt | 2 ++ 3 files changed, 3 insertions(+), 1 > > > deletion(-) > > > > > Acked-by: Bruce Richardson <bruce.richard...@intel.com> > > Are we going to move all compilation-defined settings to > meson_options.txt? The direction discussed in recent years was to > configure things at runtime, and stop adding compilation-time settings. > > In this case, it is quite easy to add a new function void > rte_memzone_set_max(int max) to be called before rte_eal_init(). If not > called, the historical default is used. > Good point, I admit I had forgotten that.
Looking at the use of RTE_MAX_MEMZONE, it is used as an array dimension in a number of places, but, from what I see on cursory examination, it should be replacable with a runtime value without significant pain in most cases. The one that probably needs more attention is the fact that the "net/qede" driver maintains an array of memzones in it's base-code layer. Therefore, we probably need input from that driver maintainer to know the impact there and why that array is needed in a net driver. [Adding the two maintainers on CC] /Bruce