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.028 / U:1.992 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site