From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757814AbYG1TWj (ORCPT ); Mon, 28 Jul 2008 15:22:39 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751790AbYG1TWb (ORCPT ); Mon, 28 Jul 2008 15:22:31 -0400 Received: from relay2.sgi.com ([192.48.171.30]:57137 "EHLO relay.sgi.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751431AbYG1TWa (ORCPT ); Mon, 28 Jul 2008 15:22:30 -0400 Message-ID: <488E1C75.7060808@sgi.com> Date: Mon, 28 Jul 2008 12:22:29 -0700 From: Mike Travis User-Agent: Thunderbird 2.0.0.6 (X11/20070801) MIME-Version: 1.0 To: Ingo Molnar CC: Linus Torvalds , Rusty Russell , Linux Kernel Mailing List , Andrew Morton , Al Viro Subject: Re: [git pull] cpus4096 fixes References: <20080727190601.GA764@elte.hu> <200807281042.12860.rusty@rustcorp.com.au> <488E06F0.4070404@sgi.com> <20080728185134.GA11664@elte.hu> In-Reply-To: <20080728185134.GA11664@elte.hu> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ingo Molnar wrote: > * Linus Torvalds 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