The cfs_cpt_unset_node_core() function was only setting the offset
a single time for the first node, and using the same offset for all
other nodes.
cpu_pattern='C[0]' was only removing the first core on the first
NUMA node when it should be removing a core on every NUMA node.
It produced an output like:
cpu_partition_table=
0 : 1
1 : 2 3
2 : 4 5
when it should have been:
cpu_partition_table=
0 : 1
1 : 3
2 : 5
Signed-off-by: Frederick Dilger <fdilger@whamcloud.com>
Change-Id: I22e1fe1aa73e413cf9c32562ec96f0cf4bd16fe5
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56347
Tested-by: Maloo <maloo@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Andrew Perepechko <andrew.perepechko@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
{
const cpumask_t *mask;
int node, cpu;
- int offset = -1;
+ int offset;
for_each_online_node(node) {
+ offset = -1;
mask = cpumask_of_node(node);
if (cpumask_empty(mask))
continue;
{
const cpumask_t *mask;
int node, cpu;
- int offset = -1;
+ int offset;
for_each_online_node(node) {
+ offset = -1;
mask = cpumask_of_node(node);
if (cpumask_empty(mask))
continue;
char *str;
bool exclude = false;
int node = 0;
- int ncpt = 0;
+ int ncpt = cpu_npartitions;
int cpt = 0;
int high = 0;
int rc;