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: <4FB32032.3000509@gmail.com>
Date:	Tue, 15 May 2012 21:34:10 -0600
From:	David Ahern <dsahern@...il.com>
To:	Stephane Eranian <eranian@...gle.com>
CC:	linux-kernel@...r.kernel.org, peterz@...radead.org, mingo@...e.hu,
	acme@...hat.com
Subject: Re: [PATCH v2 4/5] perf record: add meta-data support for pipe-mode

On 5/15/12 5:28 AM, Stephane Eranian wrote:
> This patch adds the meta-data header support for perf record
> when used in pipe mode: perf record -o -
>
> Up until now, meta-data was only available when perf record
> was used in "regular" mode, i.e., generating a perf.data file.
> For users depending on pipe mode, no host, event header information
> was gathered. This patch addresses this limitation.
>
> The difficulty in pipe mode is that information needs to be written
> sequentially to the pipe. Meta data headers are usually generated
> (and also expected) at the beginning of the file (or piped output).
> To solve this problem, we introduce new synthetic record types,
> one for each meta-data type. The approach is similar to what
> is already used for BUILD_ID and TRACING_DATA.
>
> We have modified util/header.c such that the same routines are used
> to generate and read the meta-data information regardless of pipe-mode
> vs. regular mode. To make this work, we added a new struct called
> feat_fd which encapsulates all the information necessary to read or
> write meta-data information to a file/pipe or from a file/pipe.
>
> It should be noted that there is a limitation with the current
> perf in terms of endianess in pipe mode. Perf assumes the records
> are generated using the same endianess during collection and
> analysis.  That is always the case with the example shown below.
> However, one could also do:
> $ perf record -o - noploop 2 | perf inject -b>perf.data
> $ cat perf.data | perf report -i -
>
> With this patch, it is possible to get:
>   $ perf record -o - noploop 2 | perf inject -b | perf report -i -
>        # ========
>        # captured on: Fri Jan 20 18:13:55 2012
>        # ========
>        #
>        # hostname : quad
>        # os release : 3.2.0-rc7-tip
>        # perf version : 3.2.0
>        # arch : x86_64
>        # nrcpus online : 4
>        # nrcpus avail : 4
>        # cpudesc : Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
>        # cpuid : GenuineIntel,6,15,11
>        # total memory : 8092884 kB
>        ...
>        # HEADER_CPU_TOPOLOGY info available, use -I to display
>        noploop for 2 seconds
>        [ perf record: Woken up 1 times to write data ]
>        [ perf record: Captured and wrote 0.084 MB - (~3677 samples) ]
>          99.80%  noploop  noploop            [.] noploop
>           0.19%  noploop  [kernel.kallsyms]  [k] radix_tree_gang_lookup
>
> Signed-off-by: Stephane Eranian<eranian@...gle.com>

I love the feature and it works nicely, but there has been push back on 
adding more synthesized events.  Also the size of the patch is a bit 
much to take in. If there is no objection to the synthesized can you 
break the patch up -- e.g., introduce the events in one, synthesis and 
processing functions in another, plug into the commands, ...

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