• Mete Durlu's avatar
    s390/hiperdispatch: Introduce hiperdispatch · 6843d6d9
    Mete Durlu authored
    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: default avatarVasily Gorbik <gor@linux.ibm.com>
    Co-developed-by: default avatarTobias Huschle <huschle@linux.ibm.com>
    Signed-off-by: default avatarTobias Huschle <huschle@linux.ibm.com>
    Signed-off-by: default avatarMete Durlu <meted@linux.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    6843d6d9
topology.c 15.8 KB