public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Matthew Dobson <colpatch@us.ibm.com>
To: Paul Jackson <pj@sgi.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
	"Martin J. Bligh" <mbligh@aracnet.com>,
	akpm@osdl.org, William Lee Irwin III <wli@holomorphy.com>,
	Dave Hansen <haveblue@us.ibm.com>,
	hch@infradead.org
Subject: Re: [PATCH] Introduce nodemask_t ADT [0/7]
Date: Fri, 19 Mar 2004 15:02:32 -0800	[thread overview]
Message-ID: <1079737351.17841.51.camel@arrakis> (raw)
In-Reply-To: <20040318175654.435b1639.pj@sgi.com>

On Thu, 2004-03-18 at 17:56, Paul Jackson wrote:
> > These (cpumask_t/nodemask_t) are nice because they are
> > optimized for edge cases (UP for cpumask_t and Non-NUMA for nodemask_t)
> > as well as for long mask cases (passing by structs reference). 
> 
> When I looked at the assembly code generated on my one lung i386 box for
> native gcc 3.3.2, it looked pretty good (to my untrained eye) using a
> struct of an array of unsigned longs, both for the single unsigned long
> (<= 32 bits) and multiple unsigned long cases.

The code you wrote, or my patch?

> Except for the sparc64 guys and their friends who disparage passing
> structs on the stack, I conjecture that the single implementation of a
> struct of an array of unsigned longs is nearly ideal for all
> architectures.
> 
> ... go ahead ... prove me wrong.  It probably won't be hard ;).

Sounds like a good idea.  We certainly shouldn't be passing huge masks
on the stack, but for small masks like, i dunno, <= 4 ULs (the same
optimization Bill's code makes) it's no problem.

The thing about code specific to node and cpu masks is that we *know*
what the masks we're manipulating are used for, and that lets us do
things like not letting callers set bits other than 0 on UP cpumasks, or
throwing a BUG when they do.  Or optimizing first_node() to be smarter
than just calling find_first_set() on the passed in mask by just
checking whether bit 0 is set.

-Matt


  reply	other threads:[~2004-03-19 23:04 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-03-18 23:04 [PATCH] Introduce nodemask_t ADT [0/7] Matthew Dobson
2004-03-18 23:23 ` Jesse Barnes
2004-03-18 23:32   ` Martin J. Bligh
2004-03-18 23:37     ` Jesse Barnes
2004-03-18 23:43       ` Martin J. Bligh
2004-03-18 23:59         ` Jesse Barnes
2004-03-19 16:20           ` Martin J. Bligh
2004-03-19  0:58         ` Zwane Mwaikambo
2004-03-19  1:11           ` Jesse Barnes
2004-03-19  1:34             ` Zwane Mwaikambo
2004-03-19  1:40               ` Jesse Barnes
2004-03-19  1:08         ` Paul Jackson
2004-03-19  0:01     ` Matthew Dobson
2004-03-18 23:58   ` Matthew Dobson
2004-03-19  2:55   ` William Lee Irwin III
2004-03-19  0:59 ` Paul Jackson
2004-03-19  1:19   ` Matthew Dobson
2004-03-19  1:45     ` Paul Jackson
2004-03-19 22:51       ` Matthew Dobson
2004-03-19 23:42         ` Paul Jackson
2004-03-19  1:48     ` Paul Jackson
2004-03-19  1:56     ` Paul Jackson
2004-03-19 23:02       ` Matthew Dobson [this message]
2004-03-20  0:59         ` Paul Jackson
2004-03-20  3:18           ` William Lee Irwin III
2004-03-20  6:09             ` Paul Jackson
2004-03-20  9:36               ` William Lee Irwin III
2004-03-22 23:59                 ` Paul Jackson
2004-03-23  2:12                   ` William Lee Irwin III
2004-03-23  1:21                 ` Paul Jackson
2004-03-23  2:10                   ` William Lee Irwin III
2004-03-23  1:24                 ` Paul Jackson
2004-03-20  8:02             ` Paul Jackson
2004-03-20 11:13               ` William Lee Irwin III
2004-03-21  4:19                 ` Paul Jackson
2004-03-21  4:36                   ` William Lee Irwin III
2004-03-21  7:59                     ` Nick Piggin
2004-03-23  1:12                 ` Paul Jackson
2004-03-23  2:09                   ` William Lee Irwin III
2004-03-23  2:39                     ` Paul Jackson
2004-03-23  3:13                       ` William Lee Irwin III
2004-03-23  3:36                         ` Paul Jackson
2004-03-23  3:59                           ` William Lee Irwin III
2004-03-23  4:03                             ` Paul Jackson
     [not found]                             ` <20040325012457.51f708c7.pj@sgi.com>
     [not found]                               ` <20040325101827.GO791@holomorphy.com>
2004-03-26 22:36                                 ` Sparc64, cpumask_t and struct arguments (was: [PATCH] Introduce nodemask_t ADT) Paul Jackson
2004-03-26 22:54                                   ` David S. Miller
2004-03-26 23:18                                     ` Paul Jackson
2004-03-26 23:29                                     ` Paul Jackson
2004-03-27  0:08                                       ` David S. Miller
2004-03-27  0:50                                         ` Paul Jackson
2004-03-26 23:37                                     ` Paul Jackson
     [not found] <1BeOx-7ax-55@gated-at.bofh.it>
     [not found] ` <1BgGq-DU-5@gated-at.bofh.it>
     [not found]   ` <1BgZN-Vk-1@gated-at.bofh.it>
2004-03-19  2:04     ` [PATCH] Introduce nodemask_t ADT [0/7] Andi Kleen
2004-03-19  2:38       ` Paul Jackson
2004-03-19 23:09       ` Matthew Dobson
2004-03-20  0:47         ` Paul Jackson
2004-03-20  1:14           ` Paul Jackson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1079737351.17841.51.camel@arrakis \
    --to=colpatch@us.ibm.com \
    --cc=akpm@osdl.org \
    --cc=haveblue@us.ibm.com \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mbligh@aracnet.com \
    --cc=pj@sgi.com \
    --cc=wli@holomorphy.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox