Received: by 2002:a25:ef43:0:0:0:0:0 with SMTP id w3csp193876ybm; Wed, 27 May 2020 23:53:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJykeoZ0SuSoNDZiBA4LEeISRey7m+CCyfAi+TVgQiypDiFF72sSHsPRpvC2XtygpDc2P305 X-Received: by 2002:aa7:dd16:: with SMTP id i22mr1679480edv.366.1590648797720; Wed, 27 May 2020 23:53:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590648797; cv=none; d=google.com; s=arc-20160816; b=eLCplvF0C6RKKTZTe1eBlMuaIX8M5PW67XuMhdYjgCsLiCQJ8ktfaiXsXYd2N/qoBa byl/u/iXSdYh9etJ8zOqhd4xlrnyomPGWZDRcE8ZKBJqdo60jg1MG91quAaV0W0hMviC yAISpM+ypWSBY1RaXcc5Eu24f45MMez0wIRcjLk8iCxvPBjM/tCYydoOkCxCKa3r+BE2 huLIowsXIYsf0HeZyfrS0fiKhtg6S41+zzPfFkxuOk7rCsfTWXEhqgrr1ccH7SbMUzkx wVHoyba0rBzU3j6llATMPn0VmGs5CR8CYmhzlG4AWYdTR/lPwArVgwW5kulYH2DY72Ne NErg== 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 :robot-unsubscribe:robot-id:message-id:mime-version:references :in-reply-to:cc:subject:to:reply-to:from:date; bh=KLaWtXzi9GN8VujXgPh6apVyXbBwslERQaMmKhKWU/0=; b=PqOpjOrFjAdDuSHCHqAXxgpg8alnWcqPr+11AedLhyKRtuzQVm/G1AAo5hP7fZjff4 +MkkBfW8F3+IcTGIHntcNem6sS9s3FVkFz54Kb+j12hzb2T6diiiH8bYi4DkdfV5oxZA Y154cC7Vvvl85JVi0HfjEX0rKOSPTWXs2DnVsrzlH1wvo3gXoCSScRlhzgl37nO0BmWv xLSdPTTeM16XkG0GaZTG7t25wsXAO+0COQCYMoRV+zVMpV+8Te549GOt4gWqrVC3Q/AV SysCw4LAF2beR3zfLMsgEYy3Jd2sPUgqrEHXj+Bp4ZCtV4CrZv3m166nJT3KaddVmBuN 5t3Q== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id pw15si3395824ejb.583.2020.05.27.23.52.55; Wed, 27 May 2020 23:53:17 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726006AbgE1GtG (ORCPT + 99 others); Thu, 28 May 2020 02:49:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55230 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725747AbgE1GtE (ORCPT ); Thu, 28 May 2020 02:49:04 -0400 Received: from Galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7290DC08C5C2; Wed, 27 May 2020 23:49:04 -0700 (PDT) Received: from [5.158.153.53] (helo=tip-bot2.lab.linutronix.de) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1jeCLd-0008AP-MB; Thu, 28 May 2020 08:49:01 +0200 Received: from [127.0.1.1] (localhost [IPv6:::1]) by tip-bot2.lab.linutronix.de (Postfix) with ESMTP id 59BA91C032F; Thu, 28 May 2020 08:49:01 +0200 (CEST) Date: Thu, 28 May 2020 06:49:01 -0000 From: "tip-bot2 for Stephane Eranian" Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: perf/core] perf/x86/rapl: Make perf_probe_msr() more robust and flexible Cc: Stephane Eranian , Ingo Molnar , x86 , LKML In-Reply-To: <20200527224659.206129-5-eranian@google.com> References: <20200527224659.206129-5-eranian@google.com> MIME-Version: 1.0 Message-ID: <159064854124.17951.10750193374892124205.tip-bot2@tip-bot2> X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The following commit has been merged into the perf/core branch of tip: Commit-ID: 4c953f879460bf65ea3c119354026b126fe8ee57 Gitweb: https://git.kernel.org/tip/4c953f879460bf65ea3c119354026b126fe8ee57 Author: Stephane Eranian AuthorDate: Wed, 27 May 2020 15:46:58 -07:00 Committer: Ingo Molnar CommitterDate: Thu, 28 May 2020 07:58:55 +02:00 perf/x86/rapl: Make perf_probe_msr() more robust and flexible This patch modifies perf_probe_msr() by allowing passing of struct perf_msr array where some entries are not populated, i.e., they have either an msr address of 0 or no attribute_group pointer. This helps with certain call paths, e.g., RAPL. In case the grp is NULL, the default sysfs visibility rule applies which is to make the group visible. Without the patch, you would get a kernel crash with a NULL group. Signed-off-by: Stephane Eranian Signed-off-by: Ingo Molnar Link: https://lore.kernel.org/r/20200527224659.206129-5-eranian@google.com --- arch/x86/events/probe.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/x86/events/probe.c b/arch/x86/events/probe.c index c2ede2f..136a1e8 100644 --- a/arch/x86/events/probe.c +++ b/arch/x86/events/probe.c @@ -10,6 +10,11 @@ not_visible(struct kobject *kobj, struct attribute *attr, int i) return 0; } +/* + * Accepts msr[] array with non populated entries as long as either + * msr[i].msr is 0 or msr[i].grp is NULL. Note that the default sysfs + * visibility is visible when group->is_visible callback is set. + */ unsigned long perf_msr_probe(struct perf_msr *msr, int cnt, bool zero, void *data) { @@ -24,8 +29,16 @@ perf_msr_probe(struct perf_msr *msr, int cnt, bool zero, void *data) if (!msr[bit].no_check) { struct attribute_group *grp = msr[bit].grp; + /* skip entry with no group */ + if (!grp) + continue; + grp->is_visible = not_visible; + /* skip unpopulated entry */ + if (!msr[bit].msr) + continue; + if (msr[bit].test && !msr[bit].test(bit, data)) continue; /* Virt sucks; you cannot tell if a R/O MSR is present :/ */