Re: Bumping MAXCPU on amd64?

From: Robert Watson <rwatson_at_FreeBSD.org>
Date: Thu, 23 Sep 2010 11:32:31 +0100 (BST)
On Wed, 22 Sep 2010, Maxim Sobolev wrote:

> On 9/22/2010 6:37 AM, John Baldwin wrote:
>> Unfortunately this can't be MFC'd to 7 as it would destroy the ABI for 
>> existing klds.
>
> Ah, ok, sorry, I did only check RELENG_7. Can we make it a kernel option 
> then?

In principle, yes, but MAXCPU is used to size various kernel data structures 
inspected by userspace crash post-mortem tools, etc.  I've done a bit of work 
to teach some of those tools (in particular, vmstat -z and vmstat -m) to 
extract the version of maxcpu compiled into the kernel instead just relying on 
the version of MAXCPU present when the command line tool was compiled. 
However, I think a better long-term approach here is to generally eliminate 
sizing based on MAXCPU and instead size based on the number of CPUs present. 
Certain kernel subsystems already do this (UMA, netisr, ...) but others don't 
(malloc(9), ...).  Additional hands on this project would probably help :-).

As John mentioned, the other issue is the use of fixed-width types instead of 
variable-length CPU bitmasks to name cores for IPIs, etc.  There are people 
actively working on this, but it's a non-trivial project as kernel code likes 
to do things like cpumask & othermask.  My expectation is that this problem 
will be solved in 9.0 but I don't see any obvious MFC paths for 8.x due to KBI 
issues.  It could be that this forces our hand in terms of breaking the KBI at 
some point in the 8.x series, unclear...

Robert
Received on Thu Sep 23 2010 - 08:32:32 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:07 UTC