svn commit: r214409 - head/sys/kern
Robert Watson
rwatson at FreeBSD.org
Wed Oct 27 11:18:39 UTC 2010
On Wed, 27 Oct 2010, David Xu wrote:
>>> I really hate to see such a problem that userland can not figure out what
>>> kernel is using, I try hardly to guess, but still can not find what it is
>>> using. yes, I think the doc may need to be fixed or another syscall is
>>> needed.
>>
>> Well... Jeff's code in cpuset(1) does some trivial sizeof(mask) 's, but
>> it just passes in cpuset_t for mask. I've seen different calling
>> conventions at the kernel level when I tried to get my brain in sync with
>> that for a bug I was looking at a few weeks ago (and sadly, failed to some
>> degree).
>> These syscalls are a bit confusing though, and apart from cpuset(1)
>> there aren't any really good examples in the sourcebase on how to use them
>> (at least not the last time I checked)... Thanks, -Garrett
>>
> The problem is that the size of cpuset is not fixed, it is tunable by the
> recompiling kernel with different parameter, so if you have a program which
> you want to adapt it to use any size of cpuset, it should be able to get the
> size the kernel is using, if you don't have source code of the program, you
> can not compile it with new parameter, then there is trouble.
Yay, it's fd_set all over again :-).
It sounds like we might just need to add a sysctl and a few wrapper functions
in userspace along the lines of (hand-wave):
cpuset_t *cpuset_alloc();
void cpuset_free();
And perhaps some sort of API that abstracts manipulation of the set (or
doesn't but allows the user to easily query its bounds).
Robert
More information about the svn-src-all
mailing list