From: Paul Jackson <pj@sgi.com>
To: colpatch@us.ibm.com
Cc: linux-kernel@vger.kernel.org, mbligh@aracnet.com, akpm@osdl.org,
wli@holomorphy.com, haveblue@us.ibm.com, hch@infradead.org
Subject: Re: [PATCH] Introduce nodemask_t ADT [0/7]
Date: Fri, 19 Mar 2004 16:59:28 -0800 [thread overview]
Message-ID: <20040319165928.45107621.pj@sgi.com> (raw)
In-Reply-To: <1079737351.17841.51.camel@arrakis>
> > 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?
The code I wrote and appended yesterday. Though, as I realize now in my
post of a few minutes ago, there are perhaps 8 places where instead of
calling various bitmap_ops() unconditionally ('and', 'or', ...) it would
be better to peel off the one-word case and inline it.
> 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.
Don't we have quite a few places with one, two, even three local variables
of type cpumask_t? Which live on the stack? For all mask implementations?
Grep around for "cpumask_t.*,.*," and many of the lines you see appear to
be declarations of such local cpumask_t variables.
And we need to be careful of converting pass by value semantics for small
cpumasks into pass by reference semantics for large cpumasks, as a hidden
feature of the implementation. One could code some cute bugs that way.
Better, I think, to provide a reasonably rich set of mask ops, so that the
using code need not have anymore than the essential number of distinctly
different masks hanging around at once in order to write clear code.
--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.650.933.1373
next prev parent reply other threads:[~2004-03-20 1:02 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-18 23:04 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
2004-03-20 0:59 ` Paul Jackson [this message]
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=20040319165928.45107621.pj@sgi.com \
--to=pj@sgi.com \
--cc=akpm@osdl.org \
--cc=colpatch@us.ibm.com \
--cc=haveblue@us.ibm.com \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mbligh@aracnet.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
Powered by JetHome