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]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to