Michael, Can you check my mail https://edk2.groups.io/g/devel/message/114369? I proposed another solution to fix the infinite nested interrupt issue which I think is simpler.
Thanks, Ray > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Michael > Brown > Sent: Tuesday, January 23, 2024 11:31 PM > To: devel@edk2.groups.io > Cc: Ni, Ray <ray...@intel.com>; Gerd Hoffmann <kra...@redhat.com>; Laszlo > Ersek <ler...@redhat.com>; Michael Brown <mc...@ipxe.org> > Subject: [edk2-devel] [PATCH v3 0/5] MdeModulePkg: Move > NestedInterruptTplLib to MdeModulePkg > > NestedInterruptTplLib provides a way for timer interrupt handlers > (which must support nested interrupts) to prevent unbounded stack > consumption. > > The underlying issue was first observed in OvmfPkg, since interrupt > storms can arise more easily in virtual machines due to CPU > starvation. However, careful investigation shows that the unbounded > stack consumption can also occur in physical machines. > > Move NestedInterruptTplLib from OvmfPkg to MdeModulePkg so that it can > more easily be consumed by drivers outside of OvmfPkg, adding a > self-test capability and support for Arm CPUs. > > Changes since v1: > - Add missing Iret.h to NestedInterruptTplLib sources list > > Changes since v2: > - Remove obsolete dependency of LocalApicTimerDxe on OvmfPkg > - Add to MdeModulePkg.dsc for build coverage > - Add self-tests > - Add support for Arm CPUs > > Michael Brown (5): > MdeModulePkg: Move NestedInterruptTplLib to MdeModulePkg > MdeModulePkg: Add missing Iret.h to NestedInterruptTplLib sources list > MdeModulePkg: Do nothing on > NestedInterruptRestoreTPL(TPL_HIGH_LEVEL) > MdeModulePkg: Add self-tests for NestedInterruptTplLib > MdeModulePkg: Extend NestedInterruptTplLib to support Arm CPUs > > MdeModulePkg/MdeModulePkg.dec | 8 + > OvmfPkg/OvmfPkg.dec | 4 - > MdeModulePkg/MdeModulePkg.dsc | 1 + > OvmfPkg/AmdSev/AmdSevX64.dsc | 2 +- > OvmfPkg/CloudHv/CloudHvX64.dsc | 2 +- > OvmfPkg/IntelTdx/IntelTdxX64.dsc | 2 +- > OvmfPkg/Microvm/MicrovmX64.dsc | 2 +- > OvmfPkg/OvmfPkgIa32.dsc | 2 +- > OvmfPkg/OvmfPkgIa32X64.dsc | 2 +- > OvmfPkg/OvmfPkgX64.dsc | 2 +- > OvmfPkg/OvmfXen.dsc | 2 +- > UefiPayloadPkg/UefiPayloadPkg.dsc | 2 +- > .../NestedInterruptTplLib.inf | 9 +- > .../LocalApicTimerDxe/LocalApicTimerDxe.inf | 2 +- > .../Include/Library/NestedInterruptTplLib.h | 4 + > .../Library/NestedInterruptTplLib/Iret.h | 0 > .../Library/NestedInterruptTplLib/Iret.c | 18 +++ > .../Library/NestedInterruptTplLib/Tpl.c | 142 ++++++++++++++++++ > 18 files changed, 191 insertions(+), 15 deletions(-) > rename {OvmfPkg => > MdeModulePkg}/Library/NestedInterruptTplLib/NestedInterruptTplLib.inf > (78%) > rename {OvmfPkg => > MdeModulePkg}/Include/Library/NestedInterruptTplLib.h (94%) > rename {OvmfPkg => MdeModulePkg}/Library/NestedInterruptTplLib/Iret.h > (100%) > rename {OvmfPkg => MdeModulePkg}/Library/NestedInterruptTplLib/Iret.c > (72%) > rename {OvmfPkg => MdeModulePkg}/Library/NestedInterruptTplLib/Tpl.c > (64%) > > -- > 2.43.0 > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#114399): https://edk2.groups.io/g/devel/message/114399 Mute This Topic: https://groups.io/mt/103911600/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-