ia64 problems with NR_CPUS > 256

From: Andrew Morton <akpm_at_osdl.org>
Date: 2004-01-10 18:23:26
Rusty Russell <rusty@rustcorp.com.au> wrote:
> In message <20040109141236.4bcf7293.akpm@osdl.org> you write:
> > jbarnes@sgi.com (Jesse Barnes) wrote:
> > >
> > > Thanks, this patch works.  However, it appears that something (not you
> > > Pat!) broke cpumasks again--I got failures when I tried a 512p build.
> > 
> > That's probably Rusty breaking stuff again.  The relevant patches are:
> > 
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.1/2.6.1-mm1/broken-out/make-for_each_cpu-iterator-more-friendly.patch
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.1/2.6.1-mm1/broken-out/make-for_each_cpu-iterator-more-friendly-fix.patch
> Probably.  Paul Jackson acked them though, so I'm a little surprised.

OK, here's the scoop.   ia64 with NR_CPUS=512:

  /usr/local/gcc-3.3.1/bin/gcc -Wp,-MD,kernel/.sched.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude   -D__KERNEL__ -Iinclude   -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe  -ffixed-r13 -mfixed-range=f12-f15,f32-f127 -falign-functions=32 -frename-registers -O2 -fomit-frame-pointer    -mconstant-gp -DKBUILD_BASENAME=sched -DKBUILD_MODNAME=sched -c -o kernel/.tmp_sched.o kernel/sched.c
kernel/sched.c: In function `nr_uninterruptible':
kernel/sched.c:905: error: structure has no member named `val'
kernel/sched.c:905: error: structure has no member named `val'
kernel/sched.c: In function `nr_context_switches':

The problem is that Rusty's patch _used_ for_each_cpu().  It is already

In cpumask_const_reference.h we have stuff like:

#define cpus_and_const(dst,src1,src2)     cpus_and(dst,*(src1).val,*(src2).val)

But include/linux/cpumask.h never defines a version of struct cpumask which
has a `val' member in it.

So somewhere along the line, the pass-by-reference stuff got broken.

Bill, how is this actually supposed to work?  Is `val' supposed to be in
struct cpumask, or is the cpumask_const_reference.h code wrong?


To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Sat Jan 10 02:24:22 2004

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:21 EST