public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV
@ 2023-05-10  6:22 Wendy Liao
  2023-05-11  1:32 ` 回复: [edk2-devel] " gaoliming
  0 siblings, 1 reply; 6+ messages in thread
From: Wendy Liao @ 2023-05-10  6:22 UTC (permalink / raw)
  To: devel; +Cc: Leon Chen, Tim Lewis


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 <leon.chen@insyde.com>
Cc: Tim Lewis <tim.lewis@insyde.com>
Reported-by: Esther Lee <esther.lee@insyde.com>
Signed-off-by: Wendy Liao <wendy.liao@insyde.com>

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



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* 回复: [edk2-devel] [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV
  2023-05-10  6:22 [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV Wendy Liao
@ 2023-05-11  1:32 ` gaoliming
  2023-05-11  2:22   ` Wendy Liao
  0 siblings, 1 reply; 6+ messages in thread
From: gaoliming @ 2023-05-11  1:32 UTC (permalink / raw)
  To: devel, wendy.liao; +Cc: 'Leon Chen', 'Tim Lewis'

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 <devel@edk2.groups.io> 代表 Wendy Liao
> via groups.io
> 发送时间: 2023年5月10日 14:23
> 收件人: devel@edk2.groups.io
> 抄送: Leon Chen <leon.chen@insyde.com>; Tim Lewis
> <tim.lewis@insyde.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 <leon.chen@insyde.com>
> Cc: Tim Lewis <tim.lewis@insyde.com>
> Reported-by: Esther Lee <esther.lee@insyde.com>
> Signed-off-by: Wendy Liao <wendy.liao@insyde.com>
> 
> ---
>   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
> 
> 
> 
> 
> 
> 




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: 回复: [edk2-devel] [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV
  2023-05-11  1:32 ` 回复: [edk2-devel] " gaoliming
@ 2023-05-11  2:22   ` Wendy Liao
  2023-05-11  2:53     ` 回复: " gaoliming
  0 siblings, 1 reply; 6+ messages in thread
From: Wendy Liao @ 2023-05-11  2:22 UTC (permalink / raw)
  To: gaoliming, devel; +Cc: 'Leon Chen', 'Tim Lewis'

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 <devel@edk2.groups.io> 代表 Wendy Liao
>> via groups.io
>> 发送时间: 2023年5月10日 14:23
>> 收件人: devel@edk2.groups.io
>> 抄送: Leon Chen <leon.chen@insyde.com>; Tim Lewis
>> <tim.lewis@insyde.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 <leon.chen@insyde.com>
>> Cc: Tim Lewis <tim.lewis@insyde.com>
>> Reported-by: Esther Lee <esther.lee@insyde.com>
>> Signed-off-by: Wendy Liao <wendy.liao@insyde.com>
>>
>> ---
>>    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
>>
>>
>>
>>
>> 
>>
>
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* 回复: 回复: [edk2-devel] [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV
  2023-05-11  2:22   ` Wendy Liao
@ 2023-05-11  2:53     ` gaoliming
  2023-05-15  5:18       ` Wendy Liao
  0 siblings, 1 reply; 6+ messages in thread
From: gaoliming @ 2023-05-11  2:53 UTC (permalink / raw)
  To: devel, wendy.liao; +Cc: 'Leon Chen', 'Tim Lewis'

Wendy:
  I understand the problem now. Your fix is correct. Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>

  This is a bug fix. I suggest to merge it for this stable tag 202305. 

Thanks
Liming
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Wendy Liao
> via groups.io
> 发送时间: 2023年5月11日 10:23
> 收件人: gaoliming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io
> 抄送: 'Leon Chen' <leon.chen@insyde.com>; 'Tim Lewis'
> <tim.lewis@insyde.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 <devel@edk2.groups.io> 代表 Wendy
> Liao
> >> via groups.io
> >> 发送时间: 2023年5月10日 14:23
> >> 收件人: devel@edk2.groups.io
> >> 抄送: Leon Chen <leon.chen@insyde.com>; Tim Lewis
> >> <tim.lewis@insyde.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 <leon.chen@insyde.com>
> >> Cc: Tim Lewis <tim.lewis@insyde.com>
> >> Reported-by: Esther Lee <esther.lee@insyde.com>
> >> Signed-off-by: Wendy Liao <wendy.liao@insyde.com>
> >>
> >> ---
> >>    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
> >>
> >>
> >>
> >>
> >>
> >>
> >
> >
> 
> 
> 
> 




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: 回复: 回复: [edk2-devel] [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV
  2023-05-11  2:53     ` 回复: " gaoliming
@ 2023-05-15  5:18       ` Wendy Liao
  2023-05-16  1:23         ` 回复: 回复: 回复: [edk2-stable202305] " gaoliming
  0 siblings, 1 reply; 6+ messages in thread
From: Wendy Liao @ 2023-05-15  5:18 UTC (permalink / raw)
  To: gaoliming, devel; +Cc: 'Leon Chen', 'Tim Lewis'

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 <gaoliming@byosoft.com.cn>
>
>    This is a bug fix. I suggest to merge it for this stable tag 202305.
>
> Thanks
> Liming
>> -----邮件原件-----
>> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Wendy Liao
>> via groups.io
>> 发送时间: 2023年5月11日 10:23
>> 收件人: gaoliming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io
>> 抄送: 'Leon Chen' <leon.chen@insyde.com>; 'Tim Lewis'
>> <tim.lewis@insyde.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 <devel@edk2.groups.io> 代表 Wendy
>> Liao
>>>> via groups.io
>>>> 发送时间: 2023年5月10日 14:23
>>>> 收件人: devel@edk2.groups.io
>>>> 抄送: Leon Chen <leon.chen@insyde.com>; Tim Lewis
>>>> <tim.lewis@insyde.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 <leon.chen@insyde.com>
>>>> Cc: Tim Lewis <tim.lewis@insyde.com>
>>>> Reported-by: Esther Lee <esther.lee@insyde.com>
>>>> Signed-off-by: Wendy Liao <wendy.liao@insyde.com>
>>>>
>>>> ---
>>>>     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
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>> 
>>
>
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* 回复: 回复: 回复: [edk2-stable202305] [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV
  2023-05-15  5:18       ` Wendy Liao
@ 2023-05-16  1:23         ` gaoliming
  0 siblings, 0 replies; 6+ messages in thread
From: gaoliming @ 2023-05-16  1:23 UTC (permalink / raw)
  To: devel, wendy.liao
  Cc: 'Leon Chen', 'Tim Lewis',
	'Michael D Kinney', 'Andrew Fish',
	'Demeter, Miki', 'Leif Lindholm'

Wendy:
  I agree this is bug fix in PeiCore to support more than one FV images those all have apriori list.

  If no other comments, I will merge it for this stable tag 202305. 

Thanks
Liming
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Wendy Liao
> via groups.io
> 发送时间: 2023年5月15日 13:18
> 收件人: gaoliming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io
> 抄送: 'Leon Chen' <leon.chen@insyde.com>; 'Tim Lewis'
> <tim.lewis@insyde.com>
> 主题: 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 <gaoliming@byosoft.com.cn>
> >
> >    This is a bug fix. I suggest to merge it for this stable tag 202305.
> >
> > Thanks
> > Liming
> >> -----邮件原件-----
> >> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Wendy
> Liao
> >> via groups.io
> >> 发送时间: 2023年5月11日 10:23
> >> 收件人: gaoliming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io
> >> 抄送: 'Leon Chen' <leon.chen@insyde.com>; 'Tim Lewis'
> >> <tim.lewis@insyde.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 <devel@edk2.groups.io> 代表 Wendy
> >> Liao
> >>>> via groups.io
> >>>> 发送时间: 2023年5月10日 14:23
> >>>> 收件人: devel@edk2.groups.io
> >>>> 抄送: Leon Chen <leon.chen@insyde.com>; Tim Lewis
> >>>> <tim.lewis@insyde.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 <leon.chen@insyde.com>
> >>>> Cc: Tim Lewis <tim.lewis@insyde.com>
> >>>> Reported-by: Esther Lee <esther.lee@insyde.com>
> >>>> Signed-off-by: Wendy Liao <wendy.liao@insyde.com>
> >>>>
> >>>> ---
> >>>>     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
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>
> >>
> >>
> >
> >
> 
> 
> 
> 




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-05-16  1:23 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-10  6:22 [PATCH] MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV Wendy Liao
2023-05-11  1:32 ` 回复: [edk2-devel] " gaoliming
2023-05-11  2:22   ` Wendy Liao
2023-05-11  2:53     ` 回复: " gaoliming
2023-05-15  5:18       ` Wendy Liao
2023-05-16  1:23         ` 回复: 回复: 回复: [edk2-stable202305] " gaoliming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox