From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758805AbYG1SlR (ORCPT ); Mon, 28 Jul 2008 14:41:17 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753511AbYG1SlA (ORCPT ); Mon, 28 Jul 2008 14:41:00 -0400 Received: from smtp1.linux-foundation.org ([140.211.169.13]:54618 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753311AbYG1Sk7 (ORCPT ); Mon, 28 Jul 2008 14:40:59 -0400 Date: Mon, 28 Jul 2008 11:37:11 -0700 (PDT) From: Linus Torvalds To: Ingo Molnar cc: Rusty Russell , Mike Travis , Linux Kernel Mailing List , Andrew Morton , Al Viro Subject: Re: [git pull] cpus4096 fixes In-Reply-To: Message-ID: References: <20080727190601.GA764@elte.hu> <200807281042.12860.rusty@rustcorp.com.au> <488E06F0.4070404@sgi.com> User-Agent: Alpine 1.10 (LFD 962 2008-03-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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? Linus