Re: [tip:perf/timer] perf: Add per event clockid support

From: Peter Zijlstra
Date: Fri Mar 27 2015 - 12:36:08 EST


On Fri, Mar 27, 2015 at 09:31:45AM -0700, Stephane Eranian wrote:
> On Fri, Mar 27, 2015 at 4:48 AM, tip-bot for Peter Zijlstra
> > +static int perf_event_set_clock(struct perf_event *event, clockid_t clk_id)
> > +{
> > + bool nmi_safe = false;
> > +
> > + switch (clk_id) {
> > + case CLOCK_MONOTONIC:
> > + event->clock = &ktime_get_mono_fast_ns;
> > + nmi_safe = true;
> > + break;
> > +
> > + case CLOCK_MONOTONIC_RAW:
> > + event->clock = &ktime_get_raw_fast_ns;
> > + nmi_safe = true;
> > + break;
> > +
> > + case CLOCK_REALTIME:
> > + event->clock = &ktime_get_real_ns;
> > + break;
> > +
> > + case CLOCK_BOOTTIME:
> > + event->clock = &ktime_get_boot_ns;
> > + break;
> > +
> > + case CLOCK_TAI:
> > + event->clock = &ktime_get_tai_ns;
> > + break;
> > +
> Can all those clocks be safely called from an NMI context?

+ if (!nmi_safe && !(event->pmu->capabilities & PERF_PMU_CAP_NO_NMI))
+ return -EINVAL;

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