diff options
author | Like Xu <like.xu@linux.intel.com> | 2021-04-30 13:22:47 +0800 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2021-05-18 12:53:47 +0200 |
commit | 488e13a489e9707a7e81e1991fdd1f20c0f04689 (patch) | |
tree | 879e930522ad4021a4118c8ff0e9d5ae0d869917 /drivers/gpu/drm/i915/display/intel_frontbuffer.c | |
parent | 3317c26a4b413b41364f2c4b83c778c6aba1576d (diff) |
perf/x86/lbr: Remove cpuc->lbr_xsave allocation from atomic context
If the kernel is compiled with the CONFIG_LOCKDEP option, the conditional
might_sleep_if() deep in kmem_cache_alloc() will generate the following
trace, and potentially cause a deadlock when another LBR event is added:
[] BUG: sleeping function called from invalid context at include/linux/sched/mm.h:196
[] Call Trace:
[] kmem_cache_alloc+0x36/0x250
[] intel_pmu_lbr_add+0x152/0x170
[] x86_pmu_add+0x83/0xd0
Make it symmetric with the release_lbr_buffers() call and mirror the
existing DS buffers.
Fixes: c085fb8774 ("perf/x86/intel/lbr: Support XSAVES for arch LBR read")
Signed-off-by: Like Xu <like.xu@linux.intel.com>
[peterz: simplified]
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Kan Liang <kan.liang@linux.intel.com>
Link: https://lkml.kernel.org/r/20210430052247.3079672-2-like.xu@linux.intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_frontbuffer.c')
0 files changed, 0 insertions, 0 deletions