Home | History | Annotate | Download | only in kern
History log of /src/sys/kern/subr_cpu.c
RevisionDateAuthorComments
 1.23  23-Jun-2025  ad Update a comment
 1.22  05-Mar-2024  thorpej branches: 1.22.2;
Revert previous until I can diagnose a failure reported by gson.
 1.21  05-Mar-2024  thorpej Early in main(), assert that curcpu() evaluates as the primary CPU and
stash away a pointer to it as the boot CPU for quick reference later.
 1.20  04-Jan-2024  mlelstv dump topology information with aprint_debug instead of requiring to build
a DEBUG kernel.
 1.19  08-Jul-2023  riastradh curcpu_stable(9): New function for asserting curcpu() is stable.
 1.18  24-Jan-2022  andvar remove double "with" in comments and usage text. Also fix one typo.
 1.17  04-Oct-2021  andvar remove duplicate the article in comments.
 1.16  23-Sep-2020  simonb Don't dump the CPU topology in the uninspiring case of a single CPU.
 1.15  11-Jun-2020  ad Counter tweaks:

- Don't need to count anonpages+filepages any more; clean+unknown+dirty for
each kind of page can be summed to get the totals.

- Track the number of free pages with a counter so that it's one less thing
for the allocator to do, which opens up further options there.

- Remove cpu_count_sync_one(). It has no users and doesn't save a whole lot.
For the cheap option, give cpu_count_sync() a boolean parameter indicating
that a cached value is okay, and rate limit the updates for cached values
to hz.
 1.14  26-Mar-2020  ad branches: 1.14.2;
Don't overwrite ci_is_slow if it has explicitly been set. Changed for
correctness, should have no impact.
 1.13  15-Feb-2020  skrll Remove the 'slow' argument from cpu_topology_set and create a new
function cpu_topology_setspeed which sets the relative speed of the
cpu.

This allows cpu_topology_set is be used at cpu hatch time. The relative
speed is only known once all cpus have hatched/attached

OK ad@
 1.12  09-Feb-2020  skrll Trailing whitespace
 1.11  13-Jan-2020  ad Fix some more bugs in the topo stuff, that prevented it from working
properly with fake topo info + MP.
 1.10  13-Jan-2020  mrg more diag for cpu topology debug kernels:

- print the slow/fast status of each cpu
- if cpu topology is bogus, print info about the two CPUs that
appear to have the same info.
 1.9  13-Jan-2020  ad Fix a loltastic typo.
 1.8  12-Jan-2020  ad cpu topology:

- Fix a stupid bug where it complained about non-existent SMT on assymetric
systems.

- Give each CPU a pointer back to the first CPU in same package.
 1.7  12-Jan-2020  mrg provide some semblance of valid cpu topology for big.little systems.

while attaching cpus, if the FDT provides "capacity-dmips-mhz" track
the fastest set, and call cpu_topology_set() with slow=true for any
cpus that are not the fastest.

bug fix for cpu_topology_set(): actually set ci_is_slow for slow cpus.

with this change, and -current's recent scheduler changes, this means
that long running processes run on the faster cores. on RK3399 based
systems, i am seeing 20-50% speed ups for many tasks.


XXX: all this can be made common with armv7 big.little.
 1.6  09-Jan-2020  ad - Many small tweaks to the SMT awareness in the scheduler. It does a much
better job now at keeping all physical CPUs busy, while using the extra
threads to help out. In particular, during preempt() if we're using SMT,
try to find a better CPU to run on and teleport curlwp there.

- Change the CPU topology stuff so it can work on asymmetric systems. This
mainly entails rearranging one of the CPU lists so it makes sense in all
configurations.

- Add a parameter to cpu_topology_set() to note that a CPU is "slow", for
where there are fast CPUs and slow CPUs, like with the Rockwell RK3399.
Extend the SMT awareness to try and handle that situation too (keep fast
CPUs busy, use slow CPUs as helpers).
 1.5  05-Jan-2020  ad branches: 1.5.2;
mi_cpu_init(): provide fake topology info for early boot.
 1.4  02-Jan-2020  ad mi_cpu_init: set ci_smt_primary early.
 1.3  21-Dec-2019  ad Fix build break (ci->ci_dev is not available on every port).
 1.2  21-Dec-2019  ad Fix build failure.
 1.1  20-Dec-2019  ad Split subr_cpu.c out of kern_cpu.c, to contain routines shared with rump.
 1.5.2.2  29-Feb-2020  ad Sync with head.
 1.5.2.1  17-Jan-2020  ad Sync with head.
 1.14.2.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.14.2.1  26-Mar-2020  martin file subr_cpu.c was added on branch phil-wifi on 2020-04-08 14:08:52 +0000
 1.22.2.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed