Skip to content

NUMA: Memoryless node support V4

Lee Schermerhorn linux-mm 1 version In review

Get series with b4
b4 am 20070727194316.18614.36380.sendpatchset@localhost

Versions newest first

  1. v1 Latest14 patches 51 repliesIn review

Changes V3->V4 from the cover letter

- Refresh against 23-rc1-mm1
- teach cpusets about memoryless nodes.

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/14NUMA: Generic management of nodemasks for various purposesinclude/linux/nodemask.h mm/page_alloc.c+78 -2243 replies
2/14Memoryless nodes: introduce mask of nodes with memoryinclude/linux/nodemask.h mm/page_alloc.c+8 -20 replies
3/14Memoryless Nodes: Fix interleave behaviormm/mempolicy.c+3 -10 replies
4/14OOM: use the N_MEMORY map instead of constructing one on the flymm/oom_kill.c+1 -80 replies
5/14Memoryless Nodes: No need for kswapdmm/vmscan.c+1 -10 replies
6/14Memoryless Node: Slab supportmm/slab.c+4 -40 replies
7/14Memoryless nodes: SLUB supportmm/slub.c+8 -80 replies
8/14Uncached allocator: Handle memoryless nodesarch/ia64/kernel/uncached.c drivers/char/mspec.c+3 -30 replies
9/14Memoryless node: Allow profiling data to fall back to other nodeskernel/profile.c+2 -20 replies
10/14Memoryless nodes: Update memory policy and page migrationmm/mempolicy.c mm/migrate.c+6 -60 replies
11/14Add N_CPU node stateinclude/linux/nodemask.h mm/page_alloc.c mm/vmscan.c+5 -40 replies
12/14Memoryless nodes: Fix GFP_THISNODE behaviorinclude/linux/gfp.h include/linux/mmzone.h mm/page_alloc.c+47 -110 replies
13/14Memoryless Nodes: use "node_memory_map" for cpusetsDocumentation/cpusets.txt include/linux/cpuset.h kernel/cpuset.c+39 -220 replies
14/14Memoryless nodes: drop one memoryless node boot warningmm/page_alloc.c+1 -30 replies

Reviews trailers per patch

12 of 14 patches have a Reviewed-by or Acked-by.

PatchLee SchermerhornBob PiccoNishanth AravamudanChristoph Lameter
1/14T-b A-b A-b A-b
2/14Tested-off-by A-b
3/14T-b A-b A-b
4/14A-b A-b A-b
5/14T-b A-b A-b A-b
6/14A-b A-b A-b
7/14T-b A-b A-b
8/14A-b A-b
9/14A-b A-b A-b
10/14T-b A-b A-b A-b
11/14T-b A-b A-b
12/14T-b A-b A-b A-b
13/14T-b
14/14

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 4 reviewers.

Read the v1 thread

Cover letter [PATCH 00/14] NUMA: Memoryless node support V4

Changes V3->V4:
- Refresh against 23-rc1-mm1
- teach cpusets about memoryless nodes.

Changes V2->V3:
- Refresh patches (sigh)
- Add comments suggested by Kamezawa Hiroyuki
- Add signoff by Jes Sorensen

Changes V1->V2:
- Add a generic layer that allows the definition of additional node bitmaps

This patchset is implementing additional node bitmaps that allow the system to track nodes that are online without memory and nodes that have processors.

In various subsystems we can use that information to customize VM behavior.

We define a number of node states that we track in enum node_states

/*
* Bitmasks that are kept for all the nodes.
*/
enum node_states {

	N_POSSIBLE,     /* The node could become online at some point */
	N_ONLINE,       /* The node is online */
	N_MEMORY,       /* The node has memory */
	N_CPU,          /* The node has cpus */

NR_NODE_STATES
};

and define operations using the node states:

static inline int node_state(int node, enum node_states state)

{
        return node_isset(node, node_states[state]);
}

static inline void node_set_state(int node, enum node_states state)

{
        __node_set(node, &node_states[state]);
}

static inline void node_clear_state(int node, enum node_states state)

{
        __node_clear(node, &node_states[state]);
}

static inline int num_node_state(enum node_states state)

{
        return nodes_weight(node_states[state]);
}
Signature · 5 lines
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected].  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>