bisected - arm64 kvm unit test failures

From: Mike Galbraith
Date: Tue Jul 31 2018 - 14:29:15 EST


On Mon, 2018-07-30 at 18:24 +0200, Mike Galbraith wrote:
> On Sun, 2018-07-29 at 13:47 +0200, Mike Galbraith wrote:
> > FYI, per kvm unit tests, 4.16-rt definitely has more kvm issues.

But it's not RT, or rather most of it isn't...

> > huawei5:/abuild/mike/kvm-unit-tests # uname -r
> > 4.16.18-rt11-rt
> > huawei5:/abuild/mike/kvm-unit-tests # ./run_tests.sh
> > PASS selftest-setup (2 tests)
> > FAIL selftest-vectors-kernel
> > FAIL selftest-vectors-user
> > PASS selftest-smp (65 tests)
> > PASS pci-test (1 tests)
> > PASS pmu (3 tests)
> > FAIL gicv2-ipi
> > FAIL gicv3-ipi
> > FAIL gicv2-active
> > FAIL gicv3-active
> > PASS psci (4 tests)
> > FAIL timer
> > huawei5:/abuild/mike/kvm-unit-tests #
> >
> > 4.14-rt passes all tests. The above is with the kvm raw_spinlock_t
> > conversion patch applied, but the 4.12 based SLERT tree I cloned to
> > explore arm-land in the first place shows only one timer failure, and
> > has/needs it applied as well, which would seem to vindicate it.
> >
> > huawei5:/abuild/mike/kvm-unit-tests # uname -r
> > 4.12.14-0.gec0b559-rt
> > huawei5:/abuild/mike/kvm-unit-tests # ./run_tests.sh
> > PASS selftest-setup (2 tests)
> > PASS selftest-vectors-kernel (2 tests)
> > PASS selftest-vectors-user (2 tests)
> > PASS selftest-smp (65 tests)
> > PASS pci-test (1 tests)
> > PASS pmu (3 tests)
> > PASS gicv2-ipi (3 tests)
> > PASS gicv3-ipi (3 tests)
> > PASS gicv2-active (1 tests)
> > PASS gicv3-active (1 tests)
> > PASS psci (4 tests)
> > FAIL timer (8 tests, 1 unexpected failures)
>
> FWIW, this single timer failure wass inspired by something in the 4-15
> merge window.

As noted, the single timer failure is an RT issue of some sort, and
remains. The rest I bisected in @stable with the attached config, and
confirmed that revert fixes up 4.16-rt as well (modulo singleton).

a9c0e12ebee56ef06b7eccdbc73bab71d0018df8 is the first bad commit
commit a9c0e12ebee56ef06b7eccdbc73bab71d0018df8
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Mon Oct 23 17:11:20 2017 +0100

KVM: arm/arm64: Only clean the dcache on translation fault

The only case where we actually need to perform a dcache maintenance
is when we map the page for the first time, and subsequent permission
faults do not require cache maintenance. Let's make it conditional
on not being a permission fault (and thus a translation fault).

Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>

:040000 040000 951e77e6ec8df405f4bad59086ad1416c480ce3c 946dd071aa755606eaa5103d870bc471cc07258f M virt

git bisect start
# good: [a8ec862fd39d9adb88469eb8b9125daccc1c8335] Linux 4.15.18
git bisect good a8ec862fd39d9adb88469eb8b9125daccc1c8335
# bad: [62e9ccfaaedffd057e921fca976f9f7f71c9b254] Linux 4.16.18
git bisect bad 62e9ccfaaedffd057e921fca976f9f7f71c9b254
# good: [d8a5b80568a9cb66810e75b182018e9edb68e8ff] Linux 4.15
git bisect good d8a5b80568a9cb66810e75b182018e9edb68e8ff
# good: [fe53d1443a146326b49d57fe6336b5c2a725223f] Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
git bisect good fe53d1443a146326b49d57fe6336b5c2a725223f
# good: [9a61df9e5f7471fe5be3e02bd0bed726b2761a54] Merge tag 'kbuild-v4.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
git bisect good 9a61df9e5f7471fe5be3e02bd0bed726b2761a54
# bad: [c4f4d2f917729e9b7b8bb452bf4971be93e7a15f] Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
git bisect bad c4f4d2f917729e9b7b8bb452bf4971be93e7a15f
# bad: [97ace515f01439d4cf6e898b4094040dc12d36e7] Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
git bisect bad 97ace515f01439d4cf6e898b4094040dc12d36e7
# bad: [9f416319f40cd857d2bb517630e5855a905ef3fb] arm64: fix unwind_frame() for filtered out fn for function graph tracing
git bisect bad 9f416319f40cd857d2bb517630e5855a905ef3fb
# bad: [405cacc947f7b58969b2a8ab1568c2d98b245308] drm/i915/vlv: Add cdclk workaround for DSI
git bisect bad 405cacc947f7b58969b2a8ab1568c2d98b245308
# good: [810f4600ec5ee79c68dcbb136ed26a652df46348] Merge tag 'kvm-s390-next-4.16-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux
git bisect good 810f4600ec5ee79c68dcbb136ed26a652df46348
# bad: [1ab03c072feb579c9fd116de25be2b211e6bff6a] Merge tag 'kvm-ppc-next-4.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
git bisect bad 1ab03c072feb579c9fd116de25be2b211e6bff6a
# bad: [87cedc6be55954c6efd6eca2e694132513f65a2a] kvm: x86: remove efer_reload entry in kvm_vcpu_stat
git bisect bad 87cedc6be55954c6efd6eca2e694132513f65a2a
# good: [fefb876b9b96fa7e4ed3d906979ea45b4cf07349] arm64: KVM: PTE/PMD S2 XN bit definition
git bisect good fefb876b9b96fa7e4ed3d906979ea45b4cf07349
# bad: [b276f1b3b1eb52697f6645bb98f7d32ffb89df69] KVM: arm/arm64: Fix trailing semicolon
git bisect bad b276f1b3b1eb52697f6645bb98f7d32ffb89df69
# bad: [17ab9d57debaa53d665651e425a0efc4a893c039] KVM: arm/arm64: Drop vcpu parameter from guest cache maintenance operartions
git bisect bad 17ab9d57debaa53d665651e425a0efc4a893c039
# bad: [a9c0e12ebee56ef06b7eccdbc73bab71d0018df8] KVM: arm/arm64: Only clean the dcache on translation fault
git bisect bad a9c0e12ebee56ef06b7eccdbc73bab71d0018df8
# good: [d0e22b4ac3ba23c611739f554392bf5e217df49f] KVM: arm/arm64: Limit icache invalidation to prefetch aborts
git bisect good d0e22b4ac3ba23c611739f554392bf5e217df49f
# first bad commit: [a9c0e12ebee56ef06b7eccdbc73bab71d0018df8] KVM: arm/arm64: Only clean the dcache on translation fault

Attachment: config.bisect.xz
Description: application/xz