]> www.infradead.org Git - users/dwmw2/linux.git/commit
s390/hiperdispatch: Introduce hiperdispatch
authorMete Durlu <meted@linux.ibm.com>
Mon, 12 Aug 2024 11:39:34 +0000 (13:39 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Thu, 29 Aug 2024 20:56:35 +0000 (22:56 +0200)
commit6843d6d97c03b8fa506d188a483bc494a6ac4c89
treef18b498e719883e407d1689846c3a2d544a0518c
parent26ceef523d5442a8bc88e334c3e84cdbd9e3fb92
s390/hiperdispatch: Introduce hiperdispatch

When LPAR is in vertical polarization, CPUs get different polarization
values, namely vertical high, vertical medium and vertical low. These
values represent the likelyhood of the CPU getting physical runtime.
Vertical high CPUs will always get runtime and others get varying
runtime depending on the load the CEC is under.

Vertical high and vertical medium CPUs are considered the CPUs which the
current LPAR has the entitlement to run on. The vertical lows are on the
other hand are borrowed CPUs which would only be given to the LPAR by
hipervisor when the other LPARs are not utilizing them.

Using the CPU capacities, hint linux scheduler when it should prioritise
vertical high and vertical medium CPUs over vertical low CPUs.
By tracking various system statistics hiperdispatch determines when to
adjust cpu capacities.
After each adjustment, rebuilding of scheduler domains is necessary to
notify the scheduler about capacity changes but since this operation is
costly it should be done as sparsely as possible.

Acked-by: Vasily Gorbik <gor@linux.ibm.com>
Co-developed-by: Tobias Huschle <huschle@linux.ibm.com>
Signed-off-by: Tobias Huschle <huschle@linux.ibm.com>
Signed-off-by: Mete Durlu <meted@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/include/asm/hiperdispatch.h [new file with mode: 0644]
arch/s390/kernel/Makefile
arch/s390/kernel/hiperdispatch.c [new file with mode: 0644]
arch/s390/kernel/topology.c