* [PATCH 0/2] Remove useless code. @ 2020-04-10 6:53 Dong, Eric 2020-04-10 6:54 ` [PATCH 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: Remove Used parameter Dong, Eric 2020-04-10 6:54 ` [PATCH 2/2] UefiCpuPkg/PiSmmCpuDxeSmm: Remove useless code in ResetTokens Dong, Eric 0 siblings, 2 replies; 5+ messages in thread From: Dong, Eric @ 2020-04-10 6:53 UTC (permalink / raw) To: devel This patch serial used to remove some useless code. Detail see each patches. Eric Dong (2): UefiCpuPkg/PiSmmCpuDxeSmm: Remove Used parameter. UefiCpuPkg/PiSmmCpuDxeSmm: Remove useless code in ResetTokens. UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c | 30 ++++------------------ UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h | 1 - 2 files changed, 5 insertions(+), 26 deletions(-) -- 2.23.0.windows.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: Remove Used parameter. 2020-04-10 6:53 [PATCH 0/2] Remove useless code Dong, Eric @ 2020-04-10 6:54 ` Dong, Eric 2020-04-10 7:07 ` [edk2-devel] " Ni, Ray 2020-04-10 6:54 ` [PATCH 2/2] UefiCpuPkg/PiSmmCpuDxeSmm: Remove useless code in ResetTokens Dong, Eric 1 sibling, 1 reply; 5+ messages in thread From: Dong, Eric @ 2020-04-10 6:54 UTC (permalink / raw) To: devel; +Cc: Ray Ni, Star Zeng, Laszlo Ersek REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2388 After patch "UefiCpuPkg/PiSmmCpuDxeSmm: Improve the performance of GetFreeToken()" which adds new parameter FirstFreeToken, it's not need to use Uses parameter. This patch used to remove this parameter. Signed-off-by: Eric Dong <eric.dong@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> --- UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c | 10 +++++----- UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c index 93cac5e4fa..305bffa9bc 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c @@ -441,7 +441,6 @@ ResetTokens ( ProcToken = PROCEDURE_TOKEN_FROM_LINK (Link); ProcToken->RunningApCount = 0; - ProcToken->Used = FALSE; // // Check the spinlock status and release it if not released yet. @@ -1049,10 +1048,13 @@ IsTokenInUse ( } Link = GetFirstNode (&gSmmCpuPrivate->TokenList); - while (!IsNull (&gSmmCpuPrivate->TokenList, Link)) { + // + // Only search used tokens. + // + while (Link != gSmmCpuPrivate->FirstFreeToken) { ProcToken = PROCEDURE_TOKEN_FROM_LINK (Link); - if (ProcToken->Used && ProcToken->SpinLock == Token) { + if (ProcToken->SpinLock == Token) { return TRUE; } @@ -1104,7 +1106,6 @@ AllocateTokenBuffer ( ProcTokens[Index].Signature = PROCEDURE_TOKEN_SIGNATURE; ProcTokens[Index].SpinLock = SpinLock; - ProcTokens[Index].Used = FALSE; ProcTokens[Index].RunningApCount = 0; InsertTailList (&gSmmCpuPrivate->TokenList, &ProcTokens[Index].Link); @@ -1140,7 +1141,6 @@ GetFreeToken ( NewToken = PROCEDURE_TOKEN_FROM_LINK (gSmmCpuPrivate->FirstFreeToken); gSmmCpuPrivate->FirstFreeToken = GetNextNode (&gSmmCpuPrivate->TokenList, gSmmCpuPrivate->FirstFreeToken); - NewToken->Used = TRUE; NewToken->RunningApCount = RunningApsCount; AcquireSpinLock (NewToken->SpinLock); diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h b/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h index c9b3b739f3..7fb3a2d9e4 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h @@ -214,7 +214,6 @@ typedef struct { SPIN_LOCK *SpinLock; volatile UINT32 RunningApCount; - BOOLEAN Used; } PROCEDURE_TOKEN; #define PROCEDURE_TOKEN_FROM_LINK(a) CR (a, PROCEDURE_TOKEN, Link, PROCEDURE_TOKEN_SIGNATURE) -- 2.23.0.windows.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [edk2-devel] [PATCH 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: Remove Used parameter. 2020-04-10 6:54 ` [PATCH 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: Remove Used parameter Dong, Eric @ 2020-04-10 7:07 ` Ni, Ray 0 siblings, 0 replies; 5+ messages in thread From: Ni, Ray @ 2020-04-10 7:07 UTC (permalink / raw) To: devel@edk2.groups.io, Dong, Eric; +Cc: Zeng, Star, Laszlo Ersek > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Dong, Eric > Sent: Friday, April 10, 2020 2:54 PM > To: devel@edk2.groups.io > Cc: Ni, Ray <ray.ni@intel.com>; Zeng, Star <star.zeng@intel.com>; Laszlo Ersek <lersek@redhat.com> > Subject: [edk2-devel] [PATCH 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: Remove Used parameter. > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2388 > > > After patch "UefiCpuPkg/PiSmmCpuDxeSmm: Improve the > performance of GetFreeToken()" which adds new parameter > FirstFreeToken, it's not need to use Uses parameter. Used field in PROCEDURE_TOKEN structure is not needed > This patch used to remove this parameter. This patch removes this field. With above commit message change, Reviewed-by: Ray Ni <ray.ni@intel.com> ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] UefiCpuPkg/PiSmmCpuDxeSmm: Remove useless code in ResetTokens. 2020-04-10 6:53 [PATCH 0/2] Remove useless code Dong, Eric 2020-04-10 6:54 ` [PATCH 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: Remove Used parameter Dong, Eric @ 2020-04-10 6:54 ` Dong, Eric 2020-04-10 7:08 ` [edk2-devel] " Ni, Ray 1 sibling, 1 reply; 5+ messages in thread From: Dong, Eric @ 2020-04-10 6:54 UTC (permalink / raw) To: devel; +Cc: Ray Ni, Star Zeng, Laszlo Ersek REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2388 After remove Used parameter, below code in ResetTokens can also be removed: 1. The RunningApCount parameter will be reset in GetFreeToken. 2. The ReleaseSpinLock should be called in ReleaseToken function, Code in this function seems like a later fix if ReleaseToken not Release it. We should remove code here and fix the real issue if existed. Signed-off-by: Eric Dong <eric.dong@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> --- UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c index 305bffa9bc..57e788c01b 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c @@ -433,26 +433,6 @@ ResetTokens ( VOID ) { - LIST_ENTRY *Link; - PROCEDURE_TOKEN *ProcToken; - - Link = GetFirstNode (&gSmmCpuPrivate->TokenList); - while (!IsNull (&gSmmCpuPrivate->TokenList, Link)) { - ProcToken = PROCEDURE_TOKEN_FROM_LINK (Link); - - ProcToken->RunningApCount = 0; - - // - // Check the spinlock status and release it if not released yet. - // - if (!AcquireSpinLockOrFail(ProcToken->SpinLock)) { - DEBUG((DEBUG_ERROR, "Risk::SpinLock still not released!")); - } - ReleaseSpinLock (ProcToken->SpinLock); - - Link = GetNextNode (&gSmmCpuPrivate->TokenList, Link); - } - // // Reset the FirstFreeToken to the beginning of token list upon exiting SMI. // -- 2.23.0.windows.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [edk2-devel] [PATCH 2/2] UefiCpuPkg/PiSmmCpuDxeSmm: Remove useless code in ResetTokens. 2020-04-10 6:54 ` [PATCH 2/2] UefiCpuPkg/PiSmmCpuDxeSmm: Remove useless code in ResetTokens Dong, Eric @ 2020-04-10 7:08 ` Ni, Ray 0 siblings, 0 replies; 5+ messages in thread From: Ni, Ray @ 2020-04-10 7:08 UTC (permalink / raw) To: devel@edk2.groups.io, Dong, Eric; +Cc: Zeng, Star, Laszlo Ersek Reviewed-by: Ray Ni <ray.ni@intel.com> > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Dong, Eric > Sent: Friday, April 10, 2020 2:54 PM > To: devel@edk2.groups.io > Cc: Ni, Ray <ray.ni@intel.com>; Zeng, Star <star.zeng@intel.com>; Laszlo Ersek <lersek@redhat.com> > Subject: [edk2-devel] [PATCH 2/2] UefiCpuPkg/PiSmmCpuDxeSmm: Remove useless code in ResetTokens. > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2388 > > > After remove Used parameter, below code in ResetTokens can also be > removed: > 1. The RunningApCount parameter will be reset in GetFreeToken. > 2. The ReleaseSpinLock should be called in ReleaseToken function, > Code in this function seems like a later fix if ReleaseToken not > Release it. We should remove code here and fix the real issue if > existed. > > Signed-off-by: Eric Dong <eric.dong@intel.com> > Cc: Ray Ni <ray.ni@intel.com> > Cc: Star Zeng <star.zeng@intel.com> > Cc: Laszlo Ersek <lersek@redhat.com> > --- > UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c | 20 -------------------- > 1 file changed, 20 deletions(-) > > diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c > index 305bffa9bc..57e788c01b 100644 > --- a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c > +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c > @@ -433,26 +433,6 @@ ResetTokens ( > VOID > > ) > > { > > - LIST_ENTRY *Link; > > - PROCEDURE_TOKEN *ProcToken; > > - > > - Link = GetFirstNode (&gSmmCpuPrivate->TokenList); > > - while (!IsNull (&gSmmCpuPrivate->TokenList, Link)) { > > - ProcToken = PROCEDURE_TOKEN_FROM_LINK (Link); > > - > > - ProcToken->RunningApCount = 0; > > - > > - // > > - // Check the spinlock status and release it if not released yet. > > - // > > - if (!AcquireSpinLockOrFail(ProcToken->SpinLock)) { > > - DEBUG((DEBUG_ERROR, "Risk::SpinLock still not released!")); > > - } > > - ReleaseSpinLock (ProcToken->SpinLock); > > - > > - Link = GetNextNode (&gSmmCpuPrivate->TokenList, Link); > > - } > > - > > // > > // Reset the FirstFreeToken to the beginning of token list upon exiting SMI. > > // > > -- > 2.23.0.windows.1 > > > -=-=-=-=-=-= > Groups.io Links: You receive all messages sent to this group. > > View/Reply Online (#57184): https://edk2.groups.io/g/devel/message/57184 > Mute This Topic: https://groups.io/mt/72915832/1712937 > Group Owner: devel+owner@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub [ray.ni@intel.com] > -=-=-=-=-=-= ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-04-10 7:08 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-04-10 6:53 [PATCH 0/2] Remove useless code Dong, Eric 2020-04-10 6:54 ` [PATCH 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: Remove Used parameter Dong, Eric 2020-04-10 7:07 ` [edk2-devel] " Ni, Ray 2020-04-10 6:54 ` [PATCH 2/2] UefiCpuPkg/PiSmmCpuDxeSmm: Remove useless code in ResetTokens Dong, Eric 2020-04-10 7:08 ` [edk2-devel] " Ni, Ray
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox