Skip to content
  • Ingo Molnar's avatar
    Revert "perf/x86/intel/uncore: Move uncore_box_init() out of driver initialization" · 15c12479
    Ingo Molnar authored
    This reverts commit c05199e5
    
    .
    
    Vince Weaver reported the following crash while perf fuzzing:
    
    [   79.473121] kernel BUG at mm/vmalloc.c:1335!
    [   79.694391] Call Trace:
    [   79.696997]  <IRQ>
    [   79.699090]  [<ffffffff811b2130>] get_vm_area_caller+0x40/0x50
    [   79.705505]  [<ffffffff81039f4d>] ? snb_uncore_imc_init_box+0x6d/0x90
    [   79.712414]  [<ffffffff810635e5>] __ioremap_caller+0x195/0x350
    [   79.718610]  [<ffffffff81039f4d>] ? snb_uncore_imc_init_box+0x6d/0x90
    [   79.725462]  [<ffffffff81427f6b>] ? debug_object_activate+0x14b/0x1e0
    [   79.732346]  [<ffffffff810637b7>] ioremap_nocache+0x17/0x20
    [   79.738283]  [<ffffffff81039f4d>] snb_uncore_imc_init_box+0x6d/0x90
    [   79.744945]  [<ffffffff81039cf7>] snb_uncore_imc_event_start+0xb7/0x110
    [   79.752020]  [<ffffffff81039d97>] snb_uncore_imc_event_add+0x47/0x60
    [   79.758832]  [<ffffffff81162cbb>] event_sched_in.isra.85+0xfb/0x330
    [   79.765519]  [<ffffffff81162f5f>] group_sched_in+0x6f/0x1e0
    [   79.771481]  [<ffffffff8101df1a>] ? native_sched_clock+0x2a/0x90
    [   79.777858]  [<ffffffff811637bc>] __perf_event_enable+0x25c/0x2a0
    [   79.784418]  [<ffffffff810f3e69>] ? tick_nohz_irq_exit+0x29/0x30
    [   79.790820]  [<ffffffff8115ef30>] ? cpu_clock_event_start+0x40/0x40
    [   79.797546]  [<ffffffff8115ef80>] remote_function+0x50/0x60
    [   79.803535]  [<ffffffff810f8cd1>] flush_smp_call_function_queue+0x81/0x180
    [   79.810840]  [<ffffffff810f9763>] generic_smp_call_function_single_interrupt+0x13/0x60
    [   79.819328]  [<ffffffff8104b5e8>] smp_trace_call_function_single_interrupt+0x38/0xc0
    [   79.827614]  [<ffffffff816de9be>] trace_call_function_single_interrupt+0x6e/0x80
    [   79.835465]  <EOI>
    [   79.837543]  [<ffffffff8156e8b5>] ? cpuidle_enter_state+0x65/0x160
    [   79.844377]  [<ffffffff8156e8a1>] ? cpuidle_enter_state+0x51/0x160
    [   79.851015]  [<ffffffff8156e9e7>] cpuidle_enter+0x17/0x20
    [   79.856791]  [<ffffffff810b6e39>] cpu_startup_entry+0x399/0x440
    [   79.863165]  [<ffffffff816c9ddb>] rest_init+0xbb/0xd0
    
    The offending commit is clearly confused as it moves heavy initialization
    work into IPI context.
    
    Revert it.
    
    Reported-by: default avatarVince Weaver <vincent.weaver@maine.edu>
    Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Kan Liang <kan.liang@intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Yan, Zheng <zheng.z.yan@intel.com>
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    15c12479