Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp484821yba; Mon, 1 Apr 2019 10:13:42 -0700 (PDT) X-Google-Smtp-Source: APXvYqxqUk7fxfnGr118hR3yCv4P/Z41T3Xg0iVsj+shwNAQTnATaOQSlvUJohInTZd8FDT6l1GE X-Received: by 2002:a17:902:9b83:: with SMTP id y3mr19280514plp.165.1554138822014; Mon, 01 Apr 2019 10:13:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554138822; cv=none; d=google.com; s=arc-20160816; b=OsVw+vUwfwm2R2FHUZ3xXJvQmMRu48VJ9xUpDIoP8I51nyn/Cx3hY3TGgbStOioGQA 9u27w9lNBQ4e3nTWJpfKm6YPx7fv1CYv+s3g50/94O5ZNBklHPjC5xR2gH26Po+WckWA aG+2Kz+AZPncNaLRjX08ljh+nnA2erKeX2jShd5qzd+p3kDAwIE5+YrSSAns/DRjmrg+ CMly/8adacJYk1wTwb1tEJAFnrNzSeAHfuFOZ0rmyiKQSWAS2lqrRycKZfbGE8qG324B LfRnHM27GXg6AwydfkDq3+mpa9icpmRRthI5btBa9gZfvWd0G2ps51xODDFXy8rYEV+V GfwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=qFINVeJ/OFz9uQjw0Jie60oA+GYh8T6vFnHq2XcKzf8=; b=F6IGNUMmrMFGIIzQdTywRxdVGYMHA/oEXh5G/hM2z8IRU216SkWzumNOPlFkWSQeKd JtvR2/q84A0pWSC8MRDfjUhSsxCu++U9F7ojUzODlN4BtUFxJFwYmr6zgG0MKzGU651w Mvh94OTa3S+6M66XCpYhl80xcsJbPcyjvcvUp475JgkDd1RWmQlup+X2XovFfQ24NOC5 rimGGWKAUB5j+JO8IZpZESF0g44l2xng3TkEr1ToybBFVXtH8c/Is89t/SPD2E3CWrCc /KkABLtOBn+UZTW1W2WMDTa0sA7cbcnVtcECQPe5fyvkn+ttf/qYrO+l9UH38uNbSe35 662A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=EPmDrto4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g8si8964850plt.141.2019.04.01.10.13.26; Mon, 01 Apr 2019 10:13:41 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=EPmDrto4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730365AbfDARMW (ORCPT + 99 others); Mon, 1 Apr 2019 13:12:22 -0400 Received: from mail.kernel.org ([198.145.29.99]:33694 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730358AbfDARMS (ORCPT ); Mon, 1 Apr 2019 13:12:18 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5495221934; Mon, 1 Apr 2019 17:12:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1554138737; bh=JMNqm357la7us7UcNH/gdHJzbz2W4h3XBflp8onhrmc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EPmDrto4BP72FINpYAHjtKZrYSbyePRjnGUaFhLojFUBywqEpMPnJgEZYHrjbww1X vOCR6B0U3J0cpl2XJ4g+yfmuNZfLS/qN/euB+hej8rtCjxIQ5C0KeGsCw4Tuy0sahl Dhknh+DsEGsFrSgpnbkteG8U7pS9RinrvIBFIXak= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Kan Liang , Jiri Olsa , Andi Kleen , Thomas Richter , Arnaldo Carvalho de Melo Subject: [PATCH 5.0 133/146] perf pmu: Fix parser error for uncore event alias Date: Mon, 1 Apr 2019 19:02:25 +0200 Message-Id: <20190401170059.418214846@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190401170048.449559024@linuxfoundation.org> References: <20190401170048.449559024@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 5.0-stable review patch. If anyone has any objections, please let me know. ------------------ From: Kan Liang commit e94d6b7f615e6dfbaf9fba7db6011db561461d0c upstream. Perf fails to parse uncore event alias, for example: # perf stat -e unc_m_clockticks -a --no-merge sleep 1 event syntax error: 'unc_m_clockticks' \___ parser error Current code assumes that the event alias is from one specific PMU. To find the PMU, perf strcmps the PMU name of event alias with the real PMU name on the system. However, the uncore event alias may be from multiple PMUs with common prefix. The PMU name of uncore event alias is the common prefix. For example, UNC_M_CLOCKTICKS is clock event for iMC, which include 6 PMUs with the same prefix "uncore_imc" on a skylake server. The real PMU names on the system for iMC are uncore_imc_0 ... uncore_imc_5. The strncmp is used to only check the common prefix for uncore event alias. With the patch: # perf stat -e unc_m_clockticks -a --no-merge sleep 1 Performance counter stats for 'system wide': 723,594,722 unc_m_clockticks [uncore_imc_5] 724,001,954 unc_m_clockticks [uncore_imc_3] 724,042,655 unc_m_clockticks [uncore_imc_1] 724,161,001 unc_m_clockticks [uncore_imc_4] 724,293,713 unc_m_clockticks [uncore_imc_2] 724,340,901 unc_m_clockticks [uncore_imc_0] 1.002090060 seconds time elapsed Signed-off-by: Kan Liang Acked-by: Jiri Olsa Cc: Andi Kleen Cc: Thomas Richter Cc: stable@vger.kernel.org Fixes: ea1fa48c055f ("perf stat: Handle different PMU names with common prefix") Link: http://lkml.kernel.org/r/1552672814-156173-1-git-send-email-kan.liang@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Greg Kroah-Hartman --- tools/perf/util/pmu.c | 10 ++++++++++ 1 file changed, 10 insertions(+) --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c @@ -734,10 +734,20 @@ static void pmu_add_cpu_aliases(struct l if (!is_arm_pmu_core(name)) { pname = pe->pmu ? pe->pmu : "cpu"; + + /* + * uncore alias may be from different PMU + * with common prefix + */ + if (pmu_is_uncore(name) && + !strncmp(pname, name, strlen(pname))) + goto new_alias; + if (strcmp(pname, name)) continue; } +new_alias: /* need type casts to override 'const' */ __perf_pmu__new_alias(head, NULL, (char *)pe->name, (char *)pe->desc, (char *)pe->event,