Thread (36 messages) 36 messages, 10 authors, 2021-02-10

Re: [RFC PATCH v0] mm/slub: Let number of online CPUs determine the slub page order

From: Christoph Lameter <hidden>
Date: 2021-01-21 10:03:57
Also in: lkml

On Thu, 21 Jan 2021, Bharata B Rao wrote:
quoted
The problem is that calculate_order() is called a number of times
before secondaries CPUs are booted and it returns 1 instead of 224.
This makes the use of num_online_cpus() irrelevant for those cases

After adding in my command line "slub_min_objects=36" which equals to
4 * (fls(num_online_cpus()) + 1) with a correct num_online_cpus == 224
, the regression diseapears:

9 iterations of hackbench -l 16000 -g 16: 3.201sec (+/- 0.90%)
Should we have switched to num_present_cpus() rather than
num_online_cpus()? If so, the below patch should address the
above problem.
There is certainly an initcall after secondaries are booted where we could
redo the calculate_order?

Or the num_online_cpus needs to be up to date earlier. Why does this issue
not occur on x86? Does x86 have an up to date num_online_cpus earlier?


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help