While running kselftest kvm test cases on x86_64 devices the following kernel warning was reported.
metadata: git_ref: master git_repo: https://gitlab.com/Linaro/lkft/mirrors/torvalds/linux-mainline git_sha: 1930a6e739c4b4a654a69164dbe39e554d228915 git_describe: v5.17-12882-g1930a6e739c4 kernel_version: 5.17.0 kernel-config: https://builds.tuxbuild.com/272RGo17Agp9s62duqGs3mP2d0S/config
# selftests: kvm: evmcs_test # Running L1 which uses EVMCS to run L2 # Injecting NMI into L1 before L2 had a chance to run after restore # Trying extra KVM_GET_NESTED_STATE/KVM_SET_NESTED_STATE cycle ok 4 selftests: kvm: evmcs_test # selftests: kvm: emulator_error_test # module parameter 'allow_smaller_maxphyaddr' is not set. Skipping test. ok 5 selftests: kvm: emulator_error_test # selftests: kvm: hyperv_clock [ 62.510388] ------------[ cut here ]------------ [ 62.515064] WARNING: CPU: 1 PID: 915 at arch/x86/kvm/../../../virt/kvm/kvm_main.c:3156 mark_page_dirty_in_slot+0xba/0xd0 [ 62.525968] Modules linked in: x86_pkg_temp_thermal fuse [ 62.531307] CPU: 1 PID: 915 Comm: hyperv_clock Not tainted 5.17.0 #1 [ 62.537691] Hardware name: Supermicro SYS-5019S-ML/X11SSH-F, BIOS 2.0b 07/27/2017 [ 62.545185] RIP: 0010:mark_page_dirty_in_slot+0xba/0xd0 [ 62.550452] Code: 89 ea 09 c6 e8 57 d4 00 00 5b 41 5c 41 5d 41 5e 5d c3 48 8b 83 c0 00 00 00 49 63 d5 f0 48 0f ab 10 5b 41 5c 41 5d 41 5e 5d c3 <0f> 0b 5b 41 5c 41 5d 41 5e 5d c3 0f 1f 44 00 00 eb 80 0f 1f 40 00 [ 62.569265] RSP: 0018:ffffa347c1663b50 EFLAGS: 00010246 [ 62.574502] RAX: 0000000080000000 RBX: ffff8f01149ce600 RCX: 0000000000000000 [ 62.581700] RDX: 0000000000000000 RSI: ffffffffa302ab31 RDI: ffffffffa302ab31 [ 62.588874] RBP: ffffa347c1663b70 R08: 0000000000000000 R09: 0000000000000001 [ 62.596046] R10: 0000000000000001 R11: 0000000000000000 R12: ffffa347c1665000 [ 62.603213] R13: 0000000000000022 R14: 0000000000000000 R15: 0000000000000004 [ 62.610389] FS: 00007fe3799c1740(0000) GS:ffff8f041fc80000(0000) knlGS:0000000000000000 [ 62.618697] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 62.624467] CR2: 0000000000000000 CR3: 000000010614e004 CR4: 00000000003726e0 [ 62.631684] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 62.638833] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 62.646009] Call Trace: [ 62.648480] <TASK> [ 62.650604] __kvm_write_guest_page+0xc8/0x100 [ 62.655112] kvm_write_guest+0x61/0xb0 [ 62.658884] kvm_hv_invalidate_tsc_page+0xd3/0x140 [ 62.663699] ? kvm_hv_invalidate_tsc_page+0x72/0x140 [ 62.668684] kvm_arch_vm_ioctl+0x20f/0xbc0 [ 62.672798] ? __lock_acquire+0x3af/0x2450 [ 62.676956] ? __this_cpu_preempt_check+0x13/0x20 [ 62.681706] kvm_vm_ioctl+0x6f1/0xe20 [ 62.685423] ? ktime_get_coarse_real_ts64+0xc7/0xd0 [ 62.690323] ? __this_cpu_preempt_check+0x13/0x20 [ 62.695048] ? lockdep_hardirqs_on+0x7e/0x100 [ 62.699423] ? blk_log_with_error+0x3b/0x70 [ 62.703644] ? __audit_syscall_entry+0xcd/0x130 [ 62.708220] ? selinux_file_ioctl+0xa6/0x130 [ 62.712542] ? selinux_file_ioctl+0xa6/0x130 [ 62.716869] __x64_sys_ioctl+0x91/0xc0 [ 62.720686] do_syscall_64+0x5c/0x80 [ 62.724305] ? __this_cpu_preempt_check+0x13/0x20 [ 62.729059] ? lock_is_held_type+0xdd/0x130 [ 62.733264] ? do_syscall_64+0x69/0x80 [ 62.737069] ? __this_cpu_preempt_check+0x13/0x20 [ 62.741791] ? lockdep_hardirqs_on+0x7e/0x100 [ 62.746219] ? syscall_exit_to_user_mode+0x3e/0x50 [ 62.751082] ? do_syscall_64+0x69/0x80 [ 62.754904] entry_SYSCALL_64_after_hwframe+0x44/0xae [ 62.760027] RIP: 0033:0x7fe3792bf8f7 [ 62.763687] Code: b3 66 90 48 8b 05 a1 35 2c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 71 35 2c 00 f7 d8 64 89 01 48 [ 62.782497] RSP: 002b:00007ffe035acf38 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 [ 62.790131] RAX: ffffffffffffffda RBX: 000000004030ae7b RCX: 00007fe3792bf8f7 [ 62.797334] RDX: 00007ffe035acf70 RSI: 000000004030ae7b RDI: 0000000000000006 [ 62.804539] RBP: 0000000000000007 R08: 000000000040e320 R09: 0000000000000007 [ 62.811737] R10: 000000000004da6b R11: 0000000000000246 R12: 00007fe3799c7000 [ 62.818914] R13: 0000000000000007 R14: 00000000000058cb R15: 00000000000e8f42 [ 62.826141] </TASK> [ 62.828378] irq event stamp: 6435 [ 62.831765] hardirqs last enabled at (6445): [<ffffffffa3272a88>] __up_console_sem+0x58/0x60 [ 62.840354] hardirqs last disabled at (6454): [<ffffffffa3272a6d>] __up_console_sem+0x3d/0x60 [ 62.848944] softirqs last enabled at (6392): [<ffffffffa4600341>] __do_softirq+0x341/0x4cc [ 62.857362] softirqs last disabled at (6473): [<ffffffffa31ef29f>] irq_exit_rcu+0xdf/0x140 [ 62.865700] ---[ end trace 0000000000000000 ]--- ok 6 selftests: kvm: hyperv_clock
Reported-by: Linux Kernel Functional Testing lkft@linaro.org
-- Linaro LKFT https://lkft.linaro.org
[1] https://lkft.validation.linaro.org/scheduler/job/4805876#L1528
On Tue, Mar 29, 2022, Naresh Kamboju wrote:
While running kselftest kvm test cases on x86_64 devices the following kernel warning was reported.
...
[ 62.510388] ------------[ cut here ]------------ [ 62.515064] WARNING: CPU: 1 PID: 915 at arch/x86/kvm/../../../virt/kvm/kvm_main.c:3156 mark_page_dirty_in_slot+0xba/0xd0 [ 62.525968] Modules linked in: x86_pkg_temp_thermal fuse [ 62.531307] CPU: 1 PID: 915 Comm: hyperv_clock Not tainted 5.17.0 #1 [ 62.537691] Hardware name: Supermicro SYS-5019S-ML/X11SSH-F, BIOS 2.0b 07/27/2017 [ 62.545185] RIP: 0010:mark_page_dirty_in_slot+0xba/0xd0
Long known issue. I think we're all waiting for someone else to post an actual patch.
Vitaly, can you formally post the below patch, or do you need feedback first?
Sean Christopherson seanjc@google.com writes:
On Tue, Mar 29, 2022, Naresh Kamboju wrote:
While running kselftest kvm test cases on x86_64 devices the following kernel warning was reported.
...
[ 62.510388] ------------[ cut here ]------------ [ 62.515064] WARNING: CPU: 1 PID: 915 at arch/x86/kvm/../../../virt/kvm/kvm_main.c:3156 mark_page_dirty_in_slot+0xba/0xd0 [ 62.525968] Modules linked in: x86_pkg_temp_thermal fuse [ 62.531307] CPU: 1 PID: 915 Comm: hyperv_clock Not tainted 5.17.0 #1 [ 62.537691] Hardware name: Supermicro SYS-5019S-ML/X11SSH-F, BIOS 2.0b 07/27/2017 [ 62.545185] RIP: 0010:mark_page_dirty_in_slot+0xba/0xd0
Long known issue. I think we're all waiting for someone else to post an actual patch.
Vitaly, can you formally post the below patch, or do you need feedback first?
Sorry, missed this. Will do.
linux-kselftest-mirror@lists.linaro.org