Re: [PATCH V3 0/5] bugs fix for large PEBS mmap read and rdpmc read

From: Liang, Kan
Date: Wed Jan 31 2018 - 10:15:42 EST




On 1/31/2018 8:15 AM, Jiri Olsa wrote:
On Wed, Jan 31, 2018 at 10:15:39AM +0100, Jiri Olsa wrote:
On Tue, Jan 30, 2018 at 07:59:41PM -0800, Andi Kleen wrote:
Still, the part I am missing here, is why asking for
PERF_SAMPLE_PERIOD voids large PEBS.

I think it was disabled together with frequency mode
(which we could support too, but it's a bit more work)

But yes PERIOD could probably be allowed.

looks like it's just a matter of adding PERF_SAMPLE_PERIOD
into PEBS_FREERUNNING_FLAGS, we already populate period
in setup_pebs_sample_data

jirka


---
diff --git a/arch/x86/events/perf_event.h b/arch/x86/events/perf_event.h
index 8e4ea143ed96..78f91ec1056e 100644
--- a/arch/x86/events/perf_event.h
+++ b/arch/x86/events/perf_event.h
@@ -93,7 +93,8 @@ struct amd_nb {
PERF_SAMPLE_ID | PERF_SAMPLE_CPU | PERF_SAMPLE_STREAM_ID | \
PERF_SAMPLE_DATA_SRC | PERF_SAMPLE_IDENTIFIER | \
PERF_SAMPLE_TRANSACTION | PERF_SAMPLE_PHYS_ADDR | \
- PERF_SAMPLE_REGS_INTR | PERF_SAMPLE_REGS_USER)
+ PERF_SAMPLE_REGS_INTR | PERF_SAMPLE_REGS_USER | \
+ PERF_SAMPLE_PERIOD)

seems to work, getting large PEBS event for following command line:

perf record -e cycles:P -c 100 --no-timestamp -C 0 --period



Yes, I tried the patch. The large PEBS can be enabled with the PERIOD flag. Everything looks good.

Jirka, could you please post the patch as well?

Thanks,
Kan