Is there any use case of FirmwarePerformanceStandaloneMm.inf now?


Dandan Bi
 

Hi Kun,

 

I plan to make some change for FirmwarePerformanceSmm.inf, may also update the behavior of FirmwarePerformanceStandaloneMm.inf as they are sharing codes now.

And I saw you are the submitter of this driver. Could you help clarify following questions ? Thanks in advance.

 

  1. Do you have the use case to leverage FirmwarePerformanceStandaloneMm.inf to collect Standalone MM performance data now?
  2. Do you have any Library/module used by StandaloneMmCore to collect Standalone MM performance data and report the data to FirmwarePerformanceStandaloneMm like the SmmCorePerformanceLib used for SMM core?
  3. I plan to move some logic from FirmwarePerformanceDataTableSmm to SmmCorePerformanceLib as below. Do you think is it ok just to remove them from FirmwarePerformanceStandaloneMm.inf now?

If there is not any module to report Standalone MM performance data to FirmwarePerformanceStandaloneMm.inf, I think it should be OK to remove them from FirmwarePerformanceStandaloneMm now.

 

 

Change:

SMM performance data collection now:

  1. SmmCorePerformanceLib collect all the performance data in SMM and report the data to FirmwarePerformanceDataTableSmm through status code.
  2. DxeCorePerformanceLib will communicate with FirmwarePerformanceDataTableSmm to get the SMM performance data and allocate performance table to store all the performance data.

Now I want to simplify the process to make DxeCorePerformanceLib communicate with SmmCorePerformanceLib directly to collect SMM performance data, so FirmwarePerformanceDataTableSmm don’t need to get the SMM performance data from SmmCorePerformanceLib and register SMI handler for the communication with DxeCorePerformanceLib.

For FirmwarePerformanceStandaloneMm.inf, just remove this logic if there is no module to prepare MM performance data to it now.

 

 

Thanks,

Dandan


Kun Qin
 

Hi Dandan,

Thanks for letting me know. I added Bret and Sean to the thread for broader view in our scope.

But currently our StandaloneMm Core does not report performance data to FirmwarePerformanceStandaloneMm module.

Is the idea to centralize the performance report collection job to SmmCorePerformanceLib and remove the FirmwarePerformance**Mm driver? Is there any plan to support a Standalone instance once the traditional MM version is functional?

Thanks,
Kun

On 08/05/2021 04:44, Dandan Bi wrote:
Hi Kun,
I plan to make some change for FirmwarePerformanceSmm.inf, may also update the behavior of FirmwarePerformanceStandaloneMm.inf as they are sharing codes now.
And I saw you are the submitter of this driver. Could you help clarify following questions ? Thanks in advance.
1. Do you have the use case to leverage
FirmwarePerformanceStandaloneMm.inf to collect Standalone MM
performance data now?
2. Do you have any Library/module used by StandaloneMmCore to collect
Standalone MM performance data and report the data to
FirmwarePerformanceStandaloneMm like the SmmCorePerformanceLib used
for SMM core?
3. I plan to move some logic from FirmwarePerformanceDataTableSmm to
SmmCorePerformanceLib as below. Do you think is it ok just to remove
them from FirmwarePerformanceStandaloneMm.inf now?
If there is not any module to report Standalone MM performance data to FirmwarePerformanceStandaloneMm.inf, I think it should be OK to remove them from FirmwarePerformanceStandaloneMm now.
Change:
SMM performance data collection now:
1. SmmCorePerformanceLib collect all the performance data in SMM and
report the data to FirmwarePerformanceDataTableSmm through status
code. **
2. DxeCorePerformanceLib will communicate with
FirmwarePerformanceDataTableSmm to get the SMM performance data and
allocate performance table to store all the performance data.
Now I want to simplify the process to make DxeCorePerformanceLib communicate with SmmCorePerformanceLib directly to collect SMM performance data, so FirmwarePerformanceDataTableSmm don’t need to get the SMM performance data from SmmCorePerformanceLib and register SMI handler for the communication with DxeCorePerformanceLib.
For FirmwarePerformanceStandaloneMm.inf, just remove this logic if there is no module to prepare MM performance data to it now.
Thanks,
Dandan


Ni, Ray
 

It looks like a good topic to discuss in TianoCore Open Design meeting😊

Question to Dandan's proposal: Does it cause any conflict (or help) when standalone mm is launched from PEI?

Thanks,
Ray

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Kun Qin
Sent: Friday, August 6, 2021 6:49 AM
To: devel@edk2.groups.io; Bi, Dandan <dandan.bi@intel.com>; kun.q@outlook.com
Cc: Wu, Hao A <hao.a.wu@intel.com>; Wang, Jian J <jian.j.wang@intel.com>; gaoliming <gaoliming@byosoft.com.cn>; Yao,
Jiewen <jiewen.yao@intel.com>; Bret Barkelew <Bret.Barkelew@microsoft.com>; 'Sean Brogan' <sean.brogan@microsoft.com>
Subject: Re: [edk2-devel] Is there any use case of FirmwarePerformanceStandaloneMm.inf now?

Hi Dandan,

Thanks for letting me know. I added Bret and Sean to the thread for
broader view in our scope.

But currently our StandaloneMm Core does not report performance data to
FirmwarePerformanceStandaloneMm module.

Is the idea to centralize the performance report collection job to
SmmCorePerformanceLib and remove the FirmwarePerformance**Mm driver? Is
there any plan to support a Standalone instance once the traditional MM
version is functional?

Thanks,
Kun


On 08/05/2021 04:44, Dandan Bi wrote:
Hi Kun,

I plan to make some change for FirmwarePerformanceSmm.inf, may also
update the behavior of FirmwarePerformanceStandaloneMm.inf as they are
sharing codes now.

And I saw you are the submitter of this driver. Could you help clarify
following questions ? Thanks in advance.

1. Do you have the use case to leverage
FirmwarePerformanceStandaloneMm.inf to collect Standalone MM
performance data now?
2. Do you have any Library/module used by StandaloneMmCore to collect
Standalone MM performance data and report the data to
FirmwarePerformanceStandaloneMm like the SmmCorePerformanceLib used
for SMM core?
3. I plan to move some logic from FirmwarePerformanceDataTableSmm to
SmmCorePerformanceLib as below. Do you think is it ok just to remove
them from FirmwarePerformanceStandaloneMm.inf now?

If there is not any module to report Standalone MM performance data to
FirmwarePerformanceStandaloneMm.inf, I think it should be OK to remove
them from FirmwarePerformanceStandaloneMm now.

Change:

SMM performance data collection now:

1. SmmCorePerformanceLib collect all the performance data in SMM and
report the data to FirmwarePerformanceDataTableSmm through status
code. **
2. DxeCorePerformanceLib will communicate with
FirmwarePerformanceDataTableSmm to get the SMM performance data and
allocate performance table to store all the performance data.

Now I want to simplify the process to make DxeCorePerformanceLib
communicate with SmmCorePerformanceLib directly to collect SMM
performance data, so FirmwarePerformanceDataTableSmm don’t need to get
the SMM performance data from SmmCorePerformanceLib and register SMI
handler for the communication with DxeCorePerformanceLib.

For FirmwarePerformanceStandaloneMm.inf, just remove this logic if there
is no module to prepare MM performance data to it now.

Thanks,

Dandan




Dandan Bi
 

Hi Kun,

Thank you for the information.

Yes, the idea is to centralize the SMM performance report collection job to SmmCorePerformanceLib, and DxeCorePerformanceLib could communicate with SmmCorePerformanceLib for all SMM performance data rather than through FirmwarePerformance**Mm driver.
But we will not remove FirmwarePerformance**Mm driver, just remove the code logic related to **MM performance data which will be covered by **mmCorePerformanceLib.
FirmwarePerformance**Mm driver will still collect some performance data in S3 like the S3SuspendStart, S3SuspendEnd. We don't introduce any incompatible change.

If now StandaloneMm Core does not report performance data to FirmwarePerformanceStandaloneMm module, I think it should be ok to remove the handling of **MM performance data both in FirmwarePerformanceSmm and FirmwarePerformanceStandaloneMm now.
For SMM, the removed logic will be handled by SmmCorePerformanceLib
For StandaloneMm, I think we can submit an Edk2 feature to add a StandaloneMmCore instance with the same functionality of SmmCorePerformanceLib. As now the functionality of collecting StandaloneMm performance data is missing in Edk2.



Thanks,
Dandan

-----Original Message-----
From: Kun Qin <kuqin12@gmail.com>
Sent: Friday, August 6, 2021 6:49 AM
To: devel@edk2.groups.io; Bi, Dandan <dandan.bi@intel.com>;
kun.q@outlook.com
Cc: Wu, Hao A <hao.a.wu@intel.com>; Wang, Jian J <jian.j.wang@intel.com>;
gaoliming <gaoliming@byosoft.com.cn>; Yao, Jiewen
<jiewen.yao@intel.com>; Bret Barkelew <Bret.Barkelew@microsoft.com>;
'Sean Brogan' <sean.brogan@microsoft.com>
Subject: Re: [edk2-devel] Is there any use case of
FirmwarePerformanceStandaloneMm.inf now?

Hi Dandan,

Thanks for letting me know. I added Bret and Sean to the thread for broader
view in our scope.

But currently our StandaloneMm Core does not report performance data to
FirmwarePerformanceStandaloneMm module.

Is the idea to centralize the performance report collection job to
SmmCorePerformanceLib and remove the FirmwarePerformance**Mm
driver? Is there any plan to support a Standalone instance once the
traditional MM version is functional?

Thanks,
Kun


On 08/05/2021 04:44, Dandan Bi wrote:
Hi Kun,

I plan to make some change for FirmwarePerformanceSmm.inf, may also
update the behavior of FirmwarePerformanceStandaloneMm.inf as they
are
sharing codes now.

And I saw you are the submitter of this driver. Could you help clarify
following questions ? Thanks in advance.

1. Do you have the use case to leverage
FirmwarePerformanceStandaloneMm.inf to collect Standalone MM
performance data now?
2. Do you have any Library/module used by StandaloneMmCore to collect
Standalone MM performance data and report the data to
FirmwarePerformanceStandaloneMm like the SmmCorePerformanceLib
used
for SMM core?
3. I plan to move some logic from FirmwarePerformanceDataTableSmm to
SmmCorePerformanceLib as below. Do you think is it ok just to remove
them from FirmwarePerformanceStandaloneMm.inf now?

If there is not any module to report Standalone MM performance data to
FirmwarePerformanceStandaloneMm.inf, I think it should be OK to remove
them from FirmwarePerformanceStandaloneMm now.

Change:

SMM performance data collection now:

1. SmmCorePerformanceLib collect all the performance data in SMM and
report the data to FirmwarePerformanceDataTableSmm through status
code. **
2. DxeCorePerformanceLib will communicate with
FirmwarePerformanceDataTableSmm to get the SMM performance data
and
allocate performance table to store all the performance data.

Now I want to simplify the process to make DxeCorePerformanceLib
communicate with SmmCorePerformanceLib directly to collect SMM
performance data, so FirmwarePerformanceDataTableSmm don't need to
get
the SMM performance data from SmmCorePerformanceLib and register
SMI
handler for the communication with DxeCorePerformanceLib.

For FirmwarePerformanceStandaloneMm.inf, just remove this logic if
there is no module to prepare MM performance data to it now.

Thanks,

Dandan


Dandan Bi
 

Hi Ray,

I think for now it will not cause any issue when standalone mm is launched.
As the functionality of collecting StandaloneMm performance data itself is missing in Edk2.
So, it's ok to remove the related logic in FirmwarePerformanceStandaloneMm.inf now.

But later if we want to collect the StandaloneMm performance data, we should add the support in Edk2 like what SmmPerformanceLib/SmmCorePerformanceLib have done for SMM.


Thanks,
Dandan

-----Original Message-----
From: Ni, Ray <ray.ni@intel.com>
Sent: Friday, August 6, 2021 9:42 AM
To: devel@edk2.groups.io; kuqin12@gmail.com; Bi, Dandan
<dandan.bi@intel.com>; kun.q@outlook.com
Cc: Wu, Hao A <hao.a.wu@intel.com>; Wang, Jian J <jian.j.wang@intel.com>;
gaoliming <gaoliming@byosoft.com.cn>; Yao, Jiewen
<jiewen.yao@intel.com>; Bret Barkelew <Bret.Barkelew@microsoft.com>;
'Sean Brogan' <sean.brogan@microsoft.com>
Subject: RE: [edk2-devel] Is there any use case of
FirmwarePerformanceStandaloneMm.inf now?

It looks like a good topic to discuss in TianoCore Open Design meeting😊

Question to Dandan's proposal: Does it cause any conflict (or help) when
standalone mm is launched from PEI?

Thanks,
Ray

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Kun
Qin
Sent: Friday, August 6, 2021 6:49 AM
To: devel@edk2.groups.io; Bi, Dandan <dandan.bi@intel.com>;
kun.q@outlook.com
Cc: Wu, Hao A <hao.a.wu@intel.com>; Wang, Jian J
<jian.j.wang@intel.com>; gaoliming <gaoliming@byosoft.com.cn>; Yao,
Jiewen <jiewen.yao@intel.com>; Bret Barkelew
<Bret.Barkelew@microsoft.com>; 'Sean Brogan'
<sean.brogan@microsoft.com>
Subject: Re: [edk2-devel] Is there any use case of
FirmwarePerformanceStandaloneMm.inf now?

Hi Dandan,

Thanks for letting me know. I added Bret and Sean to the thread for
broader view in our scope.

But currently our StandaloneMm Core does not report performance data
to FirmwarePerformanceStandaloneMm module.

Is the idea to centralize the performance report collection job to
SmmCorePerformanceLib and remove the FirmwarePerformance**Mm
driver?
Is there any plan to support a Standalone instance once the
traditional MM version is functional?

Thanks,
Kun


On 08/05/2021 04:44, Dandan Bi wrote:
Hi Kun,

I plan to make some change for FirmwarePerformanceSmm.inf, may also
update the behavior of FirmwarePerformanceStandaloneMm.inf as they
are sharing codes now.

And I saw you are the submitter of this driver. Could you help
clarify following questions ? Thanks in advance.

1. Do you have the use case to leverage
FirmwarePerformanceStandaloneMm.inf to collect Standalone MM
performance data now?
2. Do you have any Library/module used by StandaloneMmCore to
collect
Standalone MM performance data and report the data to
FirmwarePerformanceStandaloneMm like the
SmmCorePerformanceLib used
for SMM core?
3. I plan to move some logic from FirmwarePerformanceDataTableSmm
to
SmmCorePerformanceLib as below. Do you think is it ok just to remove
them from FirmwarePerformanceStandaloneMm.inf now?

If there is not any module to report Standalone MM performance data
to FirmwarePerformanceStandaloneMm.inf, I think it should be OK to
remove them from FirmwarePerformanceStandaloneMm now.

Change:

SMM performance data collection now:

1. SmmCorePerformanceLib collect all the performance data in SMM and
report the data to FirmwarePerformanceDataTableSmm through status
code. **
2. DxeCorePerformanceLib will communicate with
FirmwarePerformanceDataTableSmm to get the SMM performance
data and
allocate performance table to store all the performance data.

Now I want to simplify the process to make DxeCorePerformanceLib
communicate with SmmCorePerformanceLib directly to collect SMM
performance data, so FirmwarePerformanceDataTableSmm don’t need
to
get the SMM performance data from SmmCorePerformanceLib and
register
SMI handler for the communication with DxeCorePerformanceLib.

For FirmwarePerformanceStandaloneMm.inf, just remove this logic if
there is no module to prepare MM performance data to it now.

Thanks,

Dandan