Jeff Roberson wrote:
On Tue, 4 Mar 2008, David Xu wrote:
Jeff Roberson wrote:
One question is how I can determine the size of cpuset the kernel is
using ?
I wrote it to tolerate user masks that were much larger than the
kernel mask. I set the default CPU_SETSIZE in userspace to 128 and
in kernel it's MAXCPU. So in practice an application shouldn't have
to redefine CPU_SETSIZE. If your set is too small the kernel will
return ERANGE however. Unfortunately, if your set is larger than the
kernel's CPU_MAXSIZE it'll also return ERANGE. Maybe I should use
different errnos for those cases.
From my point, userland has to write some urgly code to guess what
kernel code wants, it is rather frustrate.
You can use sysctl kern.smp.maxcpus to get the precise size.
if kern.smp.maxcpus is a stable ABI, I may use it, can it be guaranteed?
I saw following code in kern_cpuset.c, obviously, maxcpus is not
respected.
if (uap->cpusetsize < CPU_SETSIZE || uap->cpusetsize > CPU_MAXSIZE)
return (ERANGE);
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"