From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.0 required=3.0 tests=BAYES_00,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A9E4EC433DB for ; Wed, 24 Mar 2021 14:39:09 +0000 (UTC) Received: from mm01.cs.columbia.edu (mm01.cs.columbia.edu [128.59.11.253]) by mail.kernel.org (Postfix) with ESMTP id F28A461A0A for ; Wed, 24 Mar 2021 14:39:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F28A461A0A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvmarm-bounces@lists.cs.columbia.edu Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 746EB4B425; Wed, 24 Mar 2021 10:39:08 -0400 (EDT) X-Virus-Scanned: at lists.cs.columbia.edu Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id U-ErcvNnqmrG; Wed, 24 Mar 2021 10:39:07 -0400 (EDT) Received: from mm01.cs.columbia.edu (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 62F854B22D; Wed, 24 Mar 2021 10:39:07 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id B58794B1D8 for ; Wed, 24 Mar 2021 10:39:05 -0400 (EDT) X-Virus-Scanned: at lists.cs.columbia.edu Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FA1bulSxXq7f for ; Wed, 24 Mar 2021 10:39:04 -0400 (EDT) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by mm01.cs.columbia.edu (Postfix) with ESMTPS id CE2BB4B15F for ; Wed, 24 Mar 2021 10:39:04 -0400 (EDT) Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (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 E825E61A02; Wed, 24 Mar 2021 14:39:02 +0000 (UTC) Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=hot-poop.lan) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1lP4ey-003XVd-Sy; Wed, 24 Mar 2021 14:39:01 +0000 From: Marc Zyngier To: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu Subject: [kvm-unit-tests PATCH] arm: pmu: Fix failing PMU test when no PMU is available Date: Wed, 24 Mar 2021 14:38:56 +0000 Message-Id: <20210324143856.2079220-1-maz@kernel.org> X-Mailer: git-send-email 2.30.0 MIME-Version: 1.0 X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu, pbonzini@redhat.com, drjones@redhat.com, eric.auger@redhat.com, alexandru.elisei@arm.com, qperret@google.com, kernel-team@android.com, qwandor@google.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Cc: Andrew Walbran , kernel-team@android.com, Paolo Bonzini X-BeenThere: kvmarm@lists.cs.columbia.edu X-Mailman-Version: 2.1.14 Precedence: list List-Id: Where KVM/ARM decisions are made List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu The PMU unit tests fail with an UNDEF exception when no PMU is available (although KVM hasn't been totally consistent with that in the past). This is caused by PMCR_EL0 being read *before* ID_AA64DFR0_EL1 is checked for the PMU version. Move the PMCR_EL0 access to a reasonable place, which allows the test to soft-fail gracefully. Fixes: 784ee933fa5f ("arm: pmu: Introduce defines for PMU versions") Reported-by: Andrew Walbran Signed-off-by: Marc Zyngier --- arm/pmu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arm/pmu.c b/arm/pmu.c index cc959e6..15c542a 100644 --- a/arm/pmu.c +++ b/arm/pmu.c @@ -988,7 +988,7 @@ static void pmccntr64_test(void) /* Return FALSE if no PMU found, otherwise return TRUE */ static bool pmu_probe(void) { - uint32_t pmcr = get_pmcr(); + uint32_t pmcr; uint8_t implementer; pmu.version = get_pmu_version(); @@ -997,6 +997,7 @@ static bool pmu_probe(void) report_info("PMU version: 0x%x", pmu.version); + pmcr = get_pmcr(); implementer = (pmcr >> PMU_PMCR_IMP_SHIFT) & PMU_PMCR_IMP_MASK; report_info("PMU implementer/ID code: %#"PRIx32"(\"%c\")/%#"PRIx32, (pmcr >> PMU_PMCR_IMP_SHIFT) & PMU_PMCR_IMP_MASK, -- 2.30.0 _______________________________________________ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.0 required=3.0 tests=BAYES_00,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 82DE3C433DB for ; Wed, 24 Mar 2021 14:39:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5A66961A07 for ; Wed, 24 Mar 2021 14:39:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236277AbhCXOjO (ORCPT ); Wed, 24 Mar 2021 10:39:14 -0400 Received: from mail.kernel.org ([198.145.29.99]:40956 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236251AbhCXOjD (ORCPT ); Wed, 24 Mar 2021 10:39:03 -0400 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (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 E825E61A02; Wed, 24 Mar 2021 14:39:02 +0000 (UTC) Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=hot-poop.lan) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1lP4ey-003XVd-Sy; Wed, 24 Mar 2021 14:39:01 +0000 From: Marc Zyngier To: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu Cc: Paolo Bonzini , Andrew Jones , Eric Auger , Alexandru Elisei , qperret@google.com, kernel-team@android.com, Andrew Walbran Subject: [kvm-unit-tests PATCH] arm: pmu: Fix failing PMU test when no PMU is available Date: Wed, 24 Mar 2021 14:38:56 +0000 Message-Id: <20210324143856.2079220-1-maz@kernel.org> X-Mailer: git-send-email 2.30.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu, pbonzini@redhat.com, drjones@redhat.com, eric.auger@redhat.com, alexandru.elisei@arm.com, qperret@google.com, kernel-team@android.com, qwandor@google.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org The PMU unit tests fail with an UNDEF exception when no PMU is available (although KVM hasn't been totally consistent with that in the past). This is caused by PMCR_EL0 being read *before* ID_AA64DFR0_EL1 is checked for the PMU version. Move the PMCR_EL0 access to a reasonable place, which allows the test to soft-fail gracefully. Fixes: 784ee933fa5f ("arm: pmu: Introduce defines for PMU versions") Reported-by: Andrew Walbran Signed-off-by: Marc Zyngier --- arm/pmu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arm/pmu.c b/arm/pmu.c index cc959e6..15c542a 100644 --- a/arm/pmu.c +++ b/arm/pmu.c @@ -988,7 +988,7 @@ static void pmccntr64_test(void) /* Return FALSE if no PMU found, otherwise return TRUE */ static bool pmu_probe(void) { - uint32_t pmcr = get_pmcr(); + uint32_t pmcr; uint8_t implementer; pmu.version = get_pmu_version(); @@ -997,6 +997,7 @@ static bool pmu_probe(void) report_info("PMU version: 0x%x", pmu.version); + pmcr = get_pmcr(); implementer = (pmcr >> PMU_PMCR_IMP_SHIFT) & PMU_PMCR_IMP_MASK; report_info("PMU implementer/ID code: %#"PRIx32"(\"%c\")/%#"PRIx32, (pmcr >> PMU_PMCR_IMP_SHIFT) & PMU_PMCR_IMP_MASK, -- 2.30.0