From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757711AbYG1Tbg (ORCPT ); Mon, 28 Jul 2008 15:31:36 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752214AbYG1Tb2 (ORCPT ); Mon, 28 Jul 2008 15:31:28 -0400 Received: from relay1.sgi.com ([192.48.171.29]:52619 "EHLO relay.sgi.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751677AbYG1Tb1 (ORCPT ); Mon, 28 Jul 2008 15:31:27 -0400 Message-ID: <488E1E7F.6060802@sgi.com> Date: Mon, 28 Jul 2008 12:31:11 -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> <488E1C75.7060808@sgi.com> In-Reply-To: <488E1C75.7060808@sgi.com> 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 Mike Travis wrote: > 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 Please ignore my stupidity... I was not thinking very clearly. Mike