All, Here is a set of patches (against a recent-ish 2.5 BK) that removes the arbitrary limit of 32 groups. The first patch creates generic qsort() and bsearch() routines (I have another patch to conver XFS to use it, as discussed with Christoph a while back). The second patch converts task->groups[] into a dynamic, refcounted, CoW array. It does the needed bits for i386 (minor) but not the other architectures. I have (not included here for brevity) patches that convert other arch trees to do the right thing (I think) and convert other usages of NGROUPS and task->groups and task->ngroups. There are still a few issues I am working out with those. I wanted to post this (and CC: people who have mailed me about it) and see if there are any complaints about the approach. The patches are simple, and have been in use in our own 2.4.x systems or some time. I did make some changes in forward porting, but they are tested on at least one 2.5.x box here :) This has the side effect of reducing the size of struct task_struct by a bit, too. :) This should run on any glibc, without mods. Glibc will need to return a different value instead of NGROUPS (32), to be fully correct, though. I suggest INT_MAX :) We've found a couple apps that needed to be fixed up in the event of >32 groups being used, and when this goes mainline, we'll pop out those patches, too. Another issue: this changes /proc/pid/status to only show 32 groups - not sure what better solution is preferred. Comments, read-overs, and flames requested. Ideally I'd like to see this go into 2.5.x real soon now. :) Tim -- Tim Hockin Systems Software Engineer Sun Microsystems, Linux Kernel Engineering thockin@sun.com