[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200907291118.53912.rusty@rustcorp.com.au>
Date: Wed, 29 Jul 2009 11:18:53 +0930
From: Rusty Russell <rusty@...tcorp.com.au>
To: David Rientjes <rientjes@...gle.com>
Cc: Gregory Haskins <gregory.haskins@...il.com>,
linux-kernel@...r.kernel.org, Steven Rostedt <rostedt@...dmis.org>,
Ingo Molnar <mingo@...e.hu>
Subject: Re: [regression] sched_getaffinity fails with EINVAL in 2.6.31-rc4
On Tue, 28 Jul 2009 03:42:15 am David Rientjes wrote:
> On Mon, 27 Jul 2009, Gregory Haskins wrote:
>
> > I am not sure when this started, but noticed that sched_getaffinity is
> > not working in -rc4.
> >
> > [pid 6254] sched_getaffinity(0, 128, 0x7f80586b1fe0) = -1 EINVAL
> > (Invalid argument)
> >
> > Here is a simple program for reproduction:
> >
> > #include <sched.h>
> >
> > int main(void)
> > {
> > cpu_set_t mask;
> > int ret;
> >
> > ret = sched_getaffinity(0, sizeof(mask), &mask);
> > if (ret < 0)
> > perror("getaffinity");
> >
> > return ret;
> > }
> >
> > If I get time, I will bisect this later today.
> >
>
> It's most likely due to the cpumask changes. I don't know what cpu_set_t
> is, but it's probably smaller than CONFIG_NR_CPUS rounded up to a multiple
> of sizeof(long).
It's simply that you finally ran this on a kernel which had
CONFIG_NR_CPUS > 1024.
I argued strongly against the set and getaffinity interfaces when they were
introduced; they can't be used in general without a loop (enlarge cpu_set,
retry).
Cheers,
Rusty.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists