From: "Ni, Ray" <ray.ni@intel.com>
To: "Xu, Wei6" <wei6.xu@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>,
Sami Mujawar <sami.mujawar@arm.com>
Subject: Re: [edk2-devel] [PATCH 1/1] StandaloneMmPkg/Core: Restart dispatcher once MmEntryPoint is registered
Date: Thu, 23 Nov 2023 01:48:44 +0000 [thread overview]
Message-ID: <MN6PR11MB824482972F8A1B7CA906093A8CB9A@MN6PR11MB8244.namprd11.prod.outlook.com> (raw)
In-Reply-To: <e0d1d298e0b50b1fec9edc31d296f0cc2cab9d66.1700456330.git.wei6.xu@intel.com>
> + gRequestDispatch = TRUE;
> + gDispatcherRunning = FALSE;
1. It's good to set RequestDispatch to TRUE as it exits unconditionally and very likely more drivers can be dispatched later.
2. Since StandaloneMmCore registers a SMI handler, it's possible that some SMM driver entry calls MmiManage() to explicitly
request to dispatch. DispatcherRunning is a flag to avoid re-entrance. It's good.
> /**
> Traverse the discovered list for any drivers that were discovered but not
> loaded
> because the dependency expressions evaluated to false.
> diff --git a/StandaloneMmPkg/Core/StandaloneMmCore.c
> b/StandaloneMmPkg/Core/StandaloneMmCore.c
> index d221f1d1115d..e65edee6d8c2 100644
> --- a/StandaloneMmPkg/Core/StandaloneMmCore.c
> +++ b/StandaloneMmPkg/Core/StandaloneMmCore.c
> @@ -84,6 +84,7 @@ EFI_MM_SYSTEM_TABLE gMmCoreMmst = {
> // Table of MMI Handlers that are registered by the MM Core when it is
> initialized
> //
> MM_CORE_MMI_HANDLERS mMmCoreMmiHandlers[] = {
> + { MmDriverDispatchHandler, &gEfiEventDxeDispatchGuid,
> NULL, TRUE },
3. I assume the StandaloneMmIpl won't respond to the DxeDispatch event signaled from DxeCore. Right?
> +[PcdsFeatureFlag]
4. Can we use [PcdsFeatureFlag.IA32, PcdsFeatureFlags.X64] to make sure X86 CPU always have the PCD as "TRUE"?
This could avoid possible platform DSC mis-configuration that causes all MM drivers dispatched in non-SMM mode.
> + ## Indicates if restart MM Dispatcher once MM Entry Point is
> registered.<BR><BR>
> + # TRUE - Restart MM Dispatcher once MM Entry Point is
> registered.<BR>
> + # FALSE - Do not restart MM Dispatcher once MM Entry Point is
> registered.<BR>
> + # @Prompt Restart MM Dispatcher once MM Entry Point is registered.
> +
> gStandaloneMmPkgTokenSpaceGuid.PcdRestartMmDispatcherOnceMmEntry
> Registered|FALSE|BOOLEAN|0x00000001
> --
> 2.29.2.windows.2
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#111640): https://edk2.groups.io/g/devel/message/111640
Mute This Topic: https://groups.io/mt/102703852/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/xyzzy [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent reply other threads:[~2023-11-23 1:48 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-20 8:30 [edk2-devel] [PATCH 0/1] StandaloneMmPkg/Core: Restart dispatcher once MmEntryPoint is registered Xu, Wei6
2023-11-20 8:30 ` [edk2-devel] [PATCH 1/1] " Xu, Wei6
2023-11-22 11:45 ` Laszlo Ersek
2023-11-22 15:11 ` Ard Biesheuvel
2023-11-24 11:06 ` Laszlo Ersek
2023-11-23 16:20 ` Xu, Wei6
2023-11-24 11:13 ` Laszlo Ersek
2023-11-23 1:48 ` Ni, Ray [this message]
2023-11-27 12:15 ` Wu, Jiaxin
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=MN6PR11MB824482972F8A1B7CA906093A8CB9A@MN6PR11MB8244.namprd11.prod.outlook.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