public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: "Yao, Jiewen" <jiewen.yao@intel.com>,
	"'edk2-devel@ml01.01.org'" <edk2-devel@ml01.01.org>
Cc: "Kinney, Michael D" <michael.d.kinney@intel.com>,
	"Justen, Jordan L" <jordan.l.justen@intel.com>,
	"Tian, Feng" <feng.tian@intel.com>,
	"Zeng, Star" <star.zeng@intel.com>,
	"Gao, Liming" <liming.gao@intel.com>
Subject: Re: [PATCH 00/12] Add SmiHandlerProfile feature
Date: Tue, 21 Feb 2017 09:47:38 +0100	[thread overview]
Message-ID: <c92f48a5-0b7b-c079-0dee-fe5ea3c32d57@redhat.com> (raw)
In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503A8F2685@shsmsx102.ccr.corp.intel.com>

On 02/21/17 08:06, Yao, Jiewen wrote:
> HI Laszlo
> 
> We have enabled OVMF KVM, and validated this patch.

Fantastic!!! Thank you for making the effort!

> There is no impact to OVMF. Fedora Guest boot and S3 passes.

Hooray! :)

Thanks!
Laszlo

> 
>  
> 
> Thank you
> 
> Yao Jiewen
> 
>  
> 
>  
> 
> *From:*Yao, Jiewen
> *Sent:* Thursday, February 9, 2017 1:58 AM
> *To:* Yao, Jiewen <jiewen.yao@intel.com>; edk2-devel@ml01.01.org
> *Cc:* Kinney, Michael D <michael.d.kinney@intel.com>; Justen, Jordan L
> <jordan.l.justen@intel.com>; Tian, Feng <feng.tian@intel.com>; Zeng,
> Star <star.zeng@intel.com>; Gao, Liming <liming.gao@intel.com>; Laszlo
> Ersek (lersek@redhat.com) <lersek@redhat.com>
> *Subject:* RE: [edk2] [PATCH 00/12] Add SmiHandlerProfile feature
> 
>  
> 
> Hi Laszlo
> 
> Thanks for the comment.
> 
>  
> 
> To clarify something:
> 
>  
> 
> 1)       I did not enable SMI handler profile for OVMF because I notice
> the OVMF just use very few SMI handlers, and it does not have
> SmmChildDispatcher. Just like what you mentioned.
> 
>  
> 
> 2)       I forget to mention: I did regression test for OVMF IA32 and
> IA32X64 with default SmiHandlerProfile is DISABLED.
> 
> I boot to UEFI SHELL only, and I do not enter OS.
> 
> I think the risk is very low, because if SMI handler profile is
> disabled, there is no code logic change.
> 
>  
> 
> VOID
> 
> SmmCoreInitializeSmiHandlerProfile (
> 
>   VOID
> 
>   )
> 
> {
> 
>   EFI_STATUS  Status;
> 
>   VOID        *Registration;
> 
>   EFI_HANDLE  Handle;
> 
>  
> 
>   if((PcdGet8 (PcdSmiHandlerProfilePropertyMask) & 0x1) != 0) {
> 
>     InsertTailList (&mRootSmiEntryList, &mRootSmiEntry.AllEntries);
> 
>  
> 
>     Status = gSmst->SmmRegisterProtocolNotify (
> 
>                       &gEfiSmmReadyToLockProtocolGuid,
> 
>                       SmmReadyToLockInSmiHandlerProfile,
> 
>                       &Registration
> 
>                       );
> 
>     ASSERT_EFI_ERROR (Status);
> 
>  
> 
>     Handle = NULL;
> 
>     Status = gSmst->SmmInstallProtocolInterface (
> 
>                       &Handle,
> 
>                       &gSmiHandlerProfileGuid,
> 
>                       EFI_NATIVE_INTERFACE,
> 
>                       &mSmiHandlerProfile
> 
>                       );
> 
>     ASSERT_EFI_ERROR (Status);
> 
>   }
> 
> }
> 
>  
> 
> I do understand your concern, because OVMF has some special feature
> which might be different with real hardware.
> 
>  
> 
> At same time, I have to mention that, it is very hard to setup KVM in
> Linux. I did try to follow your description before on NX.
> 
> I spent one week, but still fail to launch the final image on my side, I
> have no idea on what is wrong. That was a horrible experience.
> 
>  
> 
> I will have a try to follow your new document.
> 
> If it can be setup successfully, easily and fortunately, I do want to
> run it.
> 
>  
> 
> Thank you
> 
> Yao Jiewen
> 
>  
> 
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Laszlo Ersek
> Sent: Wednesday, February 8, 2017 9:34 AM
> To: Yao, Jiewen <jiewen.yao@intel.com
> <mailto:jiewen.yao@intel.com>>; edk2-devel@ml01.01.org
> <mailto:edk2-devel@ml01.01.org>
> Cc: Kinney, Michael D <michael.d.kinney@intel.com
> <mailto:michael.d.kinney@intel.com>>; Justen, Jordan L <jordan.l.justen@intel.com
> <mailto:jordan.l.justen@intel.com>>; Tian, Feng <feng.tian@intel.com
> <mailto:feng.tian@intel.com>>; Zeng, Star <star.zeng@intel.com
> <mailto:star.zeng@intel.com>>; Gao, Liming <liming.gao@intel.com
> <mailto:liming.gao@intel.com>>
> Subject: Re: [edk2] [PATCH 00/12] Add SmiHandlerProfile feature
> 
> CC Jordan
> 
> On 02/08/17 17:30, Jiewen Yao wrote:
>> This series patch add SMI handler profile.
>> 
>> The purpose of SMI handler profile is to add the capability to dump 
>> all SMI handlers produced by the firmware in a given boot.
>> The SMI handlers here include
>> 1) Root SMI handlers registered with SMST->SmiHandlerRegister by SmmCore.
>> 2) GUID SMI handlers registered with SMST->SmiHandlerRegister by SmmCore.
>> 3) Hardware SMI handlers registered with 
>> SMM_XXX_DISPATCH_PROTOCOL->Register
>> by SmmChildDispatcher module.
>> 
>> The final log is an XML format log, including all SMM image name, all 
>> SMI handlers name, type, location (source file and line number), and 
>> the caller who registeres the handler.
>> 
>> We enabled Quark platform to show how to add support in SmmChildDispatcher.
> 
> Thanks for the CC.
> 
> This module seems quite large, and OVMF (to my knowledge) doesn't include any special handlers. (Nothing from category (3), and I couldn't say if anything from category (2)).
> 
> Do you think this module would be useful to enable in OVMF, conditionally, with -D SMI_HANDLER_PROFILE_ENABLE?
> 
> Beyond the question of its utility to OVMF developers and users, requiring a separate UEFI app to dump the profile, presumably from the UEFI shell, is not really flexible for OVMF. We can't / don't build applications into the firmware image (beyond the shell and UiApp), so users would have to build a virtual disk image with this app, or we'd have to provide scripts for the same.
> 
> For now, I believe we don't wish to enable this in OVMF.
> 
> If you CC'd me for regression-testing PiSmmCore, as it is built into OVMF, with the default PcdSmiHandlerProfilePropertyMask=0 value, then I respectfully point you to the following article:
> 
> https://github.com/tianocore/tianocore.github.io/wiki/Testing-SMM-with-QEMU,-KVM-and-libvirt
> 
> Please set up a KVM environment as documented there, and adopt it for regular SMM testing :) My strong hope is that, by adopting KVM as a regular test platform, Intel developers won't only catch OVMF regressions before they post patches, but they should also see their own productivity increase.
> 
> I assume it must be much easier to click "Play" in the Virt-Manager GUI and to boot to an OS, on top of the new firmware, in seconds, than to flash firmware to a physical board. It does not replace physical board testing, but should catch a number of errors more gracefully.
> 
> The test cases I wrote up include UEFI variable testing and ACPI S3. The guest OSes covered are Fedora 25 and Windows 10. Please give it a look.
> 
> Thanks!
> Laszlo
> 
>> 
>> NOTE: This SMI handler profile is a *DEBUG* feature only, to help 
>> platform developer or test engineer to audit the SMI handlers. Please 
>> do not include it in the final *RELEASE* image.
>> 
>> Cc: Michael D Kinney <michael.d.kinney@intel.com <mailto:michael.d.kinney@intel.com>>
>> Cc: Liming Gao <liming.gao@intel.com <mailto:liming.gao@intel.com>>
>> Cc: Feng Tian <feng.tian@intel.com <mailto:feng.tian@intel.com>>
>> Cc: Star Zeng <star.zeng@intel.com <mailto:star.zeng@intel.com>>
>> Cc: Laszlo Ersek <lersek@redhat.com <mailto:lersek@redhat.com>>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Jiewen Yao <jiewen.yao@intel.com <mailto:jiewen.yao@intel.com>>
>> 
>> Jiewen Yao (12):
>>   MdePkg/Include: Add SmiHandlerProfileLib.h
>>   MdePkg/SmiHandlerProfileLibNull: Add NULL instance.
>>   MdePkg/dsc: add SmiHandlerProfileLib to dsc.
>>   MdeModulePkg/include: Add SmiHandlerProfile header file.
>>   MdeModulePkg/dec: Add PcdSmiHandlerProfilePropertyMask.
>>   MdeModulePkg/SmmSmiHandlerProfileLib: Add SMM instance.
>>   MdeModulePkg/PiSmmCore: Add SmiHandlerProfile support.
>>   MdeModulePkg/App: Add SmiHandlerProfile dump app.
>>   MdeModulePkg/dsc: add SmiHandlerProfile to dsc.
>>   BaseTool/Script: Add SmiHandleProfile OS tool to get symbol.
>>   QuarkSocPkg/SmmChildDispatch: Add SmiHandlerProfile support.
>>   QuarkPlatformPkg: enable SmiHandlerProfile.
>> 
>>  BaseTools/Scripts/SmiHandlerProfileSymbolGen.py                                |  351 ++++++
>>  MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo.c         |  685 +++++++++++
>>  MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo.inf       |   65 +
>>  MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo.uni       |   22 +
>>  MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfoExtra.uni  |   19 +
>>  MdeModulePkg/Core/PiSmmCore/PiSmmCore.c                                        |    4 +-
>>  MdeModulePkg/Core/PiSmmCore/PiSmmCore.h                                        |   89 +-
>>  MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf                                      |   17 +-
>>  MdeModulePkg/Core/PiSmmCore/Smi.c                                              |   46 +-
>>  MdeModulePkg/Core/PiSmmCore/SmiHandlerProfile.c                                | 1261 ++++++++++++++++++++
>>  MdeModulePkg/Include/Guid/SmiHandlerProfile.h                                  |  177 +++
>>  MdeModulePkg/Library/SmmSmiHandlerProfileLib/SmmSmiHandlerProfileLib.c         |  106 ++
>>  MdeModulePkg/Library/SmmSmiHandlerProfileLib/SmmSmiHandlerProfileLib.inf       |   46 +
>>  MdeModulePkg/Library/SmmSmiHandlerProfileLib/SmmSmiHandlerProfileLib.uni       |   21 +
>>  MdeModulePkg/MdeModulePkg.dec                                                  |   11 +-
>>  MdeModulePkg/MdeModulePkg.dsc                                                  |    2 +
>>  MdePkg/Include/Library/SmiHandlerProfileLib.h                                  |   81 ++
>>  MdePkg/Library/SmiHandlerProfileLibNull/SmiHandlerProfileLibNull.c             |   72 ++
>>  MdePkg/Library/SmiHandlerProfileLibNull/SmiHandlerProfileLibNull.inf           |   36 +
>>  MdePkg/Library/SmiHandlerProfileLibNull/SmiHandlerProfileLibNull.uni           |   21 +
>>  MdePkg/MdePkg.dec                                                              |    5 +-
>>  MdePkg/MdePkg.dsc                                                              |    3 +-
>>  QuarkPlatformPkg/Quark.dsc                                                     |   16 +-
>>  QuarkPlatformPkg/Quark.fdf                                                     |    3 +-
>>  QuarkPlatformPkg/QuarkMin.dsc                                                  |    5 +-
>>  QuarkPlatformPkg/Readme.md                                                     |   29 +-
>>  QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmmCore.c         |   19 +-
>>  QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmmDispatcher.inf |    3 +-
>>  28 files changed, 3159 insertions(+), 56 deletions(-)  create mode 
>> 100644 BaseTools/Scripts/SmiHandlerProfileSymbolGen.py
>>  create mode 100644 
>> MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo.c
>>  create mode 100644 
>> MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo.i
>> nf  create mode 100644 
>> MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo.u
>> ni  create mode 100644 
>> MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfoEx
>> tra.uni  create mode 100644 
>> MdeModulePkg/Core/PiSmmCore/SmiHandlerProfile.c
>>  create mode 100644 MdeModulePkg/Include/Guid/SmiHandlerProfile.h
>>  create mode 100644 
>> MdeModulePkg/Library/SmmSmiHandlerProfileLib/SmmSmiHandlerProfileLib.c
>>  create mode 100644 
>> MdeModulePkg/Library/SmmSmiHandlerProfileLib/SmmSmiHandlerProfileLib.i
>> nf  create mode 100644 
>> MdeModulePkg/Library/SmmSmiHandlerProfileLib/SmmSmiHandlerProfileLib.u
>> ni  create mode 100644 MdePkg/Include/Library/SmiHandlerProfileLib.h
>>  create mode 100644 
>> MdePkg/Library/SmiHandlerProfileLibNull/SmiHandlerProfileLibNull.c
>>  create mode 100644 
>> MdePkg/Library/SmiHandlerProfileLibNull/SmiHandlerProfileLibNull.inf
>>  create mode 100644 
>> MdePkg/Library/SmiHandlerProfileLibNull/SmiHandlerProfileLibNull.uni
>> 
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org>
> https://lists.01.org/mailman/listinfo/edk2-devel
> 



  reply	other threads:[~2017-02-21  8:47 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-08 16:30 [PATCH 00/12] Add SmiHandlerProfile feature Jiewen Yao
2017-02-08 16:30 ` [PATCH 01/12] MdePkg/Include: Add SmiHandlerProfileLib.h Jiewen Yao
2017-02-10  3:28   ` Gao, Liming
2017-02-08 16:30 ` [PATCH 02/12] MdePkg/SmiHandlerProfileLibNull: Add NULL instance Jiewen Yao
2017-02-10  3:29   ` Gao, Liming
2017-02-10  4:38     ` Yao, Jiewen
2017-02-08 16:30 ` [PATCH 03/12] MdePkg/dsc: add SmiHandlerProfileLib to dsc Jiewen Yao
2017-02-08 16:30 ` [PATCH 04/12] MdeModulePkg/include: Add SmiHandlerProfile header file Jiewen Yao
2017-02-08 16:30 ` [PATCH 05/12] MdeModulePkg/dec: Add PcdSmiHandlerProfilePropertyMask Jiewen Yao
2017-02-08 16:30 ` [PATCH 06/12] MdeModulePkg/SmmSmiHandlerProfileLib: Add SMM instance Jiewen Yao
2017-02-08 16:30 ` [PATCH 07/12] MdeModulePkg/PiSmmCore: Add SmiHandlerProfile support Jiewen Yao
2017-02-08 16:30 ` [PATCH 08/12] MdeModulePkg/App: Add SmiHandlerProfile dump app Jiewen Yao
2017-02-08 16:30 ` [PATCH 09/12] MdeModulePkg/dsc: add SmiHandlerProfile to dsc Jiewen Yao
2017-02-08 17:34 ` [PATCH 00/12] Add SmiHandlerProfile feature Laszlo Ersek
     [not found]   ` <BF2CCE9263284D428840004653A28B6E53F5E3BC@SHSMSX103.ccr.corp.intel.com>
2017-02-08 17:57     ` Yao, Jiewen
2017-02-08 18:28       ` Laszlo Ersek
2017-02-08 18:37         ` Yao, Jiewen
2017-02-21  7:06       ` Yao, Jiewen
2017-02-21  8:47         ` Laszlo Ersek [this message]
2017-02-22  6:48 ` Zeng, Star

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c92f48a5-0b7b-c079-0dee-fe5ea3c32d57@redhat.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox