Comment 6 for bug 1832915

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

One fail was at:
CLEAR_CPU_LIST(cpu_bind_list_p);
The next two at:
OR_LISTS(cpu_bind_list_p, cpu_bind_list_p, node[node_id].cpu_list_p);

The common denominator here is cpu_bind_list_p but that is a static local:
  static id_list_p cpu_bind_list_p;

The function is defined as:
#define OR_LISTS( or_list_p, list_1_p, list_2_p) CPU_OR_S( or_list_p->bytes, or_list_p->set_p, list_1_p->set_p, list_2_p->set_p)

That translates into
CPU_OR_S( cpu_bind_list_p->bytes, cpu_bind_list_p->set_p, cpu_bind_list_p->set_p, node[node_id].cpu_list_p->set_p)

CPU_OR_S is from sched.h and will make it to:
 - operate on the dynamically allocated CPU set(s) whose size is setsize bytes. (due to _S)
 - Store the union of the sets cpu_bind_list_p->set_p and node[node_id].cpu_list_p->set_p in destset
 - explicitly says dest "may be one of the source sets"