Re: 回复: 回复: [edk2-devel] [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV

2023-05-15 Thread Wendy Liao via groups.io

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

2023-05-10 Thread Wendy Liao via groups.io

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

2023-05-10 Thread Wendy Liao via groups.io



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]
-=-=-=-=-=-=-=-=-=-=-=-