[edk2-devel] [PATCH v3 0/5] MdeModulePkg: Move NestedInterruptTplLib to MdeModulePkg

Michael Brown posted 5 patches 9 months, 1 week ago
Only 0 patches received!
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%)
[edk2-devel] [PATCH v3 0/5] MdeModulePkg: Move NestedInterruptTplLib to MdeModulePkg
Posted by Michael Brown 9 months, 1 week ago
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 (#114206): https://edk2.groups.io/g/devel/message/114206
Mute This Topic: https://groups.io/mt/103911600/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH v3 0/5] MdeModulePkg: Move NestedInterruptTplLib to MdeModulePkg
Posted by Ni, Ray 9 months, 1 week ago
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.ni@intel.com>; Gerd Hoffmann <kraxel@redhat.com>; Laszlo
> Ersek <lersek@redhat.com>; Michael Brown <mcb30@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/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/3901457/1787277/102458076/xyzzy [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-