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: <1324380648.24621.49.camel@twins>
Date:	Tue, 20 Dec 2011 12:30:48 +0100
From:	Peter Zijlstra <peterz@...radead.org>
To:	Jiri Olsa <jolsa@...hat.com>
Cc:	acme@...hat.com, mingo@...e.hu, paulus@...ba.org,
	cjashfor@...ux.vnet.ibm.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/3] perf, tool: Add parser generator for events parsing

On Tue, 2011-12-20 at 11:47 +0100, Peter Zijlstra wrote:

> > any idea/details/specifics how they might look like? ;)
> 
> The current idea is that they'd live in a place like:
> 
>   /sys/bus/event_source/devices/$pmu/events/$event
> 
> and when you read them they contain a full event_raw style string so you
> could do things like:
> 
>   perf record -e `cat $sysfsfile` or so
> 
> (or maybe without the 'r' prefix).
> 
> The idea was to have some $pmu:$event like syntax, but seeing that ':'
> is already used quite a lot, there's maybe a more suitable separator.
> Maybe '/' would do, yielding things like cpu/instructions.
> 
> Then again, it might make sense to restructure the syntax without
> considerations for the status quo and see if we can come up with
> something a little more consistent, the above event_* things are quite a
> hodge podge, syntax wise.
> 
> While I appreciate that they are the result of organic growth, it
> doesn't mean we shouldn't try and restructure stuff once in a while when
> it makes sense.

There's also the raw event format idea, where

 /sys/bus/event_source/devices/$pmu/format

contains a syntax description on how to construct raw events, for intel
(!p4) it would be something as simple as a bitfield definition:

event	config-0:7
umask	config-8:15
usr	config-16
os	config-17
edge	config-18
any	config-21
inv	config-23
cmask	config-24:31

nhm-dmnd_data_rd	config1-0
nhm-dmnd_rfo		config1-1
nhm-dmnd_ifetch		config1-2
...

(the real syntax will likely be a little more complex in order to be
able to express the various other architectures their raw input format).

This would allow us to write things like:

 perf record -e cpu/event=0x34,umask=0x01,inv,cmask=2

or to give an offcore example:

 perf record -e
cpu/offcore,nhm-dmnd_data_rd,nhm-non_dram,nhm-remote_dram,nhm-local_dram

Where cpu/events/offcore would contain: 0x01b7 to fill out config.

We should also extend this to allow per event setting of the period by
adding a ,period=10000 or so.

 perf record -e cpu/cycles,period=100000

should then give us a cycle counter with a fixed period of .1M cycles.

I think there's currently means to provide this period, but I don't
actually know the syntax for it.

But note, the above again uses ',' as separator, which will be much
confused with the group idea you already proposed. So we need some
consideration on how we all want to express this.



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