On May 11, 2022 4:30 AM, Tom Lendacky wrote: > On 2/28/22 01:21, Min Xu via groups.io wrote: > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3711 > > > > Per SDM, changing the mode of APIC timer (from one-shot to periodic or > > vice versa) by writing to the timer LVT entry does not start the timer. > > To start the timer, it is necessary to write to the initial-count > > register. > > > > If initial-count is wrote before mode change, it's possible that timer > > expired before the mode change. Thus failing the periodic mode. > > I'm replying to this patch since I can't find patch V12 46/47 anywhere in my > email. > > I've bisected a regression in the Linux kernel to this patch when an SEV-SNP > guest is booted. The following message is issued in the kernel for every AP > being brought online: > > APIC: Stale IRR: > 00000000,00000000,00000000,00000000,00000000,00000000,00000000,000 > 00020 ISR: > 00000000,00000000,00000000,00000000,00000000,00000000,00000000,000 > 00000 > > Possibly a timing issue involving the mode switch with the interrupt > unmasked. If I leave the interrupt masked and only un-mask it after the > programming of the init-count, then the message goes away.
Do you mean in InitializeApicTimer, it should follow below steps: 1. mask LvtTimer. (set LvtTimer.Bits.Mask = 1) 2. Do other stuff, including programing the init-count register. 3. un-mask LvtTimer (set LvtTimer.Bit.Mask = 0) Thanks Min -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#89673): https://edk2.groups.io/g/devel/message/89673 Mute This Topic: https://groups.io/mt/89446188/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-