[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <488E1E7F.6060802@sgi.com>
Date: Mon, 28 Jul 2008 12:31:11 -0700
From: Mike Travis <travis@....com>
To: Ingo Molnar <mingo@...e.hu>
CC: Linus Torvalds <torvalds@...ux-foundation.org>,
Rusty Russell <rusty@...tcorp.com.au>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Al Viro <viro@...IV.linux.org.uk>
Subject: Re: [git pull] cpus4096 fixes
Mike Travis wrote:
> Ingo Molnar wrote:
>> * Linus Torvalds <torvalds@...ux-foundation.org> wrote:
>>
>>> On Mon, 28 Jul 2008, Linus Torvalds wrote:
>>>> Here's a trivial setup, that is even tested. It's _small_ too.
>>>>
>>>> /* cpu_bit_bitmap[0] is empty - so we can back into it */
>>>> #define MASK_DECLARE_1(x) [x+1][0] = 1ul << (x)
>>>> #define MASK_DECLARE_2(x) MASK_DECLARE_1(x), MASK_DECLARE_1(x+1)
>>>> #define MASK_DECLARE_4(x) MASK_DECLARE_2(x), MASK_DECLARE_2(x+2)
>>>> #define MASK_DECLARE_8(x) MASK_DECLARE_4(x), MASK_DECLARE_4(x+4)
>>>>
>>>> static const unsigned long cpu_bit_bitmap[BITS_PER_LONG+1][BITS_TO_LONGS(NR_CPUS)] = {
>>>> MASK_DECLARE_8(0), MASK_DECLARE_8(8),
>>>> MASK_DECLARE_8(16), MASK_DECLARE_8(24),
>>>> #if BITS_PER_LONG > 32
>>>> MASK_DECLARE_8(32), MASK_DECLARE_8(40),
>>>> MASK_DECLARE_8(48), MASK_DECLARE_8(56),
>>>> #endif
>>>> };
>>>>
>>>> static inline const cpumask_t *get_cpu_mask(unsigned int nr)
>>>> {
>>>> const unsigned long *p = cpu_bit_bitmap[1 + nr % BITS_PER_LONG];
>>>> p -= nr / BITS_PER_LONG;
>>>> return (const cpumask_t *)p;
>>>> }
>>> Btw, Ingo, can we get this issue resolved asap, please?
>>>
>>> I was planning on doing -rc1 today, but this kind of hangs over me.
>>> The above three lines of code (and more lines of macro initializers)
>>> obviously does need some more testing, but if you hook it into the
>>> other changes you already had, maybe we can get it done.
>>>
>>> Hmm?
>> yeah, i'm on it. If everything goes well hopefully i'll have something
>> pullable in 1-2 hours, if that's ok as a timeframe.
>>
>> Ingo
>
> One problem is that the current api is cpumask_t cpumask_of_cpu(x), so
> all ref's would have to be changed. (Unless there's some clever way of
> defining "&cpumask_of_cpu(x)" to be get_cpu_mask(x) ...?)
>
> Do you want me to do these changes?
>
> Thanks,
> Mike
Please ignore my stupidity... I was not thinking very clearly.
Mike
--
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