Hi Mark, On Fri, Feb 3, 2023 at 6:49 AM Mark Brown <broonie@xxxxxxxxxx> wrote: > > On Mon, Oct 17, 2022 at 07:58:20PM +0000, Ricardo Koller wrote: > > This series adds a new aarch64 selftest for testing stage 2 fault handling > > for various combinations of guest accesses (e.g., write, S1PTW), backing > > sources (e.g., anon), and types of faults (e.g., read on hugetlbfs with a > > hole, write on a readonly memslot). Each test tries a different combination > > and then checks that the access results in the right behavior (e.g., uffd > > faults with the right address and write/read flag). Some interesting > > combinations are: > > I'm seeing issues with the page_fault_test tests in both -next and > mainline all the way back to v6.1 when they were introduced running on > both the fast model and hardware. With -next the reports come back as: > > # selftests: kvm: page_fault_test > # ==== Test Assertion Failure ==== > # aarch64/page_fault_test.c:316: __a == __b > # pid=851 tid=860 errno=0 - Success > # 1 0x0000000000402253: uffd_generic_handler at page_fault_test.c:316 > # 2 0x000000000040be07: uffd_handler_thread_fn at userfaultfd_util.c:97 > # 3 0x0000ffff8b39edd7: ?? ??:0 > # 4 0x0000ffff8b407e9b: ?? ??:0 > # ASSERT_EQ(!!(flags & UFFD_PAGEFAULT_FLAG_WRITE), expect_write) failed. > # !!(flags & UFFD_PAGEFAULT_FLAG_WRITE) is 0 > # expect_write is 0x1 > not ok 6 selftests: kvm: page_fault_test # exit=254 > > (addr2line seemed to be not doing much, I've not poked too hard at > that). I've been unable to find any case where the program passes. > Is this expected? > > Some random full runs on hardware: That failure was fixed with this series: "KVM: selftests: aarch64: page_fault_test S1PTW related fixes" https://lore.kernel.org/kvmarm/20230127214353.245671-1-ricarkol@xxxxxxxxxx/ which made it into kvmarm/fixes and should get into 6.2: https://lore.kernel.org/kvmarm/20230129190142.2481354-1-maz@xxxxxxxxxx/ Note that the failing assert does not exist after the mentioned series: > # ASSERT_EQ(!!(flags & UFFD_PAGEFAULT_FLAG_WRITE), expect_write) failed. > > 4xA53: https://lava.sirena.org.uk/scheduler/job/244678 > 4xA72: https://lkft.validation.linaro.org/scheduler/job/6114427 Thanks, Ricardo