lkml.org 
[lkml]   [2002]   [Dec]   [20]   [last100]   RSS Feed
Views: [more markup]   [less markup]   [headers]   [forward]  
 
Messages in this thread
/
FromBjorn Helgaas <>
SubjectRe: [PATCH] Fix CPU bitmask truncation
DateFri, 20 Dec 2002 10:00:21 -0700
On Friday 20 December 2002 4:15 am, William Lee Irwin III wrote:
> Actually, this looks like a non-issue from userspace on the IA64 boxen
> I can get to. akpm pointed out that this seemed to pass his testing,
> and on deeper inspection, IA64 userspace did not find this to be an issue.
> 
> Bjorn, could you explain on what toolchains and/or architectures you had
> this issue? It sounds serious and/or real enough yet I can't actually
> make this happen myself.

This was an issue with gcc 2.96 on a 64-way IA64 box.  I don't have
access to one at the moment, but as I remember, without the 2.4 changes:

-       ((p)->cpus_runnable & (p)->cpus_allowed & (1 << cpu))
+       ((p)->cpus_runnable & (p)->cpus_allowed & (1UL << cpu))

nothing would get scheduled on CPUs 32-63.  I guess those changes
aren't controversial, though.

The question of whether this was strictly necessary:

-    cpus_runnable:     -1,                                             \
-    cpus_allowed:      -1,                                             \
+    cpus_runnable:     ~0UL,                                           \
+    cpus_allowed:      ~0UL,                                           \

I don't specifically recall, and a quick test suggests that it really
doesn't matter.  Since cpus_runnable and cpus_allowed are declared
unsigned long, I think ~0UL is a more direct expression of what is
desired, but maybe that's just a personal preference.

Bjorn

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 11:31    [from the cache]
©2003-2008