• Anju T Sudhakar's avatar
    powerpc/perf/imc: Fix nest-imc cpuhotplug callback failure · ad2b6e01
    Anju T Sudhakar authored
    Oops is observed during boot:
    
      Faulting instruction address: 0xc000000000248340
      cpu 0x0: Vector: 380 (Data Access Out of Range) at [c000000ff66fb850]
          pc: c000000000248340: event_function_call+0x50/0x1f0
          lr: c00000000024878c: perf_remove_from_context+0x3c/0x100
          sp: c000000ff66fbad0
         msr: 9000000000009033
         dar: 7d20e2a6f92d03c0
        pid = 14, comm = cpuhp/0
    
    While registering the cpuhotplug callbacks for nest-imc, if we fail in
    the cpuhotplug online path for any random node in a multi node
    system (because the opal call to stop nest-imc counters fails for that
    node), ppc_nest_imc_cpu_offline() will get invoked for other nodes who
    successfully returned from cpuhotplug online path.
    
    This call trace is generated since in the ppc_nest_imc_cpu_offline()
    path we are trying to migrate the event context, when nest-imc
    counters are not even initialized.
    
    Patch to add a check to ensure that nest-imc is registered before
    migrating the event context.
    
    Fixes: 885dcd70 ("powerpc/perf: Add nest IMC PMU support")
    Signed-off-by: default avatarAnju T Sudhakar <anju@linux.vnet.ibm.com>
    Reviewed-by: default avatarMadhavan Srinivasan <maddy@linux.vnet.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    ad2b6e01
imc-pmu.c 33.8 KB