lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100629150635.GH5318@nowhere>
Date:	Tue, 29 Jun 2010 17:06:38 +0200
From:	Frederic Weisbecker <fweisbec@...il.com>
To:	Peter Zijlstra <a.p.zijlstra@...llo.nl>
Cc:	paulus <paulus@...ba.org>,
	stephane eranian <eranian@...glemail.com>,
	Robert Richter <robert.richter@....com>,
	Will Deacon <will.deacon@....com>,
	Paul Mundt <lethal@...ux-sh.org>,
	Cyrill Gorcunov <gorcunov@...il.com>,
	Lin Ming <ming.m.lin@...el.com>,
	Yanmin <yanmin_zhang@...ux.intel.com>,
	Deng-Cheng Zhu <dengcheng.zhu@...il.com>,
	David Miller <davem@...emloft.net>,
	linux-kernel@...r.kernel.org
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@...llo.nl>


Acked-by: Frederic Weisbecker <fweisbec@...il.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);
>  	}
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ