From: Peter Zijlstra <peterz@infradead.org>
To: Pawel Moll <pawel.moll@arm.com>
Cc: Richard Cochran <richardcochran@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>,
Ingo Molnar <mingo@redhat.com>, Paul Mackerras <paulus@samba.org>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
John Stultz <john.stultz@linaro.org>,
linux-kernel@vger.kernel.org, linux-api@vger.kernel.org
Subject: Re: [PATCH 2/2] perf: Userspace software event and ioctl
Date: Mon, 29 Sep 2014 17:32:57 +0200 [thread overview]
Message-ID: <20140929153257.GM4140@worktop.programming.kicks-ass.net> (raw)
In-Reply-To: <1411050873-9310-3-git-send-email-pawel.moll@arm.com>
On Thu, Sep 18, 2014 at 03:34:33PM +0100, Pawel Moll wrote:
> This patch adds a PERF_COUNT_SW_USERSPACE_EVENT type,
> which can be generated by user with PERF_EVENT_IOC_ENTRY
> ioctl command, which injects an event of said type into
> the perf buffer.
>
> The ioctl takes a pointer to struct perf_event_userspace
> as an argument. The structure begins with a 64-bit
> integer type value, which determines meaning of the
> following content (size/data pair). Type 0 are defined
> as zero-terminated strings, other types are defined by
> userspace (the perf tool will contain a list of
> known values with reference implementation of data
> content parsers).
>
> Possible use cases for this feature:
>
> - "perf_printf" like mechanism to add logging messages
> to one's perf session; an example implementation:
>
> int perf_printf(int perf_fd, const char *fmt, ...)
> {
> struct perf_event_userspace *event;
> int size;
> va_list ap;
> int err;
>
> va_start(ap, fmt);
>
> size = vsnprintf(NULL, 0, fmt, ap) + 1;
> event = malloc(sizeof(*event) + size);
> if (!event) {
> va_end(ap);
> return -1;
> }
>
> event->type = 0;
> event->size = size;
> vsnprintf(event->data, size, fmt, ap);
>
> va_end(ap);
>
> err = ioctl(perf_fd, PERF_EVENT_IOC_USERSPACE, event);
>
> free(event);
>
> return err < 0 ? err : size - 1;
> }
>
> - "perf_printf" used by for perf trace tool,
> where certain traced process' calls are intercepted
> (eg. using LD_PRELOAD) and treated as logging
> requests, with it output redirected into the
> perf buffer
>
> - synchronisation of performance data generated in
> user space with the perf stream coming from the kernel.
> For example, the marker can be inserted by a JIT engine
> after it generated portion of the code, but before the
> code is executed for the first time, allowing the
> post-processor to pick the correct debugging
> information.
>
> - other example is a system profiling tool taking data
> from other sources than just perf, which generates a marker
> at the beginning at at the end of the session
> (also possibly periodically during the session) to
> synchronise kernel timestamps with clock values
> obtained in userspace (gtod or raw_monotonic).
Feel free to use up to 70 chars wide text in Changelogs. Most editors
have support for reflowing text. No need to keep it this narrow.
Also none of the many words above describe
PERF_SAMPLE_USERSPACE_EVENT(), wth is that about?
next prev parent reply other threads:[~2014-09-29 15:33 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-18 14:34 [PATCH 0/2] perf: User/kernel time correlation and event generation Pawel Moll
2014-09-18 14:34 ` [PATCH 1/2] perf: Add sampling of the raw monotonic clock Pawel Moll
2014-09-29 15:28 ` Peter Zijlstra
2014-09-29 15:45 ` Pawel Moll
2014-09-18 14:34 ` [PATCH 2/2] perf: Userspace software event and ioctl Pawel Moll
2014-09-23 17:02 ` Pawel Moll
2014-09-24 7:49 ` Ingo Molnar
2014-09-25 17:20 ` Pawel Moll
2014-09-25 18:33 ` Ingo Molnar
2014-09-26 10:48 ` Pawel Moll
2014-09-26 11:23 ` Ingo Molnar
2014-09-26 11:26 ` Pawel Moll
2014-09-26 11:31 ` Ingo Molnar
2014-09-27 17:14 ` Frederic Weisbecker
2014-09-29 14:52 ` Pawel Moll
2014-09-29 15:32 ` Peter Zijlstra [this message]
2014-09-29 15:53 ` Pawel Moll
2014-11-03 14:48 ` Tomeu Vizoso
2014-11-03 15:04 ` Pawel Moll
2014-09-18 15:02 ` [PATCH 0/2] perf: User/kernel time correlation and event generation Christopher Covington
2014-09-18 15:07 ` Pawel Moll
2014-09-18 15:48 ` Christopher Covington
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140929153257.GM4140@worktop.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=acme@kernel.org \
--cc=john.stultz@linaro.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=paulus@samba.org \
--cc=pawel.moll@arm.com \
--cc=richardcochran@gmail.com \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox