Received: by 2002:a05:6a10:eb17:0:0:0:0 with SMTP id hx23csp305053pxb; Thu, 9 Sep 2021 01:04:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzwaPI4VVmzurteoE2F+UuiHxSC6tmYmXAHZuEqfTTggvTToYkqWVlG5m5P+pM1lRQcx5jw X-Received: by 2002:a17:906:2bc7:: with SMTP id n7mr1982211ejg.238.1631174679497; Thu, 09 Sep 2021 01:04:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631174679; cv=none; d=google.com; s=arc-20160816; b=lhj1FsutiboH8Fi+FvW4aNEcqAg5V3z3S2SoUX3LtSGuVAxILpnqCCUfWzq4MBjX23 YzZZfvs0FDxMFmA9YsB6YhkOebQJc6eUaX8FIxghnmCAjVYIPtS6DWgOSVgKQd6Hs7lK KA97kDp+Mw0r2NzvcVwDJbsTQtZ3H1ns0Lo2Xxh1nvaKbtKbdjHHqKuXVXkbMzpC06nx seYLOaAdcMlSBimOQYcUXQyFlH5cFuD7zi4JuO7F9+97mYc3a3L0Yas+3RMZSWqkCpcW 340TShQvNZa+VUqh4IG4vplKEnkD/PM6YYOsVZEkSI8WCFjGsPgbvVTmahIe7Z9BJCgy PP1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:references:mime-version :message-id:in-reply-to:date:dkim-signature; bh=f5cBwH7kdw31CIR5J62DosBSFttoc1nOdgtRXR5dzZQ=; b=ptcsyjw9FOan5Smx+kV6I334rd2tM3eBz3xnnGZno3ARQ9YKAKbGo4QUT3wts9pytq u8pzfFXC05YOPUSLZE9s8Ou7G8hztdnj5ggI7fyL0l89a7Q2+PUIQFsgiIumrsmqW+7u AszNmeZy/0J34fxrZozesW/Wr5Sbav5D2icQfekpXQD/TV+4MgF1DH57UxmHm82ZElVz tTAg76GiZu6zNa/CwpBatrYH6EreVjsTZtsUsag6Q2yfv8o2xNjnMVrr6BLLwcdrVadS 4Zguc3OVnmq9siX1MBAer+F/2INbMy24YrDjF+zd9FdxoL0epKO+spbGlvwrXmDXvnCL ZFeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=KUESZQUq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h5si1034294ejj.144.2021.09.09.01.04.08; Thu, 09 Sep 2021 01:04:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=KUESZQUq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231506AbhIIIAi (ORCPT + 99 others); Thu, 9 Sep 2021 04:00:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41884 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231154AbhIIIAO (ORCPT ); Thu, 9 Sep 2021 04:00:14 -0400 Received: from mail-qt1-x84a.google.com (mail-qt1-x84a.google.com [IPv6:2607:f8b0:4864:20::84a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1B8A3C06175F for ; Thu, 9 Sep 2021 00:59:05 -0700 (PDT) Received: by mail-qt1-x84a.google.com with SMTP id p21-20020ac846150000b02902982d999bfbso2698944qtn.7 for ; Thu, 09 Sep 2021 00:59:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=f5cBwH7kdw31CIR5J62DosBSFttoc1nOdgtRXR5dzZQ=; b=KUESZQUqUMNUTEl14gYh4PD144twMuySFUSSRn4sNvwyIVmslW1kx0wOETUDWZ9/7W g6AaF0dfqSIbIQNturtJuGi0iZHElO2vu7GOLTsbCiwSehax0vdxMBekA+AToFNmJyFX 2VpBGugbAe7TqkyHXCzn1EtZBDrJj/1YGI0YDys+mkC/KFCp9GtO4Bva+1PLLU3FEdU+ 3Y7iWAi3RiMOAX2MxELOa91gmrUL8pXtV0wAfTL+2A2Qfcel/UY+oA3oOfgvrO5ZZghJ k24upX5wollZJmPW3zSzOtkb9IK0xcJ+e63LhW3k6OQlMu0hwVV3vIB0eY4P/+QwJLa+ JTCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=f5cBwH7kdw31CIR5J62DosBSFttoc1nOdgtRXR5dzZQ=; b=AFoUhzMMgMjfr7lF320z62akQxBQ3h+IJ6wwCr5cnrC0vF3+LPRoLRAvTRgDei/x69 zUPenWQ7z3ipKWK/Cx96gRTVMKI0nwnYYH7I8jjUZBk9Zr79y+4tGDJadXKwBmgjTob8 Yl+X3mQR+WlQo6BWTUMov9Rjw4reAUHB4XPRnLpbkA4Cd+aHVsi1WuA21G2Bd07X0tPL tCbqA57lRpgKF3+6Wfw0fR/6af4AETIkmyx/n6hQjVlmcmPQh4uPq5PazFXTpya1bR8S b3VCM5nKGvL2ciJy9Tucs88YjPaTDrgBzsdowwUmVRu5vptIBVmTA4yobUln7Hw9Yyyn bA1Q== X-Gm-Message-State: AOAM532vgKuX1akC/NySyorbhs5pWCy41nXrCnSdElxZwFFhxzCPH+ur wvU44Nm2UhGK73SzgC/0cS6DOK2TG3BMzcTN9IfjOtfA65JIEDZhmypBMkoIzc2v8Ozg7GFzAFD EfmRfHPmB85v6QbSZfbXZd+eEH4g5grYLEHHEHQ4tDhxtlT+aXTnWPZxF4NYAkMrD5npMkUNo X-Received: from uluru3.svl.corp.google.com ([2620:15c:2cd:202:f950:61f2:f1ec:ae8b]) (user=eranian job=sendgmr) by 2002:a05:6214:12ee:: with SMTP id w14mr1653162qvv.52.1631174344321; Thu, 09 Sep 2021 00:59:04 -0700 (PDT) Date: Thu, 9 Sep 2021 00:56:58 -0700 In-Reply-To: <20210909075700.4025355-1-eranian@google.com> Message-Id: <20210909075700.4025355-12-eranian@google.com> Mime-Version: 1.0 References: <20210909075700.4025355-1-eranian@google.com> X-Mailer: git-send-email 2.33.0.153.gba50c8fa24-goog Subject: [PATCH v1 11/13] perf tools: improve IBS error handling From: Stephane Eranian To: linux-kernel@vger.kernel.org Cc: peterz@infradead.org, acme@redhat.com, jolsa@redhat.com, kim.phillips@amd.com, namhyung@kernel.org, irogers@google.com Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kim Phillips This patch improves the error message returned on failed perf_event_open() on AMD when using IBS. Signed-off-by: Kim Phillips --- tools/perf/util/evsel.c | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index f61e5dd53f5d..f203f178fdb9 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -2684,12 +2684,52 @@ static bool find_process(const char *name) return ret ? false : true; } +static bool is_amd; + +static char *fgrep(FILE *inf, const char *str) +{ + char line[256]; + int slen = strlen(str); + + while (!feof(inf)) { + if (!fgets(line, 256, inf)) + break; + if (strncmp(line, str, slen)) + continue; + + return strdup(line); + } + + return NULL; +} + +static void detect_amd(void) +{ + FILE *inf = fopen("/proc/cpuinfo", "r"); + char *res; + + if (!inf) + return; + + res = fgrep(inf, "vendor_id"); + + if (res) { + char *s = strchr(res, ':'); + + is_amd = s && !strcmp(s, ": AuthenticAMD\n"); + free(res); + } + fclose(inf); +} + int evsel__open_strerror(struct evsel *evsel, struct target *target, int err, char *msg, size_t size) { char sbuf[STRERR_BUFSIZE]; int printed = 0, enforced = 0; + detect_amd(); + switch (err) { case EPERM: case EACCES: @@ -2782,6 +2822,8 @@ int evsel__open_strerror(struct evsel *evsel, struct target *target, return scnprintf(msg, size, "wrong clockid (%d).", clockid); if (perf_missing_features.aux_output) return scnprintf(msg, size, "The 'aux_output' feature is not supported, update the kernel."); + if (is_amd && (evsel->core.attr.precise_ip || !strncmp(evsel->pmu_name, "ibs", 3)) && (evsel->core.attr.exclude_kernel)) + return scnprintf(msg, size, "AMD IBS can't exclude kernel events. Try running at a higher privilege level."); break; case ENODATA: return scnprintf(msg, size, "Cannot collect data source with the load latency event alone. " -- 2.33.0.153.gba50c8fa24-goog