On Fri, Jul 08, 2016 at 03:31:00PM +0200, Peter Zijlstra wrote:

SNIP

>       /*
> -      * When the event is constrained enough we can use a larger
> -      * threshold and run the event with less frequent PMI.
> +      * Use auto-reload if possible to save a MSR write in the PMI.
> +      * This must be done in pmu::start(), because PERF_EVENT_IOC_PERIOD.
>        */
> -     if (hwc->flags & PERF_X86_EVENT_FREERUNNING) {
> -             threshold = ds->pebs_absolute_maximum -
> -                     x86_pmu.max_pebs_events * x86_pmu.pebs_record_size;
> -
> -             if (first_pebs)
> -                     perf_sched_cb_inc(event->ctx->pmu);
> -     } else {
> -             threshold = ds->pebs_buffer_base + x86_pmu.pebs_record_size;
> -
> -             /*
> -              * If not all events can use larger buffer,
> -              * roll back to threshold = 1
> -              */
> -             if (!first_pebs &&
> -                 (ds->pebs_interrupt_threshold > threshold))
> -                     perf_sched_cb_dec(event->ctx->pmu);
> -     }

hum, the original code switched back the perf_sched_cb,
in case !feerunning event was detected.. I dont see it
in the new code.. just the threshold update

jirka

Reply via email to