CPUSET related breakage of sys_mbind
Subsystems (3)
PATCH 1/1 CPUSET related breakage of sys_mbind
current->mems_allowed is defined for CONFIG_CPUSETS. This broke !CPUSETS build. I compiled and linked tested both variants.
include/linux/cpuset.h | 6 ++++++ mm/mempolicy.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-)
mm/mempolicy.c +1 -1
@@ -882,9 +882,9 @@ asmlinkage long sys_mbind(unsigned longint err; err =get_nodes (&nodes, nmask, maxnode); -nodes_and (nodes, nodes, current->mems_allowed);if (err)return err; +cpuset_nodes_allowed (&nodes);return do_mbind (start, len, mode, &nodes, flags); }
include/linux/cpuset.h +6 -0
@@ -75,6 +75,11 @@ static inline int cpuset_do_slab_mem_sprextern void cpuset_track_online_nodes (void ); +static inline void cpuset_nodes_allowed (nodemask_t *nodes) +{ +nodes_and (*nodes, *nodes, current->mems_allowed); +} +#else /* !CONFIG_CPUSETS */ static inline int cpuset_init_early (void ) {return 0 ; }
@@ -145,6 +150,7 @@ static inline int cpuset_do_slab_mem_spr }static inline void cpuset_track_online_nodes (void ) {} +static inline void cpuset_nodes_allowed (nodemask_t *nodes) {}#endif /* !CONFIG_CPUSETS */
You're right about this problemI think that Christoph Lameter (added to cc list) is working on a fix for this.
Signature · 3 lines
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <[email protected]> 1.925.600.0401Quoted 2 lines · Paul Jackson
You're right about this problemI think that Christoph Lameter (added to cc list) is working on a fix for this.
Cpusets is your thing so I think you could fix this the right way. There are already two different patches fixing this. Just make it the way that it fits cpusets.
Quoted 1 line · Christoph
Cpusets is your thing so I think you could fix this the right way.
But wasn't it your patch that broke ...
Actually, I'd have blessed Bob Picco's patch, as it's done the right way, with a cpuset_* macro hook, defined twice in cpuset.h, with and without CONFIG_CPUSET, where the without case compiles to a no-op. This is the same way as is used for the couple dozen other cpuset kernel hooks.
But I thought you were already signed up for this one, so I didn't want to trample on your efforts.
And, perhaps more important, I understood you had some other patches in the works that have cpuset hooks. I'm thinking it would be a good idea to learn how these hooks are done, so we don't have to come around here again.
How about this ... you take another look at Bob's patch. If it's ok by you too, then we can both bless it, and that should do it.
Signature · 3 lines
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <[email protected]> 1.925.600.0401Patch looks good - thanks, Bob.
Signature · 3 lines
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <[email protected]> 1.925.600.0401Quoted 3 lines · Paul Jackson
Patch looks good - thanks, Bob.
Signed-off-by Paul Jackson <[email protected]>
Looks good to me too.