Skip to content

Commit 4485154

Browse files
rientjesIngo Molnar
authored andcommitted
perf/x86/intel: Avoid spamming kernel log for BTS buffer failure
It's unnecessary to excessively spam the kernel log anytime the BTS buffer cannot be allocated, so make this allocation __GFP_NOWARN. The user probably will want to at least find some artifact that the allocation has failed in the past, probably due to fragmentation because of its large size, when it's not allocated at bootstrap. Thus, add a WARN_ONCE() so something is left behind for them to understand why perf commnads that require PEBS is not working properly. Signed-off-by: David Rientjes <rientjes@google.com> Signed-off-by: Peter Zijlstra <peterz@infradead.org> Cc: Arnaldo Carvalho de Melo <acme@kernel.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: http://lkml.kernel.org/r/alpine.DEB.2.02.1406301600460.26302@chino.kir.corp.google.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
1 parent 338b522 commit 4485154

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

arch/x86/kernel/cpu/perf_event_intel_ds.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -311,9 +311,11 @@ static int alloc_bts_buffer(int cpu)
311311
if (!x86_pmu.bts)
312312
return 0;
313313

314-
buffer = kzalloc_node(BTS_BUFFER_SIZE, GFP_KERNEL, node);
315-
if (unlikely(!buffer))
314+
buffer = kzalloc_node(BTS_BUFFER_SIZE, GFP_KERNEL | __GFP_NOWARN, node);
315+
if (unlikely(!buffer)) {
316+
WARN_ONCE(1, "%s: BTS buffer allocation failure\n", __func__);
316317
return -ENOMEM;
318+
}
317319

318320
max = BTS_BUFFER_SIZE / BTS_RECORD_SIZE;
319321
thresh = max / 16;

0 commit comments

Comments
 (0)