mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 13:44:26 -04:00
perf: Add perf_output_skip function to skip bytes in sample
Introducing perf_output_skip function to be able to skip data within the perf ring buffer. When writing data into perf ring buffer we first reserve needed place in ring buffer and then copy the actual data. There's a possibility we won't be able to fill all the reserved size with data, so we need a way to skip the remaining bytes. This is going to be useful when storing the user stack dump, where we might end up with less data than we originally requested. Signed-off-by: Jiri Olsa <jolsa@redhat.com> Acked-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: "Frank Ch. Eigler" <fche@redhat.com> Cc: Arun Sharma <asharma@fb.com> Cc: Benjamin Redelings <benjamin.redelings@nescent.org> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> Cc: Cyrill Gorcunov <gorcunov@openvz.org> Cc: Frank Ch. Eigler <fche@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Robert Richter <robert.richter@amd.com> Cc: Stephane Eranian <eranian@google.com> Cc: Tom Zanussi <tzanussi@gmail.com> Cc: Ulrich Drepper <drepper@gmail.com> Link: http://lkml.kernel.org/r/1344345647-11536-5-git-send-email-jolsa@redhat.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
91d7753a45
commit
5685e0ff45
3 changed files with 12 additions and 0 deletions
|
|
@ -114,6 +114,10 @@ static inline int memcpy_common(void *dst, const void *src, size_t n)
|
|||
|
||||
DEFINE_OUTPUT_COPY(__output_copy, memcpy_common)
|
||||
|
||||
#define MEMCPY_SKIP(dst, src, n) (n)
|
||||
|
||||
DEFINE_OUTPUT_COPY(__output_skip, MEMCPY_SKIP)
|
||||
|
||||
#ifndef arch_perf_out_copy_user
|
||||
#define arch_perf_out_copy_user __copy_from_user_inatomic
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -188,6 +188,12 @@ unsigned int perf_output_copy(struct perf_output_handle *handle,
|
|||
return __output_copy(handle, buf, len);
|
||||
}
|
||||
|
||||
unsigned int perf_output_skip(struct perf_output_handle *handle,
|
||||
unsigned int len)
|
||||
{
|
||||
return __output_skip(handle, NULL, len);
|
||||
}
|
||||
|
||||
void perf_output_end(struct perf_output_handle *handle)
|
||||
{
|
||||
perf_output_put_handle(handle);
|
||||
|
|
|
|||
Loading…
Reference in a new issue