lkml.org 
[lkml]   [2019]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.14 012/109] powerpc/pseries: Disable CPU hotplug across migrations
    Date
    From: Nathan Fontenot <nfont@linux.vnet.ibm.com>

    [ Upstream commit 85a88cabad57d26d826dd94ea34d3a785824d802 ]

    When performing partition migrations all present CPUs must be online
    as all present CPUs must make the H_JOIN call as part of the migration
    process. Once all present CPUs make the H_JOIN call, one CPU is returned
    to make the rtas call to perform the migration to the destination system.

    During testing of migration and changing the SMT state we have found
    instances where CPUs are offlined, as part of the SMT state change,
    before they make the H_JOIN call. This results in a hung system where
    every CPU is either in H_JOIN or offline.

    To prevent this this patch disables CPU hotplug during the migration
    process.

    Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
    Reviewed-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/powerpc/kernel/rtas.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
    index 141d192c69538..a01f83ba739ef 100644
    --- a/arch/powerpc/kernel/rtas.c
    +++ b/arch/powerpc/kernel/rtas.c
    @@ -984,6 +984,7 @@ int rtas_ibm_suspend_me(u64 handle)
    goto out;
    }

    + cpu_hotplug_disable();
    stop_topology_update();

    /* Call function on all CPUs. One of us will make the
    @@ -998,6 +999,7 @@ int rtas_ibm_suspend_me(u64 handle)
    printk(KERN_ERR "Error doing global join\n");

    start_topology_update();
    + cpu_hotplug_enable();

    /* Take down CPUs not online prior to suspend */
    cpuret = rtas_offline_cpus_mask(offline_mask);
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-11-10 03:46    [W:3.041 / U:1.912 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site