public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "levi.yun" <yeoreum.yun@arm.com>
To: Laszlo Ersek <lersek@redhat.com>,
	Oliver Smith-Denny <osde@linux.microsoft.com>,
	devel@edk2.groups.io, Ard Biesheuvel <ardb@kernel.org>
Cc: sami.mujawar@arm.com, ray.ni@intel.com, pierre.gondois@arm.com,
	nd@arm.com
Subject: Re: [edk2-devel] [PATCH v1 1/1] StandaloneMmPkg: Initialise serial port early in StandaloneMmEntryPoint
Date: Wed, 10 Jan 2024 17:16:04 +0000	[thread overview]
Message-ID: <9e1c0701-c6f1-45a1-843f-5f4821eb6259@arm.com> (raw)
In-Reply-To: <db91581a-d59c-ac8c-b163-7afdb86eaed2@redhat.com>

Hi, Laszlo.
> This will keep initing the serial port upon every API call until the
> global variable becomes writeable, and then the next API call will init
> the serial port for one last time, and also prevent further page table
> checks.
>
> The CheckWritable() function is an implementation detail. In the DXE
> phase, it could be implemented (I think?) with the
> GetMemorySpaceDescriptor() DXE service, or perhaps even the
> EFI_MEMORY_ATTRIBUTE_PROTOCOL.GetMemoryAttributes() UEFI protocol member
> function. In the standalone MM core, CheckWritable() could walk the page
> tables explicitly. The idea is, either way, to *predict* whether writing
> to "mInitialized" would trap.
I think it wouldn't proper, to DxeCore and StMM too.
IIUC,  before CoreInitializeMemoryServices is called, we couldn't use
that method in case DxeCore.
And the problem now I face is also StMM before populating memory
information (done in LibConstructor).


> Now I think that speculative / out of order execution could actually
> trigger the trap *before* GlobalsWriteable is calculated; however, I
> think such a trap should be architecturally hidden (i.e., invisible). I
> think at worst we could need a compiler barrier (maybe throw in some
> "volatile" for GlobalsWriteable and mInitialized), so that the
> *compiler* not try to reorder the accesses. But even that sounds like a
> stretch.
Agree if we develop CheckPerm??

Currently, (In my narrow thinking) there is no more generic solution
than create new interface SerialPortInitilizeEarly.

Am I missing?

Many Thanks.

--------
Sincerely,
Levi.
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


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



  reply	other threads:[~2024-01-10 17:16 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-05 11:49 [edk2-devel] [PATCH v1 1/1] StandaloneMmPkg: Initialise serial port early in StandaloneMmEntryPoint levi.yun
2024-01-05 11:52 ` levi.yun
2024-01-05 16:46 ` Ard Biesheuvel
2024-01-05 17:22   ` levi.yun
2024-01-05 18:38     ` Oliver Smith-Denny
2024-01-08 12:16       ` Laszlo Ersek
2024-01-10 16:13         ` levi.yun
2024-01-10 16:41           ` Laszlo Ersek
2024-01-10 17:16             ` levi.yun [this message]
2024-01-10 21:06               ` Brian J. Johnson
2024-01-11  9:05                 ` levi.yun
     [not found]                 ` <17A93FAECCFD3533.4530@groups.io>
2024-01-18 10:19                   ` levi.yun

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=9e1c0701-c6f1-45a1-843f-5f4821eb6259@arm.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