Messages in this thread | | | Date | Tue, 05 Feb 2013 14:18:41 -0700 | From | David Ahern <> | Subject | Re: [RFC] perf: need to expose sched_clock to correlate user samples with kernel samples |
| |
On 2/1/13 7:18 AM, Pawel Moll wrote: > 8<--- > From 2ad51a27fbf64bf98cee190efc3fbd7002819692 Mon Sep 17 00:00:00 2001 > From: Pawel Moll <pawel.moll@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.moll@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; > } >
| |