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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9926EC3DA41 for ; Tue, 9 Jul 2024 08:59:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=jqXioe8rP0kcguPeV/OEhkPqxrQeShIX/6Iy+KLcDO0=; b=wfCX5G/wJiOwrS2WBx/m7LoR2Y dJv2U3vbb3hC0iTb0rGn07grnGYoMLxObIge+Cd04Qz2kQ5ipaR3rBUcD0rBY96d/sAAosPMZ73XG BL7Xk7DYOee6rpPfHdDknfU2Th2RFydDC9pI8qDZvYkGyn6t9fKAzbrsF43kpAJVmpJqLjBaMaHWL yP2K/jdy1hw9sMd9F1S0mZMQ9T88JotqurCloEjai6uod8rCpAWhfIa/3cX6BsrbDt9M9gxFm2/2V wcxI9A5aQkpOWexLX15d97zDjLYoN4i2Mva8YaRAju6KfGPn2F8T/LwbCja2Vn4GWWoR8P7aVMNZw t+Cui4EA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sR6gq-00000006Vmv-3oKs; Tue, 09 Jul 2024 08:59:12 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sR6gC-00000006VbS-1VJQ for linux-arm-kernel@lists.infradead.org; Tue, 09 Jul 2024 08:58:45 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 415581042; Tue, 9 Jul 2024 01:58:56 -0700 (PDT) Received: from arm.com (e121798.manchester.arm.com [10.32.101.22]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 982653F766; Tue, 9 Jul 2024 01:58:28 -0700 (PDT) Date: Tue, 9 Jul 2024 09:58:25 +0100 From: Alexandru Elisei To: Alex =?utf-8?Q?Benn=C3=A9e?= Cc: pbonzini@redhat.com, drjones@redhat.com, thuth@redhat.com, kvm@vger.kernel.org, qemu-arm@nongnu.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, christoffer.dall@arm.com, maz@kernel.org, Anders Roxell , Andrew Jones , Eric Auger , "open list:ARM" Subject: Re: [kvm-unit-tests PATCH v1 1/2] arm/pmu: skip the PMU introspection test if missing Message-ID: References: <20240702163515.1964784-1-alex.bennee@linaro.org> <20240702163515.1964784-2-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20240702163515.1964784-2-alex.bennee@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240709_015832_456140_D5C93131 X-CRM114-Status: GOOD ( 20.53 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi, On Tue, Jul 02, 2024 at 05:35:14PM +0100, Alex Bennée wrote: > The test for number of events is not a substitute for properly > checking the feature register. Fix the define and skip if PMUv3 is not > available on the system. This includes emulator such as QEMU which > don't implement PMU counters as a matter of policy. > > Signed-off-by: Alex Bennée > Cc: Anders Roxell > --- > arm/pmu.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/arm/pmu.c b/arm/pmu.c > index 9ff7a301..66163a40 100644 > --- a/arm/pmu.c > +++ b/arm/pmu.c > @@ -200,7 +200,7 @@ static void test_overflow_interrupt(bool overflow_at_64bits) {} > #define ID_AA64DFR0_PERFMON_MASK 0xf > > #define ID_DFR0_PMU_NOTIMPL 0b0000 > -#define ID_DFR0_PMU_V3 0b0001 > +#define ID_DFR0_PMU_V3 0b0011 > #define ID_DFR0_PMU_V3_8_1 0b0100 > #define ID_DFR0_PMU_V3_8_4 0b0101 > #define ID_DFR0_PMU_V3_8_5 0b0110 > @@ -286,6 +286,11 @@ static void test_event_introspection(void) > return; > } > > + if (pmu.version < ID_DFR0_PMU_V3) { > + report_skip("PMUv3 extensions not supported, skip ..."); > + return; > + } > + I don't get this patch - test_event_introspection() is only run on 64bit. On arm64, if there is a PMU present, that PMU is a PMUv3. A prerequisite to running any PMU tests is for pmu_probe() to succeed, and pmu_probe() fails if there is no PMU implemented (PMUVer is either 0, or 0b1111). As a result, if test_event_introspection() is executed, then a PMUv3 is present. When does QEMU advertise FEAT_PMUv3*, but no event counters (other than the cycle counter)? If you want to be extra correct, you can add the above check to pmu_probe() for 32bit, since I doubt that the PMU tests were designed or tested on anything other than a PMUv3 (and probably not much interest to maintain the tests for PMUv1 or v2 either). If do do this, may I suggest: #if defined(__arm__) if (pmu.version == ID_DFR0_PMU_V1 || pmu.version == ID_DFR0_PMU_V2) return false; #endif That way the check is self documenting. Thanks, Alex > /* PMUv3 requires an implementation includes some common events */ > required_events = is_event_supported(SW_INCR, true) && > is_event_supported(CPU_CYCLES, true) && > -- > 2.39.2 >