diff mbox series

[RESEND,v5,1/6] perf: Introduce ioctl to communicate driver configuration to kernel

Message ID 1545067306-31687-2-git-send-email-mathieu.poirier@linaro.org
State New
Headers show
Series perf: Add ioctl for PMU driver configuration | expand

Commit Message

Mathieu Poirier Dec. 17, 2018, 5:21 p.m. UTC
Adding a new IOCTL command to communicate PMU specific configuration to
PMU kernel drivers.  This can be anything a PMU might need for
configuration that doesn't fit in the perf_event_attr structure, such
as the CoreSight sink to use for a session.

Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>

---
 include/uapi/linux/perf_event.h       | 1 +
 tools/include/uapi/linux/perf_event.h | 1 +
 2 files changed, 2 insertions(+)

-- 
2.7.4

Comments

Greg KH Dec. 19, 2018, 8:29 a.m. UTC | #1
On Mon, Dec 17, 2018 at 10:21:41AM -0700, Mathieu Poirier wrote:
> Adding a new IOCTL command to communicate PMU specific configuration to

> PMU kernel drivers.  This can be anything a PMU might need for

> configuration that doesn't fit in the perf_event_attr structure, such

> as the CoreSight sink to use for a session.

> 

> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>

> ---

>  include/uapi/linux/perf_event.h       | 1 +

>  tools/include/uapi/linux/perf_event.h | 1 +

>  2 files changed, 2 insertions(+)

> 

> diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h

> index 9de8780ac8d9..a39d8dc2e7a9 100644

> --- a/include/uapi/linux/perf_event.h

> +++ b/include/uapi/linux/perf_event.h

> @@ -462,6 +462,7 @@ struct perf_event_query_bpf {

>  #define PERF_EVENT_IOC_PAUSE_OUTPUT		_IOW('$', 9, __u32)

>  #define PERF_EVENT_IOC_QUERY_BPF		_IOWR('$', 10, struct perf_event_query_bpf *)

>  #define PERF_EVENT_IOC_MODIFY_ATTRIBUTES	_IOW('$', 11, struct perf_event_attr *)

> +#define PERF_EVENT_IOC_SET_DRV_CONFIG		_IOW('$', 12, __u64 *)

>  

>  enum perf_event_ioc_flags {

>  	PERF_IOC_FLAG_GROUP		= 1U << 0,

> diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h

> index 9de8780ac8d9..a39d8dc2e7a9 100644

> --- a/tools/include/uapi/linux/perf_event.h

> +++ b/tools/include/uapi/linux/perf_event.h

> @@ -462,6 +462,7 @@ struct perf_event_query_bpf {

>  #define PERF_EVENT_IOC_PAUSE_OUTPUT		_IOW('$', 9, __u32)

>  #define PERF_EVENT_IOC_QUERY_BPF		_IOWR('$', 10, struct perf_event_query_bpf *)

>  #define PERF_EVENT_IOC_MODIFY_ATTRIBUTES	_IOW('$', 11, struct perf_event_attr *)

> +#define PERF_EVENT_IOC_SET_DRV_CONFIG		_IOW('$', 12, __u64 *)


A pointer to an unknown structure?  That's just asking for abuse :(
diff mbox series

Patch

diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h
index 9de8780ac8d9..a39d8dc2e7a9 100644
--- a/include/uapi/linux/perf_event.h
+++ b/include/uapi/linux/perf_event.h
@@ -462,6 +462,7 @@  struct perf_event_query_bpf {
 #define PERF_EVENT_IOC_PAUSE_OUTPUT		_IOW('$', 9, __u32)
 #define PERF_EVENT_IOC_QUERY_BPF		_IOWR('$', 10, struct perf_event_query_bpf *)
 #define PERF_EVENT_IOC_MODIFY_ATTRIBUTES	_IOW('$', 11, struct perf_event_attr *)
+#define PERF_EVENT_IOC_SET_DRV_CONFIG		_IOW('$', 12, __u64 *)
 
 enum perf_event_ioc_flags {
 	PERF_IOC_FLAG_GROUP		= 1U << 0,
diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h
index 9de8780ac8d9..a39d8dc2e7a9 100644
--- a/tools/include/uapi/linux/perf_event.h
+++ b/tools/include/uapi/linux/perf_event.h
@@ -462,6 +462,7 @@  struct perf_event_query_bpf {
 #define PERF_EVENT_IOC_PAUSE_OUTPUT		_IOW('$', 9, __u32)
 #define PERF_EVENT_IOC_QUERY_BPF		_IOWR('$', 10, struct perf_event_query_bpf *)
 #define PERF_EVENT_IOC_MODIFY_ATTRIBUTES	_IOW('$', 11, struct perf_event_attr *)
+#define PERF_EVENT_IOC_SET_DRV_CONFIG		_IOW('$', 12, __u64 *)
 
 enum perf_event_ioc_flags {
 	PERF_IOC_FLAG_GROUP		= 1U << 0,