[PATCH] Add MAXCPU as a kernel config option and quality discussion on this

Peter Wemm peter at wemm.org
Fri Jul 8 18:22:42 UTC 2011


On Fri, Jul 8, 2011 at 11:14 AM, Peter Wemm <peter at wemm.org> wrote:
> On Fri, Jul 8, 2011 at 10:56 AM, Peter Wemm <peter at wemm.org> wrote:
>> On Fri, Jul 8, 2011 at 10:14 AM, John Baldwin <jhb at freebsd.org> wrote:
>>> On Friday, July 08, 2011 12:48:44 pm Kostik Belousov wrote:
>>>> On Fri, Jul 08, 2011 at 05:37:17PM +0200, Attilio Rao wrote:
>>>> > I've made this patch for making MAXCPU a kernel config option:
>>>> > http://www.freebsd.org/~attilio/maxcpu_kernel_opt.diff
>>>> >
>>>> > Besides if this is a good idea or not (which I think it is) I want to
>>>> > discuss this implementation and similar related problems.
>>>> > In this case I've been forced to include opt_maxcpu.h in all the MD
>>>> > param.h implementations. A similar case, KSTACK_PAGES, includes the
>>>> > opt_kstack_pages.h only in the consumers. While this is possible for
>>>> > KSTACK_PAGES, because there are very little consumers, it would be
>>>> > impratical for MAXCPU. Besides, this is a very dangerous practice
>>>> > IMHO: if a consumer fails to add opt_kstack_pages it may end up with a
>>>> > faulty value, introducing a breakage that would go unnoticed.
>>>> >
>>>> > In my case, I think that including opt_maxcpu is a viable panacea, but
>>>> > in general, after discussing with peter@, probabilly the better idea
>>>> > would be having a centralized script that does pre-processing before
>>>> > to start compiling and set with the right values all those constants
>>>> > (something like genassym.c, but of course with a different purpose).
>>>> >
>>>> > What are your ideas on that? Do you think that including opt_maxcpu.h
>>>> > would be acceptable for the time being?
>>>>
>>>> I vote for putting MAXCPU in opt_global.h.
>>>> Why did you choosed separate opt header ?
>>>
>>> I agree this should just go into opt_global.h.
>>
>> I disagree. That makes it even harder to track down KLD's that depend
>> on the correct value of MAXCPU.
>
> Ahh crap. I forgot about this:
> #ifdef _KERNEL
> #define CPU_SETSIZE     MAXCPU
> #endif
>
> MAXCPU does have to be in opt_global.h and potentially affects kernel modules.

Yes, having a default value for sizing cpuset_t does look harmful if a
kld module tries to use them.  What is currently in the tree will
silently fail by successfully compiling for kld modules that try to
use anything affected by that.

-- 
Peter Wemm - peter at wemm.org; peter at FreeBSD.org; peter at yahoo-inc.com; KI6FJV
"All of this is for nothing if we don't go to the stars" - JMS/B5
"If Java had true garbage collection, most programs would delete
themselves upon execution." -- Robert Sewell


More information about the freebsd-arch mailing list