public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Nhi Pham via groups.io" <nhi=os.amperecomputing.com@groups.io>
To: Laszlo Ersek <lersek@redhat.com>, Ard Biesheuvel <ardb@kernel.org>
Cc: "Andrew (EFI) Fish" <afish@apple.com>,
	edk2-devel-groups-io <devel@edk2.groups.io>,
	"ardb+tianocore@kernel.org" <ardb+tianocore@kernel.org>
Subject: Re: [edk2-devel] Memory Attribute for depex section
Date: Thu, 18 Jan 2024 13:00:36 +0700	[thread overview]
Message-ID: <8efe1653-7383-44a6-b820-efb1c6132f74@os.amperecomputing.com> (raw)
In-Reply-To: <20d8728f-daaa-51ed-18ad-3087695d21f1@redhat.com>

Hi Laszlo,

On 1/16/2024 2:00 AM, Laszlo Ersek wrote:
> On 1/15/24 15:04, Ard Biesheuvel wrote:
>> On Mon, 15 Jan 2024 at 14:07, Nhi Pham <nhi@os.amperecomputing.com> wrote:
>>>
>>> On 1/12/2024 4:45 PM, Laszlo Ersek wrote:
>>>> (Independently: I think that's a valid thing to do for *SMM* drivers,
>>>> because the entry point functions of those drivers are permitted to use
>>>> both SMM and DXE/UEFI protocols. But whether the same is valid for the
>>>> *standalone* MM drivers -- that looks questionable. Standalone MM
>>>> drivers should not depend on UEFI/DXE protocols ever, IIUC.)
>>>>
>>>>> 3) The issue is patching the grammar in place, why can’t we just make a
>>>>> copy for the dispatcher grammer, and operate on the copy. Maybe via a
>>>>> copy on 1st update strategy?
>>>>
>>>> Yes, copying the depex to the heap, and patching it there, was Nhi's #1
>>>> fix proposal. I think that could be made work. But I'm not sure if the
>>>> perf savings are worth the additional complexity. The heap allocation
>>>> (where the writeable depex would exist) would have to be permanently
>>>> associated with the loaded PE image -- because the dispatcher might need
>>>> to reevaluate the depex across multiple rounds of dispatching. So that's
>>>> a new field in some image-related structure, it also needs to be freed
>>>> upon unload (?), what if the memory allocation fails during depex eval
>>>> (just consider the depex to eval to FALSE?), etc. Doable, but hairy; not
>>>> sure if the perf is worth that effort.
>>>>
>>>
>>> Thanks so much, Laszlo for your valuable insights.
>>>
>>> The approach #1 works for me. I will do further check for your concerns
>>> above.
>>>
>>> I'm trying your suggested patch and investigating the performance being
>>> discussed here.
>>>
>>
>> Not sure what approach #1 means,
> 
> (copying the depex to the heap, and maintaining it there, so that it can
> be patched)

Thanks!

> 
>> but I'd prefer to just remove this
>> optimization from standalone MM, given that not only a) it shouldn't
>> have to deal with a large number of protocol GUIDs, but also b) the
>> driver dispatch is much more straight-forward. (Typically, StMM
>> drivers can be dispatched in the order they appear in the firmware
>> volume, in which case each DEPEX is evaluated only once anyway)
> 
> Sounds like a promising basis for removing the optimization indeed!
> 

Your patch suggested earlier works for me. And I don't see significant 
performance reduction compared with keeping optimization.

I don't have strong reason on removing the optimization, but I think it 
would be simply good for now. Could you post your patch to edk2-devel 
for review and merge?

Thanks,
Nhi


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113986): https://edk2.groups.io/g/devel/message/113986
Mute This Topic: https://groups.io/mt/103594587/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



  reply	other threads:[~2024-01-18  6:00 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-08 10:11 [edk2-devel] Memory Attribute for depex section Nhi Pham via groups.io
2024-01-10  0:48 ` Nhi Pham via groups.io
2024-01-10 13:09 ` Laszlo Ersek
2024-01-10 13:45   ` Laszlo Ersek
2024-01-10 21:50     ` Pedro Falcato
2024-01-11  8:46       ` Laszlo Ersek
2024-01-11 11:03         ` Laszlo Ersek
2024-01-12  2:10         ` Pedro Falcato
2024-01-12  9:35           ` Laszlo Ersek
2024-01-12 14:46             ` Pedro Falcato
2024-01-12 16:37               ` Michael D Kinney
2024-01-12 18:56                 ` Andrew Fish via groups.io
2024-01-12 19:04                   ` Michael D Kinney
2024-01-12 19:26                     ` Andrew Fish via groups.io
2024-01-12 18:50               ` Andrew Fish via groups.io
2024-01-12  2:44     ` Andrew Fish via groups.io
2024-01-12  9:45       ` Laszlo Ersek
2024-01-15 13:07         ` Nhi Pham via groups.io
2024-01-15 14:04           ` Ard Biesheuvel
2024-01-15 19:00             ` Laszlo Ersek
2024-01-18  6:00               ` Nhi Pham via groups.io [this message]
2024-01-18 14:49                 ` Laszlo Ersek
2024-01-19  4:43                   ` Nhi Pham via groups.io
2024-01-19 13:54                     ` Laszlo Ersek

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=8efe1653-7383-44a6-b820-efb1c6132f74@os.amperecomputing.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