I have read through the source defined in /source/mm/mempolicy.c
. Starting at line 1178:
/* Do dynamic interleaving for a process */
static unsigned interleave_nodes(struct mempolicy *policy)
{
unsigned nid, next;
struct task_struct *me = current;
nid = me->il_next;
next = next_node(nid, policy->v.nodes);
if (next >= MAX_NUMNODES)
next = first_node(policy->v.nodes);
me->il_next = next;
return nid;
}
I am not familiar with interleave. What is interleaving in Linux exactly?