Skip to content

Commit 6495e76

Browse files
ahunter6acmel
authored andcommitted
perf dlfilter: Add attr() to perf_dlfilter_fns
Add a function, for use by dlfilters, to return the perf_event_attr structure. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Leo Yan <leo.yan@linaro.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: https://lore.kernel.org/r/20210627131818.810-10-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
1 parent 244afc0 commit 6495e76

3 files changed

Lines changed: 18 additions & 2 deletions

File tree

tools/perf/Documentation/perf-dlfilter.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,8 @@ struct perf_dlfilter_fns {
126126
__s32 (*resolve_address)(void *ctx, __u64 address, struct perf_dlfilter_al *al);
127127
const __u8 *(*insn)(void *ctx, __u32 *length);
128128
const char *(*srcline)(void *ctx, __u32 *line_number);
129-
void *(*reserved[122])(void *);
129+
struct perf_event_attr *(*attr)(void *ctx);
130+
void *(*reserved[121])(void *);
130131
};
131132
----
132133

@@ -143,6 +144,8 @@ before calling. Returns 0 on success, -1 otherwise.
143144

144145
'srcline' return source file name and line number.
145146

147+
'attr' returns perf_event_attr, refer <linux/perf_event.h>.
148+
146149
The perf_dlfilter_al structure
147150
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
148151

tools/perf/util/dlfilter.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,13 +235,24 @@ static const char *dlfilter__srcline(void *ctx, __u32 *line_no)
235235
return srcfile;
236236
}
237237

238+
static struct perf_event_attr *dlfilter__attr(void *ctx)
239+
{
240+
struct dlfilter *d = (struct dlfilter *)ctx;
241+
242+
if (!d->ctx_valid)
243+
return NULL;
244+
245+
return &d->evsel->core.attr;
246+
}
247+
238248
static const struct perf_dlfilter_fns perf_dlfilter_fns = {
239249
.resolve_ip = dlfilter__resolve_ip,
240250
.resolve_addr = dlfilter__resolve_addr,
241251
.args = dlfilter__args,
242252
.resolve_address = dlfilter__resolve_address,
243253
.insn = dlfilter__insn,
244254
.srcline = dlfilter__srcline,
255+
.attr = dlfilter__attr,
245256
};
246257

247258
static char *find_dlfilter(const char *file)

tools/perf/util/perf_dlfilter.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,10 @@ struct perf_dlfilter_fns {
101101
const __u8 *(*insn)(void *ctx, __u32 *length);
102102
/* Return source file name and line number */
103103
const char *(*srcline)(void *ctx, __u32 *line_number);
104+
/* Return perf_event_attr, refer <linux/perf_event.h> */
105+
struct perf_event_attr *(*attr)(void *ctx);
104106
/* Reserved */
105-
void *(*reserved[122])(void *);
107+
void *(*reserved[121])(void *);
106108
};
107109

108110
/*

0 commit comments

Comments
 (0)