[dpdk-dev] NUMA node/socket

Stephen Hemminger stephen at networkplumber.org
Sun Jul 4 18:18:49 CEST 2021


On Sun, 04 Jul 2021 11:28:23 +0200
Thomas Monjalon <thomas at monjalon.net> wrote:

> 04/07/2021 10:27, Andrew Rybchenko:
> > On 7/4/21 4:53 AM, Thomas Monjalon wrote:  
> > > 04/07/2021 03:38, Thomas Monjalon:  
> > >> There are some mix between NUMA node and socket IDs in DPDK.
> > >> Examples:
> > >> 	* rte_eth_dev_socket_id() returns the NUMA node.
> > >> 	* rte_malloc use sockets to allocate the memory
> > >>
> > >> Is it critical?  
> > > 
> > > There is a function, implemented for Windows only,
> > > which distinguishes clearly node and socket
> > > but it assumes there is only 1 node per socket:
> > > 
> > > unsigned int
> > > eal_socket_numa_node(unsigned int socket_id)
> > > {
> > >     return cpu_map.sockets[socket_id].node_id;
> > > }
> > > 
> > > Reminder: AMD can be configured to have multiple nodes per socket.  
> > 
> > Taking the reminder into account the topic definitely
> > requires improvements.
> > 
> > I apologize for my ignorance, but
> > Is socket ID really interesting to anybody in DPDK?  
> 
> I think the socket ID might be interesting for the threads,
> but not for memory or devices.
> 
> > If no, we should just clarify terminology and switch
> > to NUMA node everywhere.  
> 
> I have the same opinion as Andrew.
> If socket ID is required, it could be deduced from the NUMA node
> or from the CPU core.
> 
> 

Agree that NUMA node should be used everywhere.
There can be some confusion because some architectures define NUMA
for lcore's that have slower interconnect even if they are on the same chip.
Also Dell used to have different terminology for socket number on some machines.
The socket id reported by BIOS started with 1!


More information about the dev mailing list