Re: [PATCH V3 1/5] perf/core: Add PERF_SAMPLE_WEIGHT_STRUCT

From: Liang, Kan
Date: Fri Feb 05 2021 - 08:52:42 EST




On 2/5/2021 5:43 AM, Namhyung Kim wrote:
On Fri, Feb 5, 2021 at 12:24 AM Liang, Kan <kan.liang@xxxxxxxxxxxxxxx> wrote:

On 2/4/2021 9:00 AM, Namhyung Kim wrote:
Hi Kan,

On Sat, Jan 30, 2021 at 2:25 AM Liang, Kan <kan.liang@xxxxxxxxxxxxxxx> wrote:
[SNIP]
diff --git a/include/uapi/linux/perf_event.h
b/include/uapi/linux/perf_event.h
index b15e344..c50718a 100644
--- a/include/uapi/linux/perf_event.h
+++ b/include/uapi/linux/perf_event.h
@@ -145,12 +145,14 @@ enum perf_event_sample_format {
PERF_SAMPLE_CGROUP = 1U << 21,
PERF_SAMPLE_DATA_PAGE_SIZE = 1U << 22,
PERF_SAMPLE_CODE_PAGE_SIZE = 1U << 23,
+ PERF_SAMPLE_WEIGHT_STRUCT = 1U << 24,

- PERF_SAMPLE_MAX = 1U << 24, /* non-ABI */
+ PERF_SAMPLE_MAX = 1U << 25, /* non-ABI */

__PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, /* non-ABI; internal use */
};

+#define PERF_SAMPLE_WEIGHT_TYPE (PERF_SAMPLE_WEIGHT |
PERF_SAMPLE_WEIGHT_STRUCT)

I'm not sure you want to expose it in the uapi header as it's not
intended to be used IMHO.


I'm not sure I understood, but it's indeed used in the tool patch set.

https://lore.kernel.org/lkml/1612296553-21962-6-git-send-email-kan.liang@xxxxxxxxxxxxxxx/

Well, it's not a big deal.. but I just worried if some users might do

event.attr.sample_type = PERF_SAMPLE_WEIGHT_TYPE;


Yes, it's possible. For this case, Kernel returns -EINVAL.

Actually, even without the macro, users may still set PERF_SAMPLE_WEIGHT | PERF_SAMPLE_WEIGHT_STRUCT manually. We cannot control what a user sets. I don't think it's a problem as long as the kernel can handle it properly.

Thanks,
Kan