• S
    arm64: smp: Add support for cpu park · 0262388a
    Sang Yan 提交于
    hulk inclusion
    category: feature
    bugzilla: 48159
    CVE: N/A
    
    ------------------------------
    
    Introducing a feature of CPU PARK in order to save time
    of cpus down and up during kexec, which may cost 250ms of
    per cpu's down and 30ms of up.
    
    As a result, for 128 cores, it costs more than 30 seconds
    to down and up cpus during kexec. Think about 256 cores and more.
    
    CPU PARK is a state that cpu power-on and staying in spin loop, polling
    for exit chances, such as writing exit address.
    
    Reserving a block of memory, to fill with cpu park text section,
    exit address and park-magic-flag of each cpu. In implementation,
    reserved one page for one cpu core.
    
    Cpus going to park state instead of down in machine_shutdown().
    Cpus going out of park state in smp_init instead of brought up.
    
    One of cpu park sections in pre-reserved memory blocks,:
    +--------------+
    + exit address +
    +--------------+
    + park magic   +
    +--------------+
    + park codes   +
    +      .       +
    +      .       +
    +      .       +
    +--------------+
    Signed-off-by: NSang Yan <sangyan@huawei.com>
    Reviewed-by: NXiongfeng Wang <wangxiongfeng2@huawei.com>
    Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
    0262388a
Kconfig 67.5 KB