Skip to contentSkip to conversation

sched hardcode non-smp set_cpus_allowed

PATCH In review Paul Jackson 2 participants 3 messages Oct 27, 2005 – Oct 29, 2005 Scheduler

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 sched hardcode non-smp set_cpus_allowed

Simplify the UP (1 CPU) implementatin of set_cpus_allowed.

The one CPU is hardcoded to be cpu 0 - so just test for that bit, and avoid having to pick up the cpu_online_map.

---

 include/linux/sched.h |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)
include/linux/sched.h +1 -1
@@ -945,7 +945,7 @@ extern int set_cpus_allowed(task_t *p, c
 #else
 static inline int set_cpus_allowed(task_t *p, cpumask_t new_mask)
 {
-	if (!cpus_intersects(new_mask, cpu_online_map))
+	if (!cpu_isset(0, new_mask))
 		return -EINVAL;
 	return 0;
 }
Signature · 3 lines
                  I won't rest till it's the best ...
                  Programmer, Linux Scalability
                  Paul Jackson <[email protected]> 1.650.933.1373, 1.925.600.0401
#1 lore raw

include/linux/sched.h extern int set_cpus_allowed(task_t *p, c · line 951

Quoted 9 lines · Paul Jackson
include/linux/sched.h +1 -1
@@ -945,7 +945,7 @@ extern int set_cpus_allowed(task_t *p, c
 #else
 static inline int set_cpus_allowed(task_t *p, cpumask_t new_mask)
 {
-	if (!cpus_intersects(new_mask, cpu_online_map))
+	if (!cpu_isset(0, new_mask))
 		return -EINVAL;
 	return 0;
 }

Hmm, I do slightly prefer the former, since it is exactly the same as the SMP case, and doesn't hardcode 0. Perhaps worth making cpu_online_map a literal "1" for the UP case, which will help everywhere. With our include web, however, that might be tricky.

Rusty.

Signature · 1 line
A bad analogy is like a leaky screwdriver -- Richard Braakman
#2 lore raw
Quoted 2 lines · Rusty

Hmm, I do slightly prefer the former, since it is exactly the same as the SMP case,

I tend to agree with that, in theory.

But the cpu_online_map reference had broken some (driver, module, ...?) that had wasted a bit of Andrew's time, which was worth something to me as well. I was more than happy to make a one-line change if it removed a small pothole on Andrew's road.

We've got a couple of schools of thought here ... at least.

I tend to prefer having the source code express the general case, and then using header file magic to optimize the generated code for the uni- processor systems. I guess this would be Rusty-style source code, Andrew-style machine code, and esoteric style headers.

Quoted 1 line

With our include web, however, that might be tricky.

Yeah. Not worth messing with, in my book.

Signature · 3 lines
                  I won't rest till it's the best ...
                  Programmer, Linux Scalability
                  Paul Jackson <[email protected]> 1.925.600.0401