Re: 回复: 回复: [edk2-devel] [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV
Hi Liming, Merged https://github.com/tianocore/edk2/pull/4397 Thank you. Best Regards, Wendy Liao Insyde Software Corp. Phone: +886-2-6608-3688 Ext.8731 gaoliming 於 2023/05/11 上午 10:53 寫道: Wendy: I understand the problem now. Your fix is correct. Reviewed-by: Liming Gao This is a bug fix. I suggest to merge it for this stable tag 202305. Thanks Liming -邮件原件- 发件人: devel@edk2.groups.io 代表 Wendy Liao via groups.io 发送时间: 2023年5月11日 10:23 收件人: gaoliming ; devel@edk2.groups.io 抄送: 'Leon Chen' ; 'Tim Lewis' 主题: Re: 回复: [edk2-devel] [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV Hi gaoliming, DiscoverPeimsAndOrderWithApriori () will not reset Private->AprioriCount to Zero when CoreFileHandle->ScanFv = TRUE. DiscoverPeimsAndOrderWithApriori () { ... if (CoreFileHandle->ScanFv) { Private->CurrentFvFileHandles = CoreFileHandle->FvFileHandles; return; } ... } After go through all FV and the last FV has one or more Apriori Peim, Private->AprioriCount will not be reset to 0 anymore. Scan loop 1 [FV1] Before DiscoverPeimsAndOrderWithApriori () : Private->AprioriCount = 0, CoreFileHandle->ScanFv = FALSE After DiscoverPeimsAndOrderWithApriori (): Private->AprioriCount = 2, CoreFileHandle->ScanFv = TRUE [FV2] Before DiscoverPeimsAndOrderWithApriori () : Private->AprioriCount = 2, CoreFileHandle->ScanFv = FALSE After DiscoverPeimsAndOrderWithApriori (): Private->AprioriCount = 0, CoreFileHandle->ScanFv = TRUE ... [FVn] Before DiscoverPeimsAndOrderWithApriori () : Private->AprioriCount = 0, CoreFileHandle->ScanFv = FALSE After DiscoverPeimsAndOrderWithApriori (): Private->AprioriCount = 1, CoreFileHandle->ScanFv = TRUE Scan loop 2 [FV1] Before DiscoverPeimsAndOrderWithApriori () : Private->AprioriCount = 1, CoreFileHandle->ScanFv = TRUE After DiscoverPeimsAndOrderWithApriori (): Private->AprioriCount = 1, CoreFileHandle->ScanFv = TRUE Best Regards, Wendy Liao Insyde Software Corp. Phone: +886-2-6608-3688 Ext.8731 gaoliming 於 2023/05/11 上午 09:32 寫道: Wendy: DiscoverPeimsAndOrderWithApriori () has the logic to reset Private->AprioriCount as zero. It will set the real AprioriCount for each FV when this FV first scans, then dispatch the peims in the apriori list. So, I don't think there is the issue here. Do you find the real functionality issue? Thanks Liming -----邮件原件- 发件人: devel@edk2.groups.io 代表 Wendy Liao via groups.io 发送时间: 2023年5月10日 14:23 收件人: devel@edk2.groups.io 抄送: Leon Chen ; Tim Lewis 主题: [edk2-devel] [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4438 The main dispatch loop in PeiDispatcher() goes through each FV and calls DiscoverPeimsAndOrderWithApriori() to search Apriori file to reorder all PEIMs then do the PEIM dispatched. DiscoverPeimsAndOrderWithApriori() calculates Apriori file count for every FV once and set Private->AprioriCount, but Private->AprioriCount doesn't be set to 0 before dispatch loop walking through the next FV. It causes the peim which sort on less than Private->AprioriCount and depex is not satisfied would be dispatched when dispatch loop go through to a scaned FV, even the peim is not set in APRIORI file. Cc: Leon Chen Cc: Tim Lewis Reported-by: Esther Lee Signed-off-by: Wendy Liao --- MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c | 1 + 1 file changed, 1 insertion(+) diff --git a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c index d8284f9f4f..5f32ebb560 100644 --- a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c +++ b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c @@ -1630,6 +1630,7 @@ PeiDispatcher ( Private->CurrentFileHandle= NULL; Private->CurrentPeimCount = 0; Private->CurrentFvFileHandles = NULL; + Private->AprioriCount = 0; } // -- 2.29.2.windows.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#104868): https://edk2.groups.io/g/devel/message/104868 Mute This Topic: https://groups.io/mt/98820431/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: 回复: [edk2-devel] [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV
Hi gaoliming, DiscoverPeimsAndOrderWithApriori () will not reset Private->AprioriCount to Zero when CoreFileHandle->ScanFv = TRUE. DiscoverPeimsAndOrderWithApriori () { ... if (CoreFileHandle->ScanFv) { Private->CurrentFvFileHandles = CoreFileHandle->FvFileHandles; return; } ... } After go through all FV and the last FV has one or more Apriori Peim, Private->AprioriCount will not be reset to 0 anymore. Scan loop 1 [FV1] Before DiscoverPeimsAndOrderWithApriori () : Private->AprioriCount = 0, CoreFileHandle->ScanFv = FALSE After DiscoverPeimsAndOrderWithApriori () : Private->AprioriCount = 2, CoreFileHandle->ScanFv = TRUE [FV2] Before DiscoverPeimsAndOrderWithApriori () : Private->AprioriCount = 2, CoreFileHandle->ScanFv = FALSE After DiscoverPeimsAndOrderWithApriori () : Private->AprioriCount = 0, CoreFileHandle->ScanFv = TRUE ... [FVn] Before DiscoverPeimsAndOrderWithApriori () : Private->AprioriCount = 0, CoreFileHandle->ScanFv = FALSE After DiscoverPeimsAndOrderWithApriori () : Private->AprioriCount = 1, CoreFileHandle->ScanFv = TRUE Scan loop 2 [FV1] Before DiscoverPeimsAndOrderWithApriori () : Private->AprioriCount = 1, CoreFileHandle->ScanFv = TRUE After DiscoverPeimsAndOrderWithApriori () : Private->AprioriCount = 1, CoreFileHandle->ScanFv = TRUE Best Regards, Wendy Liao Insyde Software Corp. Phone: +886-2-6608-3688 Ext.8731 gaoliming 於 2023/05/11 上午 09:32 寫道: Wendy: DiscoverPeimsAndOrderWithApriori () has the logic to reset Private->AprioriCount as zero. It will set the real AprioriCount for each FV when this FV first scans, then dispatch the peims in the apriori list. So, I don't think there is the issue here. Do you find the real functionality issue? Thanks Liming -邮件原件- 发件人: devel@edk2.groups.io 代表 Wendy Liao via groups.io 发送时间: 2023年5月10日 14:23 收件人: devel@edk2.groups.io 抄送: Leon Chen ; Tim Lewis 主题: [edk2-devel] [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4438 The main dispatch loop in PeiDispatcher() goes through each FV and calls DiscoverPeimsAndOrderWithApriori() to search Apriori file to reorder all PEIMs then do the PEIM dispatched. DiscoverPeimsAndOrderWithApriori() calculates Apriori file count for every FV once and set Private->AprioriCount, but Private->AprioriCount doesn't be set to 0 before dispatch loop walking through the next FV. It causes the peim which sort on less than Private->AprioriCount and depex is not satisfied would be dispatched when dispatch loop go through to a scaned FV, even the peim is not set in APRIORI file. Cc: Leon Chen Cc: Tim Lewis Reported-by: Esther Lee Signed-off-by: Wendy Liao --- MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c | 1 + 1 file changed, 1 insertion(+) diff --git a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c index d8284f9f4f..5f32ebb560 100644 --- a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c +++ b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c @@ -1630,6 +1630,7 @@ PeiDispatcher ( Private->CurrentFileHandle= NULL; Private->CurrentPeimCount = 0; Private->CurrentFvFileHandles = NULL; + Private->AprioriCount = 0; } // -- 2.29.2.windows.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#104657): https://edk2.groups.io/g/devel/message/104657 Mute This Topic: https://groups.io/mt/98819385/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[edk2-devel] [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4438 The main dispatch loop in PeiDispatcher() goes through each FV and calls DiscoverPeimsAndOrderWithApriori() to search Apriori file to reorder all PEIMs then do the PEIM dispatched. DiscoverPeimsAndOrderWithApriori() calculates Apriori file count for every FV once and set Private->AprioriCount, but Private->AprioriCount doesn't be set to 0 before dispatch loop walking through the next FV. It causes the peim which sort on less than Private->AprioriCount and depex is not satisfied would be dispatched when dispatch loop go through to a scaned FV, even the peim is not set in APRIORI file. Cc: Leon Chen Cc: Tim Lewis Reported-by: Esther Lee Signed-off-by: Wendy Liao --- MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c | 1 + 1 file changed, 1 insertion(+) diff --git a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c index d8284f9f4f..5f32ebb560 100644 --- a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c +++ b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c @@ -1630,6 +1630,7 @@ PeiDispatcher ( Private->CurrentFileHandle = NULL; Private->CurrentPeimCount = 0; Private->CurrentFvFileHandles = NULL; + Private->AprioriCount = 0; } // -- 2.29.2.windows.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#104592): https://edk2.groups.io/g/devel/message/104592 Mute This Topic: https://groups.io/mt/98810132/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-