lkml.org 
[lkml]   [2010]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC][PATCH 10/11] perf: Shrink hw_perf_event
    Use hw_perf_event::period_left instead of hw_perf_event::remaning and
    win back 8 bytes.

    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    ---
    include/linux/perf_event.h | 1 -
    kernel/perf_event.c | 13 ++++++-------
    2 files changed, 6 insertions(+), 8 deletions(-)

    Index: linux-2.6/include/linux/perf_event.h
    ===================================================================
    --- linux-2.6.orig/include/linux/perf_event.h
    +++ linux-2.6/include/linux/perf_event.h
    @@ -529,7 +529,6 @@ struct hw_perf_event {
    int last_cpu;
    };
    struct { /* software */
    - s64 remaining;
    struct hrtimer hrtimer;
    };
    #ifdef CONFIG_HAVE_HW_BREAKPOINT
    Index: linux-2.6/kernel/perf_event.c
    ===================================================================
    --- linux-2.6.orig/kernel/perf_event.c
    +++ linux-2.6/kernel/perf_event.c
    @@ -4590,14 +4590,13 @@ static void perf_swevent_start_hrtimer(s
    hrtimer_init(&hwc->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
    hwc->hrtimer.function = perf_swevent_hrtimer;
    if (hwc->sample_period) {
    - u64 period;
    + s64 period = local64_read(&hwc->period_left);

    - if (hwc->remaining) {
    - if (hwc->remaining < 0)
    + if (period) {
    + if (period < 0)
    period = 10000;
    - else
    - period = hwc->remaining;
    - hwc->remaining = 0;
    +
    + local64_set(&hwc->period_left, 0);
    } else {
    period = max_t(u64, 10000, hwc->sample_period);
    }
    @@ -4613,7 +4612,7 @@ static void perf_swevent_cancel_hrtimer(

    if (hwc->sample_period) {
    ktime_t remaining = hrtimer_get_remaining(&hwc->hrtimer);
    - hwc->remaining = ktime_to_ns(remaining);
    + local64_set(&hwc->period_left, ktime_to_ns(remaining));

    hrtimer_cancel(&hwc->hrtimer);
    }



    \
     
     \ /
      Last update: 2010-06-24 16:43    [W:0.031 / U:29.864 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site