Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp9114603pxu; Mon, 28 Dec 2020 07:01:54 -0800 (PST) X-Google-Smtp-Source: ABdhPJydTKRFt2s8PJf9sL2OUqjh2J1YF97274P45wYnZ2Q+cLBd74aCejkrLObNtXhVEZG5yP87 X-Received: by 2002:aa7:c749:: with SMTP id c9mr43116362eds.3.1609167714081; Mon, 28 Dec 2020 07:01:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1609167714; cv=none; d=google.com; s=arc-20160816; b=h5hoeu9x/ghJm63bvb27B9vyDwbdXDEqFgRxwWOVMfs+EI7TZK4YN4YkoH2ivMAGFT DVbg8ZIsVxwRWYkoejkqt9d4g/xMX0dIr/mW3WPxXp7msQ1AY4pNtliFg8aB6LSlYUW5 zGaqAOG/aR3aQt9jLTUatqMfMv4lcklV3RLzjzmk4hukE9E6oq3YK2MCKGYLzElK7yGO 3RP8YMTaMjZU0Dj5PsGE0rPhF9pgX3N9zD8jYBVg+V8Li3YKTkaRM1kMHgaF0yVwOnTE NwdEO4cwHgzFP3r4WwBXKt81uTuKDd0VpX52hsDjIShLuEkgoADgYFtay5aZuHAM8Blu /x9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=jxXL3KTdPCArlERJjOltvN7tBotO/TgmbSnncPtgvA0=; b=uzEnt2VLHsWyiPR32nQA+qrIqvOlnjPwVFPFfyyMdyByfV9nkCU418HT0LXwAapwY5 8uvjMu6UWK27rM309XOFQfNkzxybR9+9DCF4X8EcINkbaR49RQYHiv2ljf1EJf0g3Xwl 6Gtx+JWZwNIWDCRBz4e7rmHKKkm49nPMxcGwa5R+yEr+dBeJShRi7ih/kpb9lQcCYJcY arkNFvrKuNafLdCJrIkPO5j7LiR7ssDCvekZvUd7k/pq9Sx7kjNTBJn3GPYPW2DCYy0i l6OujiEaVX/Ts6KKet1zswzzuYvDFJK8jLOzUTEkrzh+syhv2NLDWyu5cWW7bXk90uq0 GTwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=PkJhHP61; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w4si17446449eju.637.2020.12.28.07.01.30; Mon, 28 Dec 2020 07:01:54 -0800 (PST) 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=@linuxfoundation.org header.s=korg header.b=PkJhHP61; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2440369AbgL1OOQ (ORCPT + 99 others); Mon, 28 Dec 2020 09:14:16 -0500 Received: from mail.kernel.org ([198.145.29.99]:47362 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2440333AbgL1OOI (ORCPT ); Mon, 28 Dec 2020 09:14:08 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id AA29D205CB; Mon, 28 Dec 2020 14:13:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1609164833; bh=6uS6DcEZBBgSlgBOVMDtReFI4lLMqPz3dm/DqCxaXW8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PkJhHP61BJWpN4qvrtHcxKWYrOA9h8krHf67guIoyLyAlbC3LSkgejfljLnogbrl7 eVYsve0L1b+nRAb4T6iqiruZ7DuZ40PimPw5NSBj8bUZ+J6qwNf+N47aqQyJL0SH7w PnFRLgojG1eYAmurCM4IWdBykq4xyWI23TfHbatg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Athira Rajeev , Michael Ellerman , Sasha Levin Subject: [PATCH 5.10 284/717] powerpc/perf: Fix the PMU group constraints for threshold events in power10 Date: Mon, 28 Dec 2020 13:44:42 +0100 Message-Id: <20201228125034.635827677@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201228125020.963311703@linuxfoundation.org> References: <20201228125020.963311703@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Athira Rajeev [ Upstream commit 0263bbb377af0c2d38bc8b2ad2ff147e240094de ] The PMU group constraints mask for threshold events covers all thresholding bits which includes threshold control value (start/stop), select value as well as thresh_cmp value (MMCRA[9:18]. In power9, thresh_cmp bits were part of the event code. But in case of power10, thresh_cmp bits are not part of event code due to inclusion of MMCR3 bits. Hence thresh_cmp is not valid for group constraints for power10. Fix the PMU group constraints checking for threshold events in power10 by using constraint mask and value for only threshold control and select bits. Fixes: a64e697cef23 ("powerpc/perf: power10 Performance Monitoring support") Signed-off-by: Athira Rajeev Signed-off-by: Michael Ellerman Link: https://lore.kernel.org/r/1606409684-1589-4-git-send-email-atrajeev@linux.vnet.ibm.com Signed-off-by: Sasha Levin --- arch/powerpc/perf/isa207-common.c | 7 ++++++- arch/powerpc/perf/isa207-common.h | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/perf/isa207-common.c b/arch/powerpc/perf/isa207-common.c index 38ed450c78557..0f4983ef41036 100644 --- a/arch/powerpc/perf/isa207-common.c +++ b/arch/powerpc/perf/isa207-common.c @@ -351,7 +351,12 @@ int isa207_get_constraint(u64 event, unsigned long *maskp, unsigned long *valp) value |= CNST_SAMPLE_VAL(event >> EVENT_SAMPLE_SHIFT); } - if (cpu_has_feature(CPU_FTR_ARCH_300)) { + if (cpu_has_feature(CPU_FTR_ARCH_31)) { + if (event_is_threshold(event)) { + mask |= CNST_THRESH_CTL_SEL_MASK; + value |= CNST_THRESH_CTL_SEL_VAL(event >> EVENT_THRESH_SHIFT); + } + } else if (cpu_has_feature(CPU_FTR_ARCH_300)) { if (event_is_threshold(event) && is_thresh_cmp_valid(event)) { mask |= CNST_THRESH_MASK; value |= CNST_THRESH_VAL(event >> EVENT_THRESH_SHIFT); diff --git a/arch/powerpc/perf/isa207-common.h b/arch/powerpc/perf/isa207-common.h index dc9c3d22fb38d..42087643c3331 100644 --- a/arch/powerpc/perf/isa207-common.h +++ b/arch/powerpc/perf/isa207-common.h @@ -149,6 +149,9 @@ #define CNST_THRESH_VAL(v) (((v) & EVENT_THRESH_MASK) << 32) #define CNST_THRESH_MASK CNST_THRESH_VAL(EVENT_THRESH_MASK) +#define CNST_THRESH_CTL_SEL_VAL(v) (((v) & 0x7ffull) << 32) +#define CNST_THRESH_CTL_SEL_MASK CNST_THRESH_CTL_SEL_VAL(0x7ff) + #define CNST_EBB_VAL(v) (((v) & EVENT_EBB_MASK) << 24) #define CNST_EBB_MASK CNST_EBB_VAL(EVENT_EBB_MASK) -- 2.27.0