OpenBSD Journal

MAXCPUS on OpenBSD/amd64-current is now 255

Contributed by Peter N. M. Hansteen on from the strengthen your core muscles dept.

With these two commits, Mike Larkin (mlarkin@) set the stage for, and next up, bumped the maximum number of processors supported on OpenBSD/amd64 from 64 to 255.

The first commit message reads,

List:       openbsd-cvs
Subject:    CVS: cvs.openbsd.org: src
From:       Mike Larkin <mlarkin () cvs ! openbsd ! org>
Date:       2026-01-14 21:25:26

CVSROOT:	/cvs
Module name:	src
Changes by:	mlarkin@cvs.openbsd.org	2026/01/14 14:25:26

Modified files:
	sys/arch/amd64/amd64: pmap.c 

Log message:
Support more than 64 bits for amd64 TLB shootdown IPI masks
The TLB shootdown code used a uint64_t to track which CPUs needed to have
their TLB remotely flushed during pmap operations. This allowed for up to
64 CPUs maximum on amd64.

This diff changes the single uint64_t mask to an array of uint8_t masks,
sized based on MAXCPUS, and utilizes the bitmask macros in param.h to
manipulate these masks.

with input from and ok deraadt. also ok kettenis

while the second ups the limit:

List:       openbsd-cvs
Subject:    CVS: cvs.openbsd.org: src
From:       Mike Larkin <mlarkin () cvs ! openbsd ! org>
Date:       2026-01-14 21:31:03

CVSROOT:	/cvs
Module name:	src
Changes by:	mlarkin@cvs.openbsd.org	2026/01/14 14:31:03

Modified files:
	sys/arch/amd64/include: cpu.h 

Log message:
Increase MAXCPUs on amd64 to 255

Now that we have larger bitmask support for more than 64 CPUs, we can increase
the max to 255. 255 is the max that xapic can support; this number can be
bumped later if we want to discriminate x2apic vs xapic.

with input from and ok deraadt. also ok kettenis

This change should make for a real boost to the machines out there with more than 64 cores. If you have them, please test and report back!


Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]