[PATCH] Add the infrastructure for supporting an infinite number of CPUs

Fabian Keil freebsd-listen at fabiankeil.de
Sat Jun 4 11:23:08 UTC 2011

Attilio Rao <attilio at freebsd.org> wrote:

> Current maximum number of CPUs supported by the FreeBSD kernel is 32.
> That number cames from indirectly by the fact that we have a cpumask_t
> type, representing a mask of CPUs, which is an unsigned int right now.
> I then made a patch that removes the cpumask_t type and uses cpuset_t
> type for characterizing a generic mask of CPUs:
> http://www.freebsd.org/~attilio/largeSMP/largeSMP-patchset-beta-0.diff
> I really need to commit this patch before code slush happens, thus I
> plan to commit it on June 7th, if no one reports bugs or can make good
> point on his reviews. Please note that the patch has been greatly
> tested and reviewed on all FreeBSD tier-1 and tier-2 architectures.
> Anyway more testing and reviews are welcome to happen.

In the few days I've been using the patch, I haven't experienced
any problems on a dual core AMD64 system using SCHED_ULE. I'm aware
that two isn't that close to infinity, though.

Not sure if it matters, but I noticed two places where the CPU_ABSENT()
macro could be used, but isn't. There may be more, but as someone unfamiliar
with the code it wasn't obvious to me if there are places where "all_cpus"
and "cpus" are equal.

Of course there also might be a difference in semantics that I'm not getting.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20110604/2a817578/signature.pgp

More information about the freebsd-current mailing list