public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Siyuan, Fu" <siyuan.fu@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"ard.biesheuvel@arm.com" <ard.biesheuvel@arm.com>,
	"sami.mujawar@arm.com" <sami.mujawar@arm.com>,
	"lersek@redhat.com" <lersek@redhat.com>,
	"Yao, Jiewen" <jiewen.yao@intel.com>,
	"rfc@edk2.groups.io" <rfc@edk2.groups.io>
Cc: "Dong, Eric" <eric.dong@intel.com>, "Ni, Ray" <ray.ni@intel.com>,
	"Supreeth Venkatesh" <Supreeth.Venkatesh@arm.com>
Subject: Re: [edk2-rfc] [edk2-devel] [RFC] Support Both MM Traditional and Standalone Drivers with One MM Core
Date: Fri, 16 Oct 2020 08:52:53 +0000	[thread overview]
Message-ID: <SN6PR11MB286351F11F745273F05E34C8EB030@SN6PR11MB2863.namprd11.prod.outlook.com> (raw)
In-Reply-To: <06550454-2f65-8137-de07-b8ac048bed26@arm.com>

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ard
> Biesheuvel
> Sent: 2020年10月16日 15:04
> To: Fu, Siyuan <siyuan.fu@intel.com>; devel@edk2.groups.io;
> sami.mujawar@arm.com; lersek@redhat.com; Yao, Jiewen
> <jiewen.yao@intel.com>; rfc@edk2.groups.io
> Cc: Dong, Eric <eric.dong@intel.com>; Ni, Ray <ray.ni@intel.com>; Supreeth
> Venkatesh <Supreeth.Venkatesh@arm.com>
> Subject: Re: [edk2-rfc] [edk2-devel] [RFC] Support Both MM Traditional and
> Standalone Drivers with One MM Core
> 
> On 10/16/20 3:36 AM, Fu, Siyuan wrote:
> > Hi, Sami
> >
> > I know the traditional MM is planned to be deprecated but the reality is that
> there
> > are many existing traditional MM platforms/drivers and the migration has to
> happen
> > step-by-step. It may take a long time like several years, not days or months.
> Not sure
> > if we really want to maintain duplicate code in 3 different MM cores in EDK2
> for
> > such a long time.
> >
> 
> Could you explain more about the gap that needs to be bridged here? I
> suppose the desire is to be able to reuse existing DXE_SMM_DRIVER
> modules, and deploy them unmodified in a standalone MM context?

Yes you are correct. Without a hybrid MM core, the MM drivers must be
either all traditional MM or all standalone MM. While a platform may have
tens or even hundreds of traditional MM drivers for now, it's hard to covert
all of them into standalone as a single step. It looks ideal from architecture
perspective but actually very hard for a read product execution. So it will be
good if there is a hybrid MM core which can support both the unmodified
traditional MM driver, and converted standalone MM driver.

> 
> So would you expect runtime dispatch for these drivers? What about any
> accesses to EFI boot services, which are no longer possible when running
> under standalone MM? Do you have any reason to believe that this hybrid
> MM core will be able to run a significant fraction of those existing
> drivers?

Runtime dispatch for standalone MM driver can be supported, but runtime
dispatch for traditional MM driver is not required (actually prohibited).
The hybrid MM core can distinguish the type of an MM module and decide
if it can be dispatched at a given execution point.

> 
> > Would you think it's acceptable if we put the traditional MM related code
> controlled
> > by a feature flag PCD in StandaloneMmPkg core? The default value of the PCD
> can
> > be set as disabled so those existing platforms doesn't need to be changed.
> >
> 
> This is security critical code, and having PCD controlled behavior like
> this makes it much hard to reason about correctness in all its
> instantiation. I guess I would have to see what the code looks like, but
> having PCD checks all over the place does not seem like a great way to
> do this IMHO.

I understand your concern. So I assume we all understand the value for
having a hybrid MM core, but the question is whether adding to existing
StandaloneMmPkg Core or a 3rd MM core in EDK2, right? I think we can
leave this as an open and make decision when reviewing the patch.

Thanks.
Siyuan

> 
> --
> Ard.
> 
> 
> 
> 
> 


      reply	other threads:[~2020-10-16  8:52 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-09  5:22 [RFC] Support Both MM Traditional and Standalone Drivers with One MM Core Siyuan, Fu
2020-10-09 11:55 ` [edk2-devel] " Laszlo Ersek
2020-10-09 12:23   ` [edk2-rfc] " Yao, Jiewen
2020-10-09 13:07     ` Laszlo Ersek
2020-10-10  1:40       ` Siyuan, Fu
2020-10-15 10:11         ` Sami Mujawar
2020-10-16  1:36           ` Siyuan, Fu
2020-10-16  7:04             ` Ard Biesheuvel
2020-10-16  8:52               ` Siyuan, Fu [this message]

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=SN6PR11MB286351F11F745273F05E34C8EB030@SN6PR11MB2863.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