Messages in this thread | | | Date | Tue, 29 Jun 2010 17:06:38 +0200 | From | Frederic Weisbecker <> | Subject | Re: [RFC][PATCH 10/11] perf: Shrink hw_perf_event |
| |
On Thu, Jun 24, 2010 at 04:28:14PM +0200, Peter Zijlstra wrote: > 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>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
> --- > 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); > } > >
| |