• Heiko Carstens's avatar
    [S390] Vertical cpu management. · c10fde0d
    Heiko Carstens authored
    If vertical cpu polarization is active then the hypervisor will
    dispatch certain cpus for a longer time than other cpus for maximum
    performance. For example if a guest would have three virtual cpus,
    each of them with a share of 33 percent, then in case of vertical
    cpu polarization all of the processing time would be combined to a
    single cpu which would run all the time, while the other two cpus
    would get nearly no cpu time.
    
    There are three different types of vertical cpus: high, medium and
    low. Low cpus hardly get any real cpu time, while high cpus get a
    full real cpu. Medium cpus get something in between.
    
    In order to switch between the two possible modes (default is
    horizontal) a 0 for horizontal polarization or a 1 for vertical
    polarization must be written to the dispatching sysfs attribute:
    
    /sys/devices/system/cpu/dispatching
    
    The polarization of each single cpu can be figured out by the
    polarization sysfs attribute of each cpu:
    
    /sys/devices/system/cpu/cpuX/polarization
    
    horizontal, vertical:high, vertical:medium, vertical:low or unknown.
    
    When switching polarization the polarization attribute may contain
    the value unknown until the configuration change is done and the
    kernel has figured out the new polarization of each cpu.
    
    Note that running a system with different types of vertical cpus may
    result in significant performance regressions. If possible only one
    type of vertical cpus should be used. All other cpus should be
    offlined.
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    c10fde0d
smp.c 28.8 KB