From: Matthew Dobson <colpatch@us.ibm.com>
To: Paul Jackson <pj@sgi.com>
Cc: joe.korty@ccur.com, akpm@osdl.org, paulus@samba.org,
linux-kernel@vger.kernel.org
Subject: Re: seperator error in __mask_snprintf_len
Date: Fri, 16 Jan 2004 15:29:48 -0800 [thread overview]
Message-ID: <400873EC.2000406@us.ibm.com> (raw)
In-Reply-To: 20040115161732.458159f5.pj@sgi.com
FWIW, I think a 32-bit chunk-size is preferable. I personally don't
think "dead,beef" is easier to read than "deadbeef", nor "0073,0f0f"
compared to "00730f0f". On the small CPU count, ie: <=32, either
version is pretty readable, but on larger CPU count boxen you're going
to overflow your brain counting groups of 4 versus groups of 8. I can't
believe I just called a 32 CPU box "small". My world perspective is a
bit skewed... ;)
Also, on the input side, a lot of apps will output a 32-bit CPU mask.
With commas separating every 32 bits, we can feed an "uncommafied" mask
to the kernel and it won't barf. If we go with 16-bit chunks, we'll
have to "commafy" these 32-bit bitmasks to feed them to the kernel.
As a NUMA guy who deals with largish CPU count machines daily, that's my
2 cents...
-Matt
Paul Jackson wrote:
>>This patch captures what I am looking for in bitmap display and input.
>
>
> Interesting. I appear to have provoked Joe into a burst of coding.
> Now, if I had any smarts, I would stand aside and let Joe own this,
> just as Bill Irwin did when I posted my initial lib/mask.c patch a
> couple months ago.
>
>
> Andrew:
>
> If you find Joe's coding more to your liking than my "Gad" style,
> I will bless this, and after tossing in a few parting shots, will
> stand aside. It meets my essential needs, which were:
> - chunked output (a comma every 16 or 32 bits),
> - symmetric input and output formats, and
> - display and parsing code generic to diverse bitmap sizes.
>
> My actual recommendation, if however you are still undecided, is:
> - my patch of last night (with the M32X() 64 bit big endian fix),
> - Joe's recommended format, zero-filling to chunksize each word,
> - Joe's renaming/refactoring from lib/mask.c to lib/bitmap.h, and
> - a chunksize of 16 rather than 32 (Joe likes 16, I don't care).
>
> The essential differences between Joe's and my proposals that I see are:
> - Joe's has more code, especially in the parsing routine,
> - Joe's bitmap size resolution is bits, not words, and
> - I use an implied alloca of 4 x sizeof(mask) bytes.
>
>
> Comments on Joe's patch:
>
>
>>ChangeLog:
>
>
> Good job of summarizing for the Changelog the changes.
>
>
>>o move into the bitmap.h family, rename and refactor interface to match
>
>
> I think I like this - good.
>
>
>> o bitmap size resolution changed from byte to bit
>
>
> Why? This adds a fair bit of complexity to the code, I suspect.
> I am not aware of a need for this, but if there is one, ok.
>
>
>>o chunking (digits between commas) changed from 8 to 4 digits
>
>
> Ok - either 8 or 4 works for me. This detail should be decided
> by those working on 16 to 32 cpu systems, who will notice this
> choice the most. Those of us on larger or smaller systems are
> going to see, or not see, separators in either case.
>
>
>> o display no longer affected by sizeof(unsigned long).
>
>
> A bit of a misstatement. The display was only affected by the
> chunksize, one of 32 (sizeof(u32)*8) or 16 (CHUNKSZ).
>
>
>> o no alloca usage
>
>
> True. Though on the other hand, you need to roll your own parsing
> code of comma-separated chunks, instead of getting by with using
> strsep(). So you trade alloca usage for code complexity. Either
> way works - coders choice. I agree that we disagree on this tradeoff.
>
>
>> o works correctly independent of the size of an unsigned long.
>
>
> And my version doesn't?
>
>
>> o works on big and little endian machine.
>
>
> With my M32X() eor-1 fix, so did mine.
>
>
>>+ * lib/bitmask.c - bitmask manipulation routines too big to go into bitmask.h
>
>
> Typo? Did you mean bitmap.c and bitmap.h, not bitmask?
>
>
>>+int bitmap_parse(const char __user *ubuf, unsigned int ubuflen,
>>+ unsigned long *maskp, unsigned int nmaskbits)
>
>
> This routine has quite a bit more code detail than my corresponding
> parsing routine. I hope that:
> (1) providing bit-level resolution, and
> (2) removing the implied alloca
> justifies this increase in code detail.
>
>
>>+ if (isspace(c))
>>+ continue;
>
>
> So a space embedded in a hex number is skipped? That is, your code
> parses "dead,beef" and "de a d, bee f" the same? This seems strange.
> Perhaps you would prefer to suppress only leading spaces in each chunk:
>
> if (!n && isspace(c))
> continue;
>
>
>>+ for (j = 0; j < 32; j++) {
>
>
> What's this "32", an unrepentant CHUNKSZ?
>
next prev parent reply other threads:[~2004-01-16 23:36 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-07 16:56 seperator error in __mask_snprintf_len Joe Korty
2004-01-07 19:32 ` Andrew Morton
2004-01-08 13:11 ` Paul Jackson
2004-01-08 22:50 ` Paul Mackerras
2004-01-08 22:59 ` Joe Korty
2004-01-09 0:07 ` Paul Mackerras
2004-01-09 1:11 ` Paul Jackson
2004-01-14 23:03 ` Paul Jackson
2004-01-15 0:27 ` Joe Korty
2004-01-15 0:37 ` Paul Jackson
2004-01-15 4:40 ` Paul Jackson
2004-01-15 16:15 ` Andrew Morton
2004-01-15 18:15 ` Joe Korty
2004-01-16 0:17 ` Paul Jackson
2004-01-16 0:48 ` Joe Korty
2004-01-16 1:48 ` Paul Jackson
2004-01-16 23:29 ` Matthew Dobson [this message]
2004-01-17 6:36 ` [PATCH] bitmap parsing routines, version 3 Joe Korty
2004-01-17 10:08 ` Paul Jackson
[not found] ` <20040117145545.GA16318@tsunami.ccur.com>
2004-01-17 15:36 ` Joe Korty
2004-01-17 23:33 ` Paul Jackson
2004-01-18 5:52 ` William Lee Irwin III
2004-01-18 7:03 ` Paul Jackson
2004-01-17 18:39 ` [PATCH] bitmap parsing/printing routines, version 4 Joe Korty
2004-01-17 23:36 ` Paul Jackson
2004-01-19 21:17 ` Matthew Dobson
2004-01-20 0:17 ` Paul Jackson
2004-01-20 3:57 ` Joe Korty
2004-01-20 4:15 ` Paul Jackson
2004-01-20 5:41 ` Randy Dunlap
2004-01-20 7:03 ` Matthew Dobson
2004-01-20 15:36 ` Joe Korty
2004-01-20 17:06 ` Matthew Dobson
2004-01-17 9:12 ` seperator error in __mask_snprintf_len Paul Jackson
2004-01-16 5:14 ` Paul Jackson
2004-01-16 5:26 ` Andrew Morton
2004-01-16 5:52 ` William Lee Irwin III
2004-01-16 14:23 ` Joe Korty
2004-01-17 10:07 ` Paul Jackson
2004-01-15 22:53 ` Paul Jackson
2004-01-16 1:06 ` Andrew Morton
2004-01-16 2:54 ` Paul Jackson
2004-01-09 14:28 ` Paul Jackson
2004-01-09 14:46 ` Paul Jackson
2004-01-09 15:14 ` Andreas Schwab
2004-01-09 15:25 ` Christoph Hellwig
2004-01-09 17:23 ` Paul Jackson
2004-01-12 0:09 ` Joe Korty
2004-01-12 21:41 ` Paul Jackson
2004-01-12 22:00 ` Joe Korty
2004-01-12 22:28 ` Paul Jackson
2004-01-12 22:39 ` Joe Korty
2004-01-09 14:57 ` Paul Jackson
2004-01-08 1:06 ` Paul Jackson
2004-01-08 3:32 ` Joe Korty
2004-01-08 10:39 ` Paul Jackson
[not found] <1bpdu-5jP-35@gated-at.bofh.it>
[not found] ` <1brIi-Y0-57@gated-at.bofh.it>
[not found] ` <1bIf6-fh-21@gated-at.bofh.it>
[not found] ` <1bRiA-4PD-19@gated-at.bofh.it>
[not found] ` <1bRrZ-58C-9@gated-at.bofh.it>
[not found] ` <1bSHD-Xz-21@gated-at.bofh.it>
[not found] ` <1e2sZ-rG-19@gated-at.bofh.it>
[not found] ` <1e3Ih-1V0-1@gated-at.bofh.it>
[not found] ` <1e7Cd-4qD-5@gated-at.bofh.it>
[not found] ` <1einZ-64E-11@gated-at.bofh.it>
[not found] ` <1ekpM-87C-1@gated-at.bofh.it>
[not found] ` <1euyS-Eb-19@gated-at.bofh.it>
[not found] ` <1euSb-U8-3@gated-at.bofh.it>
2004-01-16 8:25 ` Andi Kleen
2004-01-16 8:35 ` Andrew Morton
2004-01-16 10: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=400873EC.2000406@us.ibm.com \
--to=colpatch@us.ibm.com \
--cc=akpm@osdl.org \
--cc=joe.korty@ccur.com \
--cc=linux-kernel@vger.kernel.org \
--cc=paulus@samba.org \
--cc=pj@sgi.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.