On Tue, Dec 12, 2023, Dan Wu wrote: > When running asyncpf test, it gets skipped without a clear reason: > > ./asyncpf > > enabling apic > smp: waiting for 0 APs > paging enabled > cr0 = 80010011 > cr3 = 107f000 > cr4 = 20 > install handler > enable async pf > alloc memory > start loop > end loop > start loop > end loop > SUMMARY: 0 tests > SKIP asyncpf (0 tests) > > The reason is that KVM changed to use interrupt-based 'page-ready' notification > and abandoned #PF-based 'page-ready' notification mechanism. Interrupt-based > 'page-ready' notification requires KVM_ASYNC_PF_DELIVERY_AS_INT to be set as well > in MSR_KVM_ASYNC_PF_EN to enable asyncpf. > > This series tries to fix the problem by separating two testcases for different mechanisms. > > - For old #PF-based notification, changes current asyncpf.c to add CPUID check > at the beginning. It checks (KVM_FEATURE_ASYNC_PF && !KVM_FEATURE_ASYNC_PF_INT), > otherwise it gets skipped. > > - For new interrupt-based notification, add a new test, asyncpf-int.c, to check > (KVM_FEATURE_ASYNC_PF && KVM_FEATURE_ASYNC_PF_INT) and implement interrupt-based > 'page-ready' handler. Using #PF to deliver page-ready is completely dead, no? Unless I'm mistaken, let's just drop the existing support and replace it with the interrupted-based mechanism. I see no reason to continue maintaining the old crud. If someone wants to verify an old, broken KVM, then they can use the old version of KUT.