DPDK patches and discussions
 help / color / mirror / Atom feed
From: gowrishankar muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
To: "Burakov, Anatoly" <anatoly.burakov@intel.com>
Cc: dev@dpdk.org, Bruce Richardson <bruce.richardson@intel.com>,
	Chao Zhu <chaozhu@linux.vnet.ibm.com>
Subject: Re: [dpdk-dev] [PATCH 18.05 v4] eal: add function to return number of detected sockets
Date: Thu, 22 Mar 2018 10:46:09 +0530	[thread overview]
Message-ID: <da9b1d2f-0384-55f0-cf31-91f226a775f5@linux.vnet.ibm.com> (raw)
In-Reply-To: <db9677b5-63f5-0d92-6c2c-4cefe4b7b801@intel.com>

On Wednesday 21 March 2018 03:54 PM, Burakov, Anatoly wrote:
>
>>> +    config->numa_node_count = max_socket_id + 1;
>>
>> In some IBM servers, socket ID number does not seem to be in 
>> sequence. For an instance, 0 and 8 for a 2 node server.
>>
>> In this case, numa_node_count would mislead users if wrongly 
>> understood by its variable name IMO (see below)
>>> +    RTE_LOG(INFO, EAL, "Detected %u NUMA nodes\n", 
>>> config->numa_node_count);
>>
>> For an instance, reading above message would tell 'EAL detected 8 
>> nodes' in my server, but actually there are only two nodes.
>>
>> Could its name better be 'numa_node_id_max' ?. Also, we store in 
>> actual count of numa nodes in _count variable.
>>
>> Also, there could be a case when there is no local memory available 
>> to a numa node too.
>>
>> Thanks,
>> Gowrishankar
>
> The point of this patchset is to (pre)allocate memory only on existing 
> sockets.
>
> If we don't know how many sockets there are, we are forced to 
> preallocate VA space per each *possible* NUMA node - that is, reserve 
> e.g. 8x128G of memory, 6 of which will go unused on a 2-socket system. 
> We can't know if there is no memory on socket in advance, but we can 
> at least avoid preallocating VA space for sockets that don't exist in 
> the first place.
>

Sounds good Anatoly.
May be, sysfs/ might help to confirm if a numa node has local memory ?.

Anyway, for the context of this particular patch (return numa nodes), 
below approach you mentioned is good.

> How about we store all possible socket id's instead? e.g. something like:
>
> static int numa_node_ids[MAX_NUMA_NODES];
> <...>
> int rte_eal_cpu_init() {
>     int sockets[RTE_MAX_LCORE];
>     <...>
>     for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) {
>         core_to_socket[lcore_id] = socket;
sockets[lcore_id] = eal_cpu_socket_id(lcore_id);
>     }
>     <...>
>     qsort(sockets);
>     <...>
>     // store all unique sockets in numa_node_ids in ascending order

Just thinking that, is there a purpose of retaining a numa ID which does 
not have local memory attached ?
but sockets[] is suppose to reflect all available nodes though (and 
assuming, its calling place to ensure
for the existence of numa local memory).


> }
> <...>
>
> on a 2 socket system we then get:
>
> rte_num_sockets() => return 2
> rte_get_socket_id(int idx) => return numa_node_ids[idx]
rte_get_socket_mem(idx) might help to validate for local memory existence ?

>
> Would that be suitable?
>

Thanks,
Gowrishankar

  reply	other threads:[~2018-03-22  5:16 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-22 11:58 [dpdk-dev] [PATCH] " Anatoly Burakov
2017-12-22 12:41 ` [dpdk-dev] [PATCH v2] " Anatoly Burakov
2018-01-11 22:20   ` Thomas Monjalon
2018-01-12 11:44     ` Burakov, Anatoly
2018-01-12 11:50       ` Thomas Monjalon
2018-01-16 11:56         ` Burakov, Anatoly
2018-01-16 12:20           ` Thomas Monjalon
2018-01-16 15:05             ` Burakov, Anatoly
2018-01-16 17:34               ` Thomas Monjalon
2018-01-16 17:38                 ` Burakov, Anatoly
2018-01-16 18:26                   ` Thomas Monjalon
2018-01-16 17:53   ` [dpdk-dev] [PATCH] doc: add ABI change notice for numa_node_count in eal Anatoly Burakov
2018-01-23 10:39     ` Mcnamara, John
2018-02-07 10:10       ` Jerin Jacob
2018-02-09 14:42         ` Bruce Richardson
2018-02-14  0:04           ` Thomas Monjalon
2018-02-14 14:25             ` Thomas Monjalon
2018-02-12 16:00     ` Jonas Pfefferle
     [not found]   ` <cover.1517848624.git.anatoly.burakov@intel.com>
2018-02-05 16:37     ` [dpdk-dev] [PATCH v3] eal: add function to return number of detected sockets Anatoly Burakov
2018-02-05 17:39       ` Burakov, Anatoly
2018-02-05 22:45         ` Thomas Monjalon
2018-02-06  9:28           ` Burakov, Anatoly
2018-02-06  9:47             ` Thomas Monjalon
2018-02-07  9:58       ` [dpdk-dev] [PATCH 18.05 v4] Add " Anatoly Burakov
2018-02-07  9:58       ` [dpdk-dev] [PATCH 18.05 v4] eal: add " Anatoly Burakov
2018-03-08 12:12         ` Bruce Richardson
2018-03-08 14:38           ` Burakov, Anatoly
2018-03-09 16:32             ` Bruce Richardson
2018-03-20 22:43             ` Thomas Monjalon
2018-03-21  4:59         ` gowrishankar muthukrishnan
2018-03-21 10:24           ` Burakov, Anatoly
2018-03-22  5:16             ` gowrishankar muthukrishnan [this message]
2018-03-22  9:04               ` Burakov, Anatoly
2018-03-22 10:58       ` [dpdk-dev] [PATCH v5] eal: provide API for querying valid socket id's Anatoly Burakov
2018-03-22 11:45         ` Burakov, Anatoly
2018-03-22 12:36         ` [dpdk-dev] [PATCH v6] " Anatoly Burakov
2018-03-22 17:07           ` gowrishankar muthukrishnan
2018-03-27 16:24           ` Thomas Monjalon
2018-03-31 13:35             ` Burakov, Anatoly
2018-04-02 15:27               ` Thomas Monjalon
2018-03-31 17:08           ` [dpdk-dev] [PATCH v7] " Anatoly Burakov
2018-04-04 22:31             ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=da9b1d2f-0384-55f0-cf31-91f226a775f5@linux.vnet.ibm.com \
    --to=gowrishankar.m@linux.vnet.ibm.com \
    --cc=anatoly.burakov@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=chaozhu@linux.vnet.ibm.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).