Re: [BK PATCH 1/2] Remove NGROUPS hardlimit (resend w/o qsort)

Tim Hockin
2002-11-15T01:17:24Z

Andrew Morton wrote:

> What are you actually using the search for?
>
>>From a quick look, it seems that it's purely to answer
> the question "is this process a member of group X?". Is
> that correct?
>
> If so, test_bit() would work nicely.

This could work if we find the max gid, allocate an array of
max_gid/CHAR_BITS + 1 bytes then test_bit, but given the non-contiguity
(is that a word) of group memberships, we'll waste a lot of space on
holes. Now, it could be argued that 10,000 groups are PROBABLY local
enough. Getting the groups back out will be nasty nastiness, though.

perhaps:

if (gidsetsize < (2 * EXEC_PAGESIZE)/sizeof(gid_t)) { /* or something */
/* use kmalloc() */
else
/* use vmalloc() */

thoughts?

--
Tim Hockin
Systems Software Engineer
Sun Microsystems, Linux Kernel Engineering
thockin@sun.com