lkml.org 
[lkml]   [2012]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH 1/3] perf: use hrtimer for event multiplexing
From
On Fri, Sep 7, 2012 at 5:39 PM, Peter Zijlstra <peterz@infradead.org> wrote:
> On Fri, 2012-09-07 at 16:29 +0200, Stephane Eranian wrote:
>> @@ -148,6 +148,15 @@ static LIST_HEAD(pmus);
>> static DEFINE_MUTEX(pmus_lock);
>> static struct srcu_struct pmus_srcu;
>>
>> +struct perf_cpu_hrtimer {
>> + struct hrtimer hrtimer;
>> + int active;
>> +};
>> +
>> +static DEFINE_PER_CPU(struct list_head, rotation_list);
>> +
>> +static DEFINE_PER_CPU(struct perf_cpu_hrtimer, perf_cpu_hrtimer);
>
>
> How about sticking the hrtimer in perf_cpu_context so you can have a
> different rotation interval per PMU ?
>
I think having different intervals would be a good thing, especially for uncore.
But now, I am wondering how this could work without too much overhead.
Looks like you're suggesting arming multiple hrtimers if multiple PMU are
overcommitted. Is that right? As opposed to having a PMU multiplier off of a
single per-cpu hrtimer.

> Sorta like e9d2b064149ff7ef4acbc65a1b9374ac8b218d3e removed. Stopping
> the timer when the PMU isn't over committed should solve the NOHZ
> problem I think.

Yeah, my patch does solve this. That's what I show in my example in the intro
msg.


\
 
 \ /
  Last update: 2012-09-07 20:04    [W:0.074 / U:0.588 seconds]
©2003-2014 Jasper Spaans. Advertise on this site