On 2/1/13 7:18 AM, Pawel Moll wrote:
8<---
 From 2ad51a27fbf64bf98cee190efc3fbd7002819692 Mon Sep 17 00:00:00 2001
From: Pawel Moll <pawel.m...@arm.com>
Date: Fri, 1 Feb 2013 14:03:56 +0000
Subject: [PATCH] perf: Add ioctl to return current time value

To co-relate user space events with the perf events stream
a current (as in: "what time(stamp) is it now?") time value
must be made available.

This patch adds a perf ioctl that makes this possible.

Are there any objections to this approach? I need a solution for my time-of-day patch as well.

David


Signed-off-by: Pawel Moll <pawel.m...@arm.com>
---
  include/uapi/linux/perf_event.h |    1 +
  kernel/events/core.c            |    8 ++++++++
  2 files changed, 9 insertions(+)

diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h
index 4f63c05..b745fb0 100644
--- a/include/uapi/linux/perf_event.h
+++ b/include/uapi/linux/perf_event.h
@@ -316,6 +316,7 @@ struct perf_event_attr {
  #define PERF_EVENT_IOC_PERIOD         _IOW('$', 4, __u64)
  #define PERF_EVENT_IOC_SET_OUTPUT     _IO ('$', 5)
  #define PERF_EVENT_IOC_SET_FILTER     _IOW('$', 6, char *)
+#define PERF_EVENT_IOC_GET_TIME                _IOR('$', 7, __u64)

  enum perf_event_ioc_flags {
        PERF_IOC_FLAG_GROUP             = 1U << 0,
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 301079d..4202b1c 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -3298,6 +3298,14 @@ static long perf_ioctl(struct file *file, unsigned int 
cmd, unsigned long arg)
        case PERF_EVENT_IOC_SET_FILTER:
                return perf_event_set_filter(event, (void __user *)arg);

+       case PERF_EVENT_IOC_GET_TIME:
+       {
+               u64 time = perf_clock();
+               if (copy_to_user((void __user *)arg, &time, sizeof(time)))
+                       return -EFAULT;
+               return 0;
+       }
+
        default:
                return -ENOTTY;
        }


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to