[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/3] target/arm: pmu fixes
From: |
Andrew Jones |
Subject: |
Re: [Qemu-devel] [PATCH 0/3] target/arm: pmu fixes |
Date: |
Fri, 22 Mar 2019 17:47:07 +0100 |
User-agent: |
NeoMutt/20180716 |
On Fri, Mar 22, 2019 at 05:23:30PM +0100, Andrew Jones wrote:
> The first two patches fix a regression I found when running
> the arm (as opposed to arm64) pmu kvm-unit-tests test on tcg,
>
> $ git clone git://git.kernel.org/pub/scm/virt/kvm/kvm-unit-tests.git
> $ cd kvm-unit-tests
> $ ./configure --arch=arm --cross-prefix=arm-linux-gnu-
> $ make -j
> $ export QEMU=/path/to/qemu-system-arm or qemu-system-aarch64
> $ arm/run arm/pmu.flat
>
> After checking the QEMU code I found it's also reproducible with
> the arm64 test if the PMU is removed,
>
> $ ./configure --arch=arm64 --cross-prefix=aarch64-linux-gnu-
> $ make -j
> $ export QEMU=/path/to/qemu-system-aarch64
> $ arm/run arm/pmu.flat -cpu cortex-a57,pmu=off
Small correction here: I had to also hack the unit test to not
bail out when it didn't see a PMU advertised in the ID register.
diff --git a/arm/pmu.c b/arm/pmu.c
index 1de7d77d184f..185ff77244ed 100644
--- a/arm/pmu.c
+++ b/arm/pmu.c
@@ -291,8 +291,9 @@ int main(int argc, char *argv[])
cpi = atol(argv[1]);
if (!pmu_probe()) {
- printf("No PMU found, test skipped...\n");
- return report_summary();
+// printf("No PMU found, test skipped...\n");
+ printf("No PMU found, let's crash!\n");
+// return report_summary();
}
report_prefix_push("pmu");
>
> Those tests used to pass, but now QEMU was crashing. I've broken
> the fix into two patches because the second patch is a bit of
> an RFC since I don't know if it's safe to enable all
> ARM_FEATURE_PMU code for PMUv2. Maybe that feature is only for
> PMUv3? This patch also enables the pmu cpu property to work with
> those cpu types, i.e. we can now do '-cpu cortex-a15,pmu=off' to
> remove the pmu. Although it wasn't clear to me if the PMU is
> optional (permitted to be removed) on those cpu types from the
> manuals.
>
> The last patch is just a trivial cleanup.
>
> Andrew Jones (3):
> target/arm: fix crash on pmu register access
> target/arm: cortex-a7 and cortex-a15 have pmus
> target/arm: make pmccntr_op_start/finish static
>
> target/arm/cpu.c | 3 +++
> target/arm/cpu.h | 11 -----------
> target/arm/helper.c | 8 ++++++--
> 3 files changed, 9 insertions(+), 13 deletions(-)
>
> --
> 2.17.2
>
- [Qemu-devel] [PATCH 0/3] target/arm: pmu fixes, Andrew Jones, 2019/03/22
- [Qemu-devel] [PATCH 1/3] target/arm: fix crash on pmu register access, Andrew Jones, 2019/03/22
- [Qemu-devel] [PATCH 2/3] target/arm: cortex-a7 and cortex-a15 have pmus, Andrew Jones, 2019/03/22
- Re: [Qemu-devel] [PATCH 0/3] target/arm: pmu fixes,
Andrew Jones <=
- [Qemu-devel] [PATCH 3/3] target/arm: make pmccntr_op_start/finish static, Andrew Jones, 2019/03/22
- Re: [Qemu-devel] [PATCH 0/3] target/arm: pmu fixes, Richard Henderson, 2019/03/23
- Re: [Qemu-devel] [PATCH 0/3] target/arm: pmu fixes, Peter Maydell, 2019/03/25