> @@ -40,6 +45,63 @@ struct lcore_config {
> 
>  extern struct lcore_config lcore_config[RTE_MAX_LCORE];
> 
> +struct core_domain_mapping {
> +     rte_cpuset_t core_set;  /**< cpu_set representing lcores within
> domain */
> +     uint16_t core_count;    /**< dpdk enabled lcores within domain */
> +     uint16_t *cores;        /**< list of cores */
> +};

In Linux, rte_cpu_set_t is the same as cpu_set_t, which is limited to 
CPU_SETSIZE (1024) cores.

We should stop using that (fixed size) type, and use dynamically sized CPU sets 
instead.
Ref: https://man7.org/linux/man-pages/man3/CPU_SET.3.html

IMHO, both the fd_set type, limited to FDSET_SIZE (1024) file descriptors, and 
the cpu_set_t type, limited to CPU_SETSIZE (1024) cores, should be considered 
obsolete, and not used in new DPDK code.

It's hard to change old DPDK APIs relying on the fixed size rte_cpu_set_t type, 
but let's avoid adding new APIs using that (obsolete) type.

Also refer to: https://bugs.dpdk.org/show_bug.cgi?id=1704

PS: I guess a larger CPU_SETSIZE is available for systems built entirely from 
scratch, including libc and all libraries and applications. Not a generic 
solution.

-Morten

Reply via email to