diff options
| author | Waiman Long <longman@redhat.com> | 2019-02-09 15:47:19 +1100 |
|---|---|---|
| committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2019-02-09 15:47:19 +1100 |
| commit | 4fb8e5b89bcbbbb6a4d6dda2ad5cec109cac31c1 (patch) | |
| tree | 3f66a3bfbcca5c8a2106310ce106632167298270 | |
| parent | 8739e4996abbd6250f85fb995f1284df7721c022 (diff) | |
| download | net-4fb8e5b89bcbbbb.tar.gz | |
include/linux/nodemask.h: use nr_node_ids (not MAX_NUMNODES) in __nodemask_pr_numnodes()
Notice: this object is not reachable from any branch.
When viewing the /proc/<pid>/status file, one can see output lines like
Cpus_allowed: ffffffff,ffffffff,ffffffff
Cpus_allowed_list: 0-95
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,0000000f
Mems_allowed_list: 0-3
The "Mems_allowed" line uses the "%*pb" format string while the
"Mems_allowed_list" line uses the "%*pbl" format string together with the
nodemask_pr_args() macro.
The "Mems_allowed" looks insane compared with the others. It is because
the nodemask_pr_args() macro uses MAX_NUMNODES as the number of nodes to
iterate. The cpumask_pr_args() macro uses nr_cpu_ids instead of MAX_CPUS.
For nodes, there is a corresponding nr_node_ids. So it makes sense to
use nr_node_ids instead to be consistent with "Cpus_allowed:".
With that change, the "Mems_allowed" line becomes sane again.
Mems_allowed: f
There are currently 10 call sites of nodemask_pr_args() in the kernel. Of
them, only cpuset_task_status_allowed() in kernel/cgroup/cpuset.c uses the
"%*pb" format string that will be affected by this change. That cpuset
function is called by proc_pid_status() only.
Link: http://lkml.kernel.org/r/1545405631-6808-1-git-send-email-longman@redhat.com
Signed-off-by: Waiman Long <longman@redhat.com>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Notice: this object is not reachable from any branch.
| -rw-r--r-- | include/linux/nodemask.h | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/include/linux/nodemask.h b/include/linux/nodemask.h index 5a30ad594ccc11..2fc99ac677f366 100644 --- a/include/linux/nodemask.h +++ b/include/linux/nodemask.h @@ -98,6 +98,14 @@ typedef struct { DECLARE_BITMAP(bits, MAX_NUMNODES); } nodemask_t; extern nodemask_t _unused_nodemask_arg_; +#if MAX_NUMNODES > 1 +extern int nr_node_ids; +extern int nr_online_nodes; +#else +#define nr_node_ids 1 +#define nr_online_nodes 1 +#endif + /** * nodemask_pr_args - printf args to output a nodemask * @maskp: nodemask to be printed @@ -108,7 +116,7 @@ extern nodemask_t _unused_nodemask_arg_; __nodemask_pr_bits(maskp) static inline unsigned int __nodemask_pr_numnodes(const nodemask_t *m) { - return m ? MAX_NUMNODES : 0; + return m ? nr_node_ids : 0; } static inline const unsigned long *__nodemask_pr_bits(const nodemask_t *m) { @@ -444,9 +452,6 @@ static inline int next_memory_node(int nid) return next_node(nid, node_states[N_MEMORY]); } -extern int nr_node_ids; -extern int nr_online_nodes; - static inline void node_set_online(int nid) { node_set_state(nid, N_ONLINE); @@ -485,8 +490,6 @@ static inline int num_node_state(enum node_states state) #define first_online_node 0 #define first_memory_node 0 #define next_online_node(nid) (MAX_NUMNODES) -#define nr_node_ids 1 -#define nr_online_nodes 1 #define node_set_online(node) node_set_state((node), N_ONLINE) #define node_set_offline(node) node_clear_state((node), N_ONLINE) |
