Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[PATCH 3/7] perf tools: Set event->header.misc to PERF_RECORD_MISC_GUEST_USER if machine is guest.

2 views
Skip to first unread message

Dongsheng Yang

unread,
Dec 20, 2013, 3:00:01 AM12/20/13
to
When we synthesize the mmap events of user space, if machine is guest, we should
set the event->header.misc to PERF_RECORD_MISC_GUEST_USER, rather than
PERF_RECORD_MISC_USER.

Signed-off-by: Dongsheng Yang <yangd...@cn.fujitsu.com>
---
tools/perf/util/event.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index c75046f..2d90ed8 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -220,7 +220,10 @@ static int perf_event__synthesize_mmap_events(struct perf_tool *tool,
/*
* Just like the kernel, see __perf_event_mmap in kernel/perf_event.c
*/
- event->header.misc = PERF_RECORD_MISC_USER;
+ if (machine__is_host(machine))
+ event->header.misc = PERF_RECORD_MISC_USER;
+ else
+ event->header.misc = PERF_RECORD_MISC_GUEST_USER;

if (prot[2] != 'x') {
if (!mmap_data || prot[0] != 'r')
--
1.8.2.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Dongsheng Yang

unread,
Dec 20, 2013, 3:00:01 AM12/20/13
to
# perf kvm --guestmount /tmp/guestmount/ record -a sleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.828 MB perf.data.guest (~36163 samples) ]

# perf kvm --guestmount /tmp/guestmount/ report
Samples: 4K of event 'cycles', Event count (approx.): 2662750816
8.67% [guest/9217] dd [u] 0x0000000000004e90
6.62% [guest/9217] [guest.kernel.kallsyms.9217] [g] fget_light
6.17% [guest/9217] [guest.kernel.kallsyms.9217] [g] system_call
5.97% [guest/9217] [guest.kernel.kallsyms.9217] [g] __srcu_read_lock
5.53% [guest/9217] [guest.kernel.kallsyms.9217] [g] __srcu_read_unlock
5.47% [guest/9217] [guest.kernel.kallsyms.9217] [g] __audit_syscall_exit
5.38% [guest/9217] [guest.kernel.kallsyms.9217] [g] fsnotify
5.32% [guest/9217] [guest.kernel.kallsyms.9217] [g] system_call_after_swapgs
4.45% [guest/9217] libc-2.17.so [u] __GI___libc_write
4.15% [guest/9217] [guest.kernel.kallsyms.9217] [g] sys_write
3.97% [guest/9217] [guest.kernel.kallsyms.9217] [g] vfs_read
3.78% [guest/9217] libc-2.17.so [u] __GI___libc_read

Signed-off-by: Dongsheng Yang <yangd...@cn.fujitsu.com>
---
tools/perf/builtin-record.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index c1c1200..ac1e540 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -279,6 +279,9 @@ static void perf_event__synthesize_guest_os(struct machine *machine, void *data)
{
int err;
struct perf_tool *tool = data;
+ struct perf_record *rec = container_of(tool, struct perf_record, tool);
+ struct perf_record_opts *opts = &rec->opts;
+ struct perf_evlist *evsel_list = rec->evlist;
/*
*As for guest kernel when processing subcommand record&report,
*we arrange module mmap prior to guest kernel mmap and trigger
@@ -305,6 +308,13 @@ static void perf_event__synthesize_guest_os(struct machine *machine, void *data)
if (err < 0)
pr_err("Couldn't record guest kernel [%d]'s reference"
" relocation symbol.\n", machine->pid);
+
+ err = __machine__synthesize_threads(machine, tool, &opts->target, evsel_list->threads,
+ process_synthesized_event, opts->sample_address);
+
+ if (err < 0)
+ pr_err("Couldn't record guest userspace [%d]'s reference"
+ " relocation symbol.\n", machine->pid);
}

static struct perf_event_header finished_round_event = {

Dongsheng Yang

unread,
Dec 20, 2013, 3:00:01 AM12/20/13
to
When we synthesize the threads, we are looking for the infomation
under /proc. But it is only for host.

This patch look for the path of proc under machine->root_dir, then
XXX__synthesize_threads() functions can support guest machines.

Signed-off-by: Dongsheng Yang <yangd...@cn.fujitsu.com>
---
tools/perf/util/event.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 44992ed..c75046f 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -129,7 +129,8 @@ static pid_t perf_event__synthesize_comm(struct perf_tool *tool,
goto out;
}

- snprintf(filename, sizeof(filename), "/proc/%d/task", pid);
+ snprintf(filename, sizeof(filename), "%s/proc/%d/task",
+ machine->root_dir, pid);

tasks = opendir(filename);
if (tasks == NULL) {
@@ -178,7 +179,8 @@ static int perf_event__synthesize_mmap_events(struct perf_tool *tool,
FILE *fp;
int rc = 0;

- snprintf(filename, sizeof(filename), "/proc/%d/maps", pid);
+ snprintf(filename, sizeof(filename), "%s/proc/%d/maps",
+ machine->root_dir, pid);

fp = fopen(filename, "r");
if (fp == NULL) {
@@ -387,6 +389,7 @@ int perf_event__synthesize_threads(struct perf_tool *tool,
struct machine *machine, bool mmap_data)
{
DIR *proc;
+ char proc_path[PATH_MAX];
struct dirent dirent, *next;
union perf_event *comm_event, *mmap_event;
int err = -1;
@@ -399,7 +402,9 @@ int perf_event__synthesize_threads(struct perf_tool *tool,
if (mmap_event == NULL)
goto out_free_comm;

- proc = opendir("/proc");
+ snprintf(proc_path, sizeof(proc_path), "%s/proc", machine->root_dir);
+ proc = opendir(proc_path);
+
if (proc == NULL)
goto out_free_mmap;

Dongsheng Yang

unread,
Dec 20, 2013, 3:00:01 AM12/20/13
to
As the default guest is designed to handle orphan kernel symboles
with --guestkallsysms and --guestmoudles, it has no user space. So we
should skip synthesizing threads if machine is default guest.

Signed-off-by: Dongsheng Yang <yangd...@cn.fujitsu.com>
---
tools/perf/util/event.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 93c6701..598b73e 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -133,6 +133,9 @@ static pid_t perf_event__synthesize_comm(struct perf_tool *tool,
goto out;
}

+ if (machine__is_default_guest(machine))
+ return 0;
+
snprintf(filename, sizeof(filename), "%s/proc/%d/task",
machine->root_dir, pid);

@@ -183,6 +186,9 @@ static int perf_event__synthesize_mmap_events(struct perf_tool *tool,
FILE *fp;
int rc = 0;

+ if (machine__is_default_guest(machine))
+ return 0;
+
snprintf(filename, sizeof(filename), "%s/proc/%d/maps",
machine->root_dir, pid);

@@ -409,6 +415,9 @@ int perf_event__synthesize_threads(struct perf_tool *tool,
if (mmap_event == NULL)
goto out_free_comm;

+ if (machine__is_default_guest(machine))
+ return 0;
+
snprintf(proc_path, sizeof(proc_path), "%s/proc", machine->root_dir);
proc = opendir(proc_path);

Dongsheng Yang

unread,
Dec 20, 2013, 3:00:01 AM12/20/13
to
This patch remove a TODO in thread__find_addr_map() and add support of PERF_RECORD_MISC_GUEST_USER.

Signed-off-by: Dongsheng Yang <yangd...@cn.fujitsu.com>
---
tools/perf/util/event.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 6948768..44992ed 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -658,15 +658,10 @@ void thread__find_addr_map(struct thread *thread,
al->level = 'g';
mg = &machine->kmaps;
load_map = true;
+ } else if (cpumode == PERF_RECORD_MISC_GUEST_USER && perf_guest) {
+ al->level = 'u';
} else {
- /*
- * 'u' means guest os user space.
- * TODO: We don't support guest user space. Might support late.
- */
- if (cpumode == PERF_RECORD_MISC_GUEST_USER && perf_guest)
- al->level = 'u';
- else
- al->level = 'H';
+ al->level = 'H';
al->map = NULL;

if ((cpumode == PERF_RECORD_MISC_GUEST_USER ||

Dongsheng Yang

unread,
Dec 20, 2013, 3:00:02 AM12/20/13
to
# perf kvm --guestmount /tmp/guestmount/ top
Samples: 1K of event 'cycles', Event count (approx.): 259112905
17.34% libcrypto.so.1.0.1e [u] 0x000000000007d971
5.60% [guest.kernel] [g] kallsyms_expand_symbol
5.44% libcrypto.so.1.0.1e [u] md5_block_asm_data_order
4.09% [guest.kernel] [g] number.isra.1
3.59% [guest.kernel] [g] vsnprintf
3.52% sshd [u] 0x00000000000441c0
2.37% [guest.kernel] [g] format_decode
2.36% [guest.kernel] [g] memcpy
2.11% [guest.kernel] [g] strnlen

Signed-off-by: Dongsheng Yang <yangd...@cn.fujitsu.com>
---
tools/perf/builtin-top.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 03d37a7..670bd0b 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -821,11 +821,9 @@ static void perf_top__mmap_read_idx(struct perf_top *top, int idx)
break;
case PERF_RECORD_MISC_GUEST_USER:
++top->guest_us_samples;
- /*
- * TODO: we don't process guest user from host side
- * except simple counting.
- */
- /* Fall thru */
+ machine = perf_session__find_machine(session,
+ sample.pid);
+ break;
default:
goto next_event;
}
@@ -912,6 +910,7 @@ static int __cmd_top(struct perf_top *top)
struct perf_record_opts *opts = &top->record_opts;
pthread_t thread;
int ret;
+ struct rb_node *nd;

top->session = perf_session__new(NULL, false, NULL);
if (top->session == NULL)
@@ -931,6 +930,12 @@ static int __cmd_top(struct perf_top *top)

machine__synthesize_threads(&top->session->machines.host, &opts->target,
top->evlist->threads, false);
+
+ for (nd = rb_first(&top->session->machines.guests); nd; nd = rb_next(nd)) {
+ struct machine *pos = rb_entry(nd, struct machine, rb_node);
+ machine__synthesize_threads(pos, &opts->target, top->evlist->threads, false);
+ }
+
ret = perf_top__start_counters(top);
if (ret)
goto out_delete;

Dongsheng Yang

unread,
Dec 20, 2013, 3:00:02 AM12/20/13
to
Hi Arnaldo:
Please help to review this patchset.

Changelog:
- v2:
* splite the first commit.

Dongsheng Yang (7):
perf tools: Add support for PERF_RECORD_MISC_GUEST_USER in
thread__find_addr_map().
perf tools: Find the proc info under machine->root_dir.
perf tools: Set event->header.misc to PERF_RECORD_MISC_GUEST_USER if
machine is guest.
perf tools: Use machine->pid for tgid if mahicne is guest.
perf tools: Do not synthesize the treads of default guest.
perf tools: Add support of user space symbols for guest in perf kvm
top.
perf tools: Add support of user space symbols for guest in perf kvm
record.

tools/perf/builtin-record.c | 10 ++++++++++
tools/perf/builtin-top.c | 15 ++++++++++-----
tools/perf/util/event.c | 44 ++++++++++++++++++++++++++++++--------------
3 files changed, 50 insertions(+), 19 deletions(-)

Dongsheng Yang

unread,
Dec 20, 2013, 3:00:02 AM12/20/13
to
When we synthesize an comm event, if machine is guest, we should
use the pid of machine as the event->comm.pid, rather than tgid
of thread.

Signed-off-by: Dongsheng Yang <yangd...@cn.fujitsu.com>
---
tools/perf/util/event.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 2d90ed8..93c6701 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -106,8 +106,12 @@ static pid_t perf_event__synthesize_comm(struct perf_tool *tool,

memset(&event->comm, 0, sizeof(event->comm));

- tgid = perf_event__get_comm_tgid(pid, event->comm.comm,
- sizeof(event->comm.comm));
+ if (machine__is_host(machine))
+ tgid = perf_event__get_comm_tgid(pid, event->comm.comm,
+ sizeof(event->comm.comm));
+ else
+ tgid = machine->pid;
+
if (tgid < 0)
goto out;

David Ahern

unread,
Dec 20, 2013, 10:10:02 AM12/20/13
to
On 12/20/13, 1:52 PM, Dongsheng Yang wrote:
> Hi Arnaldo:
> Please help to review this patchset.
>
> Changelog:
> - v2:
> * splite the first commit.
>

At best you are creating knowledge of running tasks in the VMs when the
perf session is started. That's it. That information cannot be used
since the host has no idea what task is running in a VM at any given
moment. No insight into process creation, mmaps, exits, etc.

David

Dongsheng Yang

unread,
Dec 29, 2013, 10:10:01 PM12/29/13
to
On 12/20/2013 10:02 AM, David Ahern wrote:
> On 12/20/13, 1:52 PM, Dongsheng Yang wrote:
>> Hi Arnaldo:
>> Please help to review this patchset.
>>
>> Changelog:
>> - v2:
>> * splite the first commit.
>>
>
> At best you are creating knowledge of running tasks in the VMs when
> the perf session is started. That's it. That information cannot be
> used since the host has no idea what task is running in a VM at any
> given moment. No insight into process creation, mmaps, exits, etc.
>

Yes, you are right. host has no idea what task is running in a VM.

Thanx for your reply.

Yang

tip-bot for Dongsheng Yang

unread,
Jan 12, 2014, 1:40:03 PM1/12/14
to
Commit-ID: fb50bb43d051d12aad9e2337d0d5d14d0d3dd281
Gitweb: http://git.kernel.org/tip/fb50bb43d051d12aad9e2337d0d5d14d0d3dd281
Author: Dongsheng Yang <yangd...@cn.fujitsu.com>
AuthorDate: Fri, 20 Dec 2013 15:52:56 -0500
Committer: Arnaldo Carvalho de Melo <ac...@redhat.com>
CommitDate: Mon, 23 Dec 2013 16:49:49 -0300

perf tools: Add support for PERF_RECORD_MISC_GUEST_USER in thread__find_addr_map().

This patch remove a TODO in thread__find_addr_map() and add support of
PERF_RECORD_MISC_GUEST_USER.

Signed-off-by: Dongsheng Yang <yangd...@cn.fujitsu.com>
Cc: David Ahern <dsa...@gmail.com>
Cc: Ingo Molnar <mi...@kernel.org>
Cc: Jiri Olsa <jo...@redhat.com>
Cc: Namhyung Kim <namhyu...@lge.com>
Link: http://lkml.kernel.org/r/3dd652201171a19c910b500984c7c3590...@cn.fujitsu.com
Signed-off-by: Arnaldo Carvalho de Melo <ac...@redhat.com>
---
tools/perf/util/event.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index fe20227..484e994 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -659,15 +659,10 @@ void thread__find_addr_map(struct thread *thread,
al->level = 'g';
mg = &machine->kmaps;
load_map = true;
+ } else if (cpumode == PERF_RECORD_MISC_GUEST_USER && perf_guest) {
+ al->level = 'u';
} else {
- /*
- * 'u' means guest os user space.
- * TODO: We don't support guest user space. Might support late.
- */
- if (cpumode == PERF_RECORD_MISC_GUEST_USER && perf_guest)
- al->level = 'u';
- else
- al->level = 'H';
+ al->level = 'H';
al->map = NULL;

if ((cpumode == PERF_RECORD_MISC_GUEST_USER ||
--

tip-bot for Dongsheng Yang

unread,
Jan 12, 2014, 1:40:03 PM1/12/14
to
Commit-ID: 73547aacdcd45cdf8b53245ded9593d7c587501a
Gitweb: http://git.kernel.org/tip/73547aacdcd45cdf8b53245ded9593d7c587501a
Author: Dongsheng Yang <yangd...@cn.fujitsu.com>
AuthorDate: Fri, 20 Dec 2013 15:52:58 -0500
Committer: Arnaldo Carvalho de Melo <ac...@redhat.com>
CommitDate: Mon, 23 Dec 2013 16:49:50 -0300

perf tools: Set event->header.misc to PERF_RECORD_MISC_GUEST_USER if machine is guest.

When we synthesize the mmap events of user space, if machine is guest,
we should set the event->header.misc to PERF_RECORD_MISC_GUEST_USER,
rather than PERF_RECORD_MISC_USER.

Signed-off-by: Dongsheng Yang <yangd...@cn.fujitsu.com>
Cc: David Ahern <dsa...@gmail.com>
Cc: Ingo Molnar <mi...@kernel.org>
Cc: Jiri Olsa <jo...@redhat.com>
Cc: Namhyung Kim <namhyu...@lge.com>
Link: http://lkml.kernel.org/r/e6f8ff6505d2db8a4b21bff8e448bb9be...@cn.fujitsu.com
Signed-off-by: Arnaldo Carvalho de Melo <ac...@redhat.com>
---
tools/perf/util/event.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index a61726e..07c0783 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -220,7 +220,10 @@ static int perf_event__synthesize_mmap_events(struct perf_tool *tool,
/*
* Just like the kernel, see __perf_event_mmap in kernel/perf_event.c
*/
- event->header.misc = PERF_RECORD_MISC_USER;
+ if (machine__is_host(machine))
+ event->header.misc = PERF_RECORD_MISC_USER;
+ else
+ event->header.misc = PERF_RECORD_MISC_GUEST_USER;

if (prot[2] != 'x') {
if (!mmap_data || prot[0] != 'r')
--

tip-bot for Dongsheng Yang

unread,
Jan 12, 2014, 1:40:05 PM1/12/14
to
Commit-ID: f5db57c4c47f3985dfc677152e25636a3401fa13
Gitweb: http://git.kernel.org/tip/f5db57c4c47f3985dfc677152e25636a3401fa13
Author: Dongsheng Yang <yangd...@cn.fujitsu.com>
AuthorDate: Fri, 20 Dec 2013 15:52:59 -0500
Committer: Arnaldo Carvalho de Melo <ac...@redhat.com>
CommitDate: Mon, 23 Dec 2013 16:49:50 -0300

perf tools: Use machine->pid for tgid if machine is guest.

When we synthesize an comm event, if machine is guest, we should
use the pid of machine as the event->comm.pid, rather than tgid
of thread.

Signed-off-by: Dongsheng Yang <yangd...@cn.fujitsu.com>
Cc: David Ahern <dsa...@gmail.com>
Cc: Ingo Molnar <mi...@kernel.org>
Cc: Jiri Olsa <jo...@redhat.com>
Cc: Namhyung Kim <namhyu...@lge.com>
Link: http://lkml.kernel.org/r/22455abe107c618a361e7b667ad0f098f...@cn.fujitsu.com
Signed-off-by: Arnaldo Carvalho de Melo <ac...@redhat.com>
---
tools/perf/util/event.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 07c0783..2905771 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -106,8 +106,12 @@ static pid_t perf_event__synthesize_comm(struct perf_tool *tool,

memset(&event->comm, 0, sizeof(event->comm));

- tgid = perf_event__get_comm_tgid(pid, event->comm.comm,
- sizeof(event->comm.comm));
+ if (machine__is_host(machine))
+ tgid = perf_event__get_comm_tgid(pid, event->comm.comm,
+ sizeof(event->comm.comm));
+ else
+ tgid = machine->pid;
+
if (tgid < 0)
goto out;

--

tip-bot for Dongsheng Yang

unread,
Jan 12, 2014, 1:40:02 PM1/12/14
to
Commit-ID: 995634650ef1f907196bd7e9ae45354124a80e47
Gitweb: http://git.kernel.org/tip/995634650ef1f907196bd7e9ae45354124a80e47
Author: Dongsheng Yang <yangd...@cn.fujitsu.com>
AuthorDate: Fri, 20 Dec 2013 15:52:57 -0500
Committer: Arnaldo Carvalho de Melo <ac...@redhat.com>
CommitDate: Mon, 23 Dec 2013 16:49:49 -0300

perf tools: Find the proc info under machine->root_dir.

When we synthesize the threads, we are looking for the infomation under
/proc. But it is only for host.

This patch look for the path of proc under machine->root_dir, then
XXX__synthesize_threads() functions can support guest machines.

Signed-off-by: Dongsheng Yang <yangd...@cn.fujitsu.com>
Cc: David Ahern <dsa...@gmail.com>
Cc: Ingo Molnar <mi...@kernel.org>
Cc: Jiri Olsa <jo...@redhat.com>
Cc: Namhyung Kim <namhyu...@lge.com>
Link: http://lkml.kernel.org/r/927b937da9177a079abafe4532fa9c9b6...@cn.fujitsu.com
Signed-off-by: Arnaldo Carvalho de Melo <ac...@redhat.com>
---
tools/perf/util/event.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 484e994..a61726e 100644

tip-bot for Dongsheng Yang

unread,
Jan 12, 2014, 1:40:03 PM1/12/14
to
Commit-ID: c239c25a82808ad2cbc795b69e621c4c24f154d6
Gitweb: http://git.kernel.org/tip/c239c25a82808ad2cbc795b69e621c4c24f154d6
Author: Dongsheng Yang <yangd...@cn.fujitsu.com>
AuthorDate: Fri, 20 Dec 2013 15:53:00 -0500
Committer: Arnaldo Carvalho de Melo <ac...@redhat.com>
CommitDate: Mon, 23 Dec 2013 16:49:51 -0300

perf tools: Do not synthesize the treads of default guest.

As the default guest is designed to handle orphan kernel symboles with
--guestkallsysms and --guestmodules, it has no user space.

So we should skip synthesizing threads if machine is default guest.

Signed-off-by: Dongsheng Yang <yangd...@cn.fujitsu.com>
Cc: David Ahern <dsa...@gmail.com>
Cc: Ingo Molnar <mi...@kernel.org>
Cc: Jiri Olsa <jo...@redhat.com>
Cc: Namhyung Kim <namhyu...@lge.com>
Link: http://lkml.kernel.org/r/e9ddb5dac6f963169657218b12ceb3c20...@cn.fujitsu.com
Signed-off-by: Arnaldo Carvalho de Melo <ac...@redhat.com>
---
tools/perf/util/event.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 2905771..45a76c6 100644
0 new messages