
psuriset at linux
Jun 19, 2012, 11:14 PM
Post #3 of 4
(34 views)
Permalink
|
|
Re: perf kvm segfaults while reporting events
[In reply to]
|
|
* David Ahern <dsahern [at] gmail> [2012-06-01 09:40:30]: > On 6/1/12 7:56 AM, Pradeep Kumar Surisetty wrote: > >Hello > > > >perf kvm generats segfaults while reporting events. > > > >host& guest: 3.4.0-rc4 > > > >1) Copied kallsyms, modules from guest to host. > > > >2) recorded events on host and guest& report it using below commands. > > > > > >[root [at] hos]# ./perf kvm --host --guest --guestkallsyms=/tmp/guest-kallsyms --guestmodules=/tmp/guest-modules record -a -o perf.data > >^C[ perf record: Woken up 1 times to write data ] > >[. perf record: Captured and wrote 0.381 MB perf.data (~16659 samples) ] > > > >[root [at] hos]# ./perf kvm --host --guest --guestkallsyms=/tmp/guest-kallsyms --guestmodules=/tmp/guest-modules report -i perf.data --force > >perf: Segmentation fault > > The short of it is that perf-kvm needs some work. > > More specifically, the guest 'machine' is not created on the report > path for the above arguments. This will prevent the segfault: > > diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c > index 93d355d..c8e1323 100644 > --- a/tools/perf/util/session.c > +++ b/tools/perf/util/session.c > @@ -918,6 +918,8 @@ static int perf_session_deliver_event(struct > perf_session *session, > } > return tool->sample(tool, event, sample, evsel, machine); > case PERF_RECORD_MMAP: > + if (machine == NULL) > + return 0; Ahhh perf kvm works fine if we record guest events for enough time. above patch works better, if some one doesnt record for adequate time. > return tool->mmap(tool, event, sample, machine); > case PERF_RECORD_COMM: > return tool->comm(tool, event, sample, machine); > > > The --guestmount option (which has its own problems) combined with > specific pid is more stable . e.g., > > mkdir /tmp/guestmount/<vm-pid> > sshfs root@<vm-ip>:/ /tmp/guestmount/<vm-pid> -o direct_io > > perf kvm --host --guest --guestmount=/tmp/guestmount \ > record -p <vm-pid> -o /tmp/perf.data -- sleep 1 > > perf kvm --host --guest --guestmount=/tmp/guestmount report -i > /tmp/perf.data --force --stdio > > If you use the -a argument on record with multiple VMs running > without an entry in /tmp/guestmount you'll see: > > Warning: > 7 unprocessable samples recorded. > Do you have a KVM guest running and not using 'perf kvm'? > > David > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo [at] vger More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|