"The min_granularity setting was renamed to base_slice in this commit in v6 kernel.
The comment says it scales with CPU count and the comment is incorrect. I wonder whether kernel developers are aware of that mistake as they are rewriting the scheduler!
- Official comments in the code says it’s scaling with log2(1+cores) but it doesn’t.
- All the comments in the code are incorrect.
- Official documentation and man pages are incorrect.
- Every blog article, stack overflow answer and guide ever published about the scheduler is incorrect."



unsigned int cpus = min(num_online_cpus(), 8);doesn’t that mean it’s actually at least 8, as in if you have 4 cores
cpuswill be assigned8, if you have 20 corescpuswill be assigned20.No, I think min() returns the lower of two arguments. If you had 4 cores,
min(4, 8) == 4, and if you had 20 cores,min(20, 8) == 8Yeah I was wondering this too - is 8 the floor, 8 cores or below the value is always the same, but above 8 cores you then get your log progression? I don’t know enough about this though.