From: Paul Jackson <pj@sgi.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: ak@muc.de, akpm@osdl.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Fix argument checking in sched_setaffinity
Date: Mon, 6 Sep 2004 14:11:42 -0700 [thread overview]
Message-ID: <20040906141142.663941fb.pj@sgi.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0409061147220.28608@ppc970.osdl.org>
Linus wrote:
> I hate the "byte at a time" interface.
>
> That said, I think the "long at a time" interface we have now for bitmaps
> ends up being a compatibility problem, where the compat layer has to worry
> about big-endian 32-bit "long" lookign different from big-endian 64-bit
> "long".
My first preference would be to get all the binary bitmap interfaces
(affinity, mbind and mempolicy) "right":
I think that means an array of 'u32'. This parallels what I did for
the ascii format, where there was less need to remain compatible
(except that ascii is naturally big-endian, while the u32 array has
the low order word first):
$ cat /sys/devices/system/node/node0/cpumap
00000000,00000000,00000000,000000ff
No doubt Andi will veto this for mbind/mempolicy, because it breaks
libnuma's he has in the field - a reasonable concern. We'd probably
have to burn another couple of system calls, introducing the new API
while keeping the old one around, as is, for a year or three.
And this (array of u32) is different from the kernel bitmap, due to
the reversed u32 halves of each u64 on big endian 64 arches. If I
were God, the kernel bitmap would also be an array of u32's, not ulongs.
Still ... might as well start somewhere, and get the kernel/user API
"right", even if the kernel internals have an irreparable twist.
I agree with Andi that there should be an explicit way to get the
correct size - the loops cause too many user level code bugs, and
trying to accomodate user code that doesn't know the exact size is
causing our kernel code too much grief.
Possible ways to publish cpumask/nodemask sizes include:
1) # an ascii field in some proc file:
$ grep sizeof /proc/sys/kernel
2) sysctl
3) overload sched_getaffinity (for sizeof cpumask) and get_mempolicy
(for sizeof nodemask) to return the sizes if passed zero lengths
or NULL mask pointers or some other currently useless input.
My second preference would be what we had a week ago. Minor tweaks
(especially ones that relax the preconditions) to busted API's do more
harm than good. Leave 'em be, or get 'em "right". Quit putting
lipstick on a pig.
I was surprised that Andi came up with yet another tweak to this API
(his suggested patch to allow either 0x00 or 0xff fill). Surely Andi
doesn't need this for _his_ code, since he's competent to code to the
current API. So I guess he's trying to make life easier for others.
Eh ... doesn't seem worth it.
Leave it be, I say. Leave it be. Or get it right.
--
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-09-06 21:12 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-31 14:30 [PATCH] Fix argument checking in sched_setaffinity Andi Kleen
2004-09-01 1:36 ` Paul Jackson
2004-09-01 1:59 ` Anton Blanchard
2004-09-02 9:33 ` Paul Jackson
2004-09-04 13:40 ` Andi Kleen
2004-09-05 14:27 ` Anton Blanchard
2004-09-04 13:37 ` Andi Kleen
[not found] ` <20040904171417.67649169.pj@sgi.com>
2004-09-05 0:18 ` Linus Torvalds
2004-09-05 1:05 ` Paul Jackson
2004-09-05 1:38 ` Linus Torvalds
2004-09-05 3:48 ` Paul Jackson
2004-09-05 3:57 ` Linus Torvalds
2004-09-05 4:17 ` Paul Jackson
2004-09-05 4:52 ` Paul Jackson
2004-09-06 18:23 ` Andi Kleen
2004-09-06 18:48 ` Linus Torvalds
2004-09-06 21:11 ` Paul Jackson [this message]
2004-09-07 8:07 ` Andi Kleen
2004-09-06 13:16 ` Andi Kleen
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=20040906141142.663941fb.pj@sgi.com \
--to=pj@sgi.com \
--cc=ak@muc.de \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.org \
/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