Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934703AbbLQESK (ORCPT ); Wed, 16 Dec 2015 23:18:10 -0500 Received: from e14.ny.us.ibm.com ([129.33.205.204]:35757 "EHLO e14.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751307AbbLQESJ (ORCPT ); Wed, 16 Dec 2015 23:18:09 -0500 X-IBM-Helo: b03cxnp08027.gho.boulder.ibm.com X-IBM-MailFrom: ravi.bangoria@linux.vnet.ibm.com X-IBM-RcptTo: linux-kernel@vger.kernel.org Subject: Re: [PATCH] perf kvm record/report: 'unprocessable sample' error while recording/reporting guest data To: acme@kernel.org References: <1449471302-11283-1-git-send-email-ravi.bangoria@linux.vnet.ibm.com> Cc: linux-kernel@vger.kernel.org, naveen.n.rao@linux.vnet.ibm.com From: Ravi Bangoria Message-ID: <5672377B.9070001@linux.vnet.ibm.com> Date: Thu, 17 Dec 2015 09:48:03 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <1449471302-11283-1-git-send-email-ravi.bangoria@linux.vnet.ibm.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable x-cbid: 15121704-0053-0000-0000-000005D02C40 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4047 Lines: 110 Hi acme, I sent this patch few days ago. Unfortunately nobody has payed attention. Can you please pick this up. Regards, Ravi On Monday 07 December 2015 12:25 PM, Ravi Bangoria wrote: > While recording guest samples in host using perf kvm record, it will > populate unprocessable sample error, though samples will be recorded > properly. While generating report using perf kvm report, no samples will > be processed and same error will populate. We have seen this behaviour > with upstream perf(4.4-rc3) on x86 and ppc64 hardware. > > Reason behind this failure is, when it tries to fetch machine from rb_tree > of machines, it fails. As a part of tracing a bug, we figured out that this > code was incorrectly refactored in commit 54245fdc357613633954bfd38cffb71cb9def067 > ("perf session: Remove wrappers to machines__find") > > This patch will change the functionality such that if it can't fetch > machine in first trial, it will create one node of machine and add that to > rb_tree. So next time when it tries to fetch same machine from rb_tree, > it won't fail. Actually it was the case before refactoring of code in > aforementioned commit. > > This patch is generated from acme perf/core branch. > > Below I've mention an example that demonstrate the behaviour before and > after applying patch. > > Before applying patch: > [Note: One needs to run guest before recording data in host] > > ravi@ravi-bangoria:~$ ./perf kvm record -a > Warning: > 5903 unprocessable samples recorded. > Do you have a KVM guest running and not using 'perf kvm'? > [ perf record: Captured and wrote 1.409 MB perf.data.guest (285 samples) ] > > ravi@ravi-bangoria:~$ ./perf kvm report --stdio > Warning: > 5903 unprocessable samples recorded. > Do you have a KVM guest running and not using 'perf kvm'? > # To display the perf.data header info, please use --header/--header-only options. > # > # > # Total Lost Samples: 0 > # > # Samples: 285 of event 'cycles' > # Event count (approx.): 88715406 > # > # Overhead Command Shared Object Symbol > # ........ ....... ............. ...... > # > > # > # (For a higher level overview, try: perf report --sort comm,dso) > # > > After applying patch: > > ravi@ravi-bangoria:~$ ./perf kvm record -a > [ perf record: Captured and wrote 1.188 MB perf.data.guest (17 samples) ] > > ravi@ravi-bangoria:~$ ./perf kvm report --stdio > # To display the perf.data header info, please use --header/--header-only options. > # > # > # Total Lost Samples: 0 > # > # Samples: 17 of event 'cycles' > # Event count (approx.): 700746 > # > # Overhead Command Shared Object Symbol > # ........ ....... ................ ...................... > # > 34.19% :5758 [unknown] [g] 0xffffffff818682ab > 22.79% :5758 [unknown] [g] 0xffffffff812dc7f8 > 22.79% :5758 [unknown] [g] 0xffffffff818650d0 > 14.83% :5758 [unknown] [g] 0xffffffff8161a1b6 > 2.49% :5758 [unknown] [g] 0xffffffff818692bf > 0.48% :5758 [unknown] [g] 0xffffffff81869253 > 0.05% :5758 [unknown] [g] 0xffffffff81869250 > > Signed-off-by: Ravi Bangoria > --- > tools/perf/util/session.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c > index c35ffdd..468de95 100644 > --- a/tools/perf/util/session.c > +++ b/tools/perf/util/session.c > @@ -972,7 +972,7 @@ static struct machine *machines__find_for_cpumode(struct machines *machines, > > machine = machines__find(machines, pid); > if (!machine) > - machine = machines__find(machines, DEFAULT_GUEST_KERNEL_ID); > + machine = machines__findnew(machines, DEFAULT_GUEST_KERNEL_ID); > return machine; > } > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/