Re: [PATCH 4.14 038/190] KVM: x86: only do L1TF workaround on affected processors

From: Rantala, Tommi T. (Nokia - FI/Espoo)
Date: Fri Jun 26 2020 - 03:05:11 EST


On Wed, 2020-06-24 at 10:15 -0400, Sasha Levin wrote:
> On Wed, Jun 24, 2020 at 12:00:59PM +0000, Rantala, Tommi T. (Nokia -
> FI/Espoo) wrote:
> > On Fri, 2020-06-19 at 16:31 +0200, Greg Kroah-Hartman wrote:
> > > From: Paolo Bonzini <pbonzini@xxxxxxxxxx>
> > >
> > > [ Upstream commit d43e2675e96fc6ae1a633b6a69d296394448cc32 ]
> > >
> > > KVM stores the gfn in MMIO SPTEs as a caching optimization.
> >
> > Any ideas what's missing in 4.14 ?
>
> I think that this was because we're missing 6129ed877d40 ("KVM: x86/mmu:
> Set mmio_value to '0' if reserved #PF can't be generated"). I've queued
> it up (along with a few other related commits) and a new -rc cycle
> should be underway for those.

Sorry, I still see it with 4.14.186:

[ 2.355140] ------------[ cut here ]------------
[ 2.355872] WARNING: CPU: 0 PID: 849 at arch/x86/kvm/mmu.c:284
kvm_mmu_set_mmio_spte_mask+0x4e/0x60 [kvm]
[ 2.357723] Modules linked in: kvm_intel(+) kvm irqbypass bfq
sch_fq_codel pcbc aesni_intel aes_x86_64 crypto_simd cryptd glue_helper
ata_piix dm_mirror dm_region_hash dm_log dm_mod dax autofs4
[ 2.359639] CPU: 0 PID: 849 Comm: systemd-udevd Not tainted 4.14.186 #2
[ 2.360309] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
1.13.0-2.fc32 04/01/2014
[ 2.361177] task: ffff8a3d19429dc0 task.stack: ffffb2558460c000
[ 2.361775] RIP: 0010:kvm_mmu_set_mmio_spte_mask+0x4e/0x60 [kvm]
[ 2.362390] RSP: 0018:ffffb2558460fc58 EFLAGS: 00010206
[ 2.362901] RAX: 0000000000000000 RBX: ffffffffc0179000 RCX:
00000000ffffff45
[ 2.363617] RDX: 0000000000000028 RSI: 0008000000000001 RDI:
0008000000000001
[ 2.364329] RBP: ffffffffc00c5951 R08: 00000000ffffffff R09:
00003fffffffffff
[ 2.365021] R10: ffffb255841592b8 R11: 00000000fffffffe R12:
0000000000005bc0
[ 2.365717] R13: ffffffffc017a780 R14: ffffb2558460fea0 R15:
0000000000000001
[ 2.366437] FS: 00007fc6fcab6c40(0000) GS:ffff8a3d1ea00000(0000)
knlGS:0000000000000000
[ 2.367270] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2.367824] CR2: 0000564de775f840 CR3: 0000000818efc001 CR4:
00000000001606f0
[ 2.368535] Call Trace:
[ 2.368809] kvm_mmu_module_init+0x15f/0x240 [kvm]
[ 2.369323] kvm_arch_init+0x5e/0x100 [kvm]
[ 2.369750] kvm_init+0x1c/0x2b0 [kvm]
[ 2.370155] ? free_pcppages_bulk+0x22d/0x4b0
[ 2.370591] ? hardware_setup+0x4ab/0x4ab [kvm_intel]
[ 2.371113] vmx_init+0x21/0x6af [kvm_intel]
[ 2.371596] ? hardware_setup+0x4ab/0x4ab [kvm_intel]
[ 2.372118] do_one_initcall+0x3e/0xf4
[ 2.372501] ? kmem_cache_alloc_trace+0xef/0x190
[ 2.372964] do_init_module+0x5c/0x1f0
[ 2.373383] load_module+0x1f31/0x2620
[ 2.373765] ? SYSC_finit_module+0x95/0xb0
[ 2.374205] SYSC_finit_module+0x95/0xb0
[ 2.374601] do_syscall_64+0x74/0x190
[ 2.374974] entry_SYSCALL_64_after_hwframe+0x41/0xa6
[ 2.375500] RIP: 0033:0x7fc6fd3801bd
[ 2.375853] RSP: 002b:00007ffd768187f8 EFLAGS: 00000246 ORIG_RAX:
0000000000000139
[ 2.376593] RAX: ffffffffffffffda RBX: 0000564539d9ab50 RCX:
00007fc6fd3801bd
[ 2.377305] RDX: 0000000000000000 RSI: 00007fc6fcfc784d RDI:
000000000000000e
[ 2.377981] RBP: 0000000000020000 R08: 0000000000000000 R09:
0000000000000007
[ 2.378693] R10: 000000000000000e R11: 0000000000000246 R12:
00007fc6fcfc784d
[ 2.379401] R13: 0000000000000000 R14: 0000564539d7a530 R15:
0000564539d9ab50
[ 2.380104] Code: 59 25 06 00 75 25 48 b8 00 00 00 00 00 00 00 40 48 09
c6 48 09 c7 48 89 35 68 25 06 00 48 89 3d 69 25 06 00 c3 0f 0b 0f 0b eb d2
<0f> 0b eb d7 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 0f 1f 44
[ 2.381905] ---[ end trace 5f757335c2eac657 ]---