Hi Igor,

2024-10-23 02:25 (UTC+0300), Igor Gutorov:
> I've noticed an issue of `rte_memory_get_nchannel()` or
> `rte_memory_get_nrank()` always returning zero regardless of the -n or
> -r options set.
> 
> I think this is due to `--in-memory` forcing `conf->no_shconf = 1`
> [1], which leads to `rte_eal_memdevice_init()` never being executed
> [2].
> 
> I do not fully understand the context of the code, but I can submit a
> patch that simply removes the `internal_conf->no_shconf == 0` check in
> `rte_eal_memory_init()` and so always calls
> `rte_eal_memdevice_init()`. Would that be ok or is there a better way?
> Alternatively, does `(internal_conf->no_shconf == 0 ||
> internal_conf->in_memory == 1) && ...` make sense here?

Well spotted! Yes, the check seems unneeded.

> And one more thing, the 9.1.4 section of the getting started guide
> states that the number of memory ranks is auto-detected by default,
> but I can't find any code that performs the auto-detection - am I
> missing something, or is the documentation wrong here?

The doc is clearly wrong.
Git says this piece originates from TestPMD documentation,
so maybe "auto-detected" refers to some defaults for mempools:

https://elixir.bootlin.com/dpdk/v24.11/source/lib/mempool/rte_mempool.c#L93

> 
> [1]: 
> https://github.com/DPDK/dpdk/blob/3ee7a3e0e0e0f5a81a4b102a834697bc488fb32f/lib/eal/common/eal_common_options.c#L1815
> [2]: 
> https://github.com/DPDK/dpdk/blob/3ee7a3e0e0e0f5a81a4b102a834697bc488fb32f/lib/eal/common/eal_common_memory.c#L1103

Reply via email to