Reviewed-by: Ruiyu Ni <ruiyu...@intel.com> Thanks/Ray
> -----Original Message----- > From: Fan, Jeff > Sent: Tuesday, November 29, 2016 3:17 PM > To: edk2-devel@lists.01.org > Cc: Ni, Ruiyu <ruiyu...@intel.com>; Yao, Jiewen <jiewen....@intel.com>; > Kinney, Michael D <michael.d.kin...@intel.com> > Subject: [PATCH] SourceLevelDebugPkg: Avoid to re-init IDT table again at > SMI entry > > Current SmmDebugAgentLib will initialize IDT table to support source > debugging at each time SMI entry on SMM BSP. Actually, we only need to > initialize IDT table at first time SMI entry. > > Add one flag to avoid re-initializing IDT table. > > Cc: Ruiyu Ni <ruiyu...@intel.com> > Cc: Jiewen Yao <jiewen....@intel.com> > Cc: Michael D Kinney <michael.d.kin...@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jeff Fan <jeff....@intel.com> > --- > .../Library/DebugAgent/SmmDebugAgent/SmmDebugAgentLib.c | 10 > +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git > a/SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgent/SmmDebug > AgentLib.c > b/SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgent/SmmDebu > gAgentLib.c > index 701c4be..6216142 100644 > --- > a/SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgent/SmmDebug > AgentLib.c > +++ > b/SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgent/SmmDebu > gAgent > +++ Lib.c > @@ -19,6 +19,7 @@ DEBUG_AGENT_MAILBOX mLocalMailbox; > UINTN mSavedDebugRegisters[6]; > IA32_IDT_GATE_DESCRIPTOR mIdtEntryTable[33]; > BOOLEAN mSkipBreakpoint = FALSE; > +BOOLEAN mSmmDebugIdtInitFlag = FALSE; > > CHAR8 mWarningMsgIgnoreSmmEntryBreak[] = "Ignore smmentrybreak > setting for SMI issued during DXE debugging!\r\n"; > > @@ -276,7 +277,14 @@ InitializeDebugAgent ( > > case DEBUG_AGENT_INIT_ENTER_SMI: > SaveDebugRegister (); > - InitializeDebugIdt (); > + if (!mSmmDebugIdtInitFlag) { > + // > + // We only need to initialize Debug IDT table at first SMI entry > + // after SMM relocation. > + // > + InitializeDebugIdt (); > + mSmmDebugIdtInitFlag = TRUE; > + } > // > // Check if CPU APIC Timer is working, otherwise initialize it. > // > -- > 2.9.3.windows.2 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel