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]
Date:	Wed, 29 Jul 2009 11:22:52 +0200
From:	Peter Zijlstra <a.p.zijlstra@...llo.nl>
To:	prasad@...ux.vnet.ibm.com
Cc:	Frederic Weisbecker <fweisbec@...il.com>,
	Ingo Molnar <mingo@...e.hu>,
	LKML <linux-kernel@...r.kernel.org>,
	Steven Rostedt <rostedt@...dmis.org>,
	Thomas Gleixner <tglx@...utronix.de>,
	Mike Galbraith <efault@....de>,
	Paul Mackerras <paulus@...ba.org>,
	Arnaldo Carvalho de Melo <acme@...hat.com>,
	Lai Jiangshan <laijs@...fujitsu.com>,
	Anton Blanchard <anton@...ba.org>,
	Li Zefan <lizf@...fujitsu.com>,
	Zhaolei <zhaolei@...fujitsu.com>,
	KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>,
	Mathieu Desnoyers <mathieu.desnoyers@...ymtl.ca>,
	Alan Stern <stern@...land.harvard.edu>
Subject: Re: [RFC][PATCH 5/5] perfcounter: Add support for kernel hardware
 breakpoints

On Wed, 2009-07-29 at 12:07 +0530, K.Prasad wrote:

> > That still doesn't provide per-cpu breakpoints.
> > 
> 
> Yes, it doesn't provide a per-cpu only implementation. One can obtain
> the per-cpu data from the system-wide breakpoints by filtering it for a
> given CPU (agreed, it will associated overhead).
> 
> A true per-cpu breakpoint implementation that co-exists with
> system-wide and per-task breakpoints will be difficult. It might require
> the re-introduction of some old features and a few new ones (like switching
> between kernel and user-space breakpoints at syscall time) that were
> rejected earlier by the community.

I'm not clear on why you'd need to switch breakpoints on syscall entry.
You can simply leave the kernel address breakpoint around in userspace,
they're not able to poke at that address space anyway.

> Also, the reason for a per-cpu only breakpoint (user and kernel-space)
> isn't very obvious. While kernel variables can be read/written
> throughout the system and user-space variables are per-task, the need
> for obtaining per-cpu information isn't clear.

Well, suppose you're monitoring a per-cpu variable, or interested in the
effects of a workload confined to 1 cpu or node, there is no reason to
have this breakpoint on all cpus.

> 
> This is a little confusing. I'm trying to understand which of the
> questions below does perf-counter try to answer. i) and ii) is what I
> thought would be, and asking iii) doesn't make much sense. What do you
> think?
> 
> i) Tell me how many times kernel variable 'x' was updated when task 'a'
> was scheduled
> ii) Tell me how many times kernel variable 'x' was updated on the system
> since I registered for the breakpoint
> iii) Tell me how many times kernel variable 'x' was updated on CPU 'n'

It's 1 and 3. perf-counters doesn't deal with system wide for the
reasons given above.

If you want system wide, you can create a perf counter for each cpu.

But the larger the machine gets, the less likely it is that that is what
you're after. Being per-cpu allows you to do things on a
per-node/socket/etc.. basis which is impossible to do when you limit
yourself to per task or system wide.

--
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