From: "Taylor Beebe" <taylor.d.beebe@gmail.com>
To: Gerd Hoffmann <kraxel@redhat.com>, devel@edk2.groups.io, ardb@kernel.org
Cc: "Oliver Smith-Denny" <osd@smith-denny.com>,
"Peter Jones" <pjones@redhat.com>,
"Ard Biesheuvel" <ardb@google.com>,
"L�szl� �rsek" <lersek@redhat.com>,
"Oliver Steffen" <osteffen@redhat.com>,
"Alexander Graf" <graf@amazon.com>,
"Leif Lindholm" <quic_llindhol@quicinc.com>
Subject: Re: [edk2-devel] [PATCH] ArmVirtPkg: Allow EFI memory attributes protocol to be disabled
Date: Wed, 6 Dec 2023 12:00:44 -0800 [thread overview]
Message-ID: <b7474d17-e6ce-4c92-a18a-2cf0966408cc@gmail.com> (raw)
In-Reply-To: <ak2bhgjjmyh5fq7s3hnf3kohw6av4s3uhvxd2huolae7vbowku@cwjmv4ztpimg>
[-- Attachment #1: Type: text/plain, Size: 3476 bytes --]
>> But what we might do is invent a way to avoid setting the XP attribute
>> on the entire region based on some heuristic. Given that the main
>> purpose of the EFI memory attribute protocol is to provide the ability
>> to remove XP (and set RO instead), perhaps we can avoid the set
>> entirely? Just brainstorming here.
> Can the fault handler deal with this? Set a flag somewhere, print a
> big'n'fat error message, wait 5 secs, reset machine? After reset the
> firmware will see the flag and come up in 'compat' instead of 'strict'
> mode.
>
> Not sure what a good place for such a flag would be. Do we have other
> options than a non-volatile efi variable? When using a efi variable we
> probably should add an 'expires' timestamp, so the machine doesn't stay
> in 'compat' mode forever.
This is what we do in Project Mu currently and is what we would like to
push into
EDK2. For x86 platforms, we use CMOS to communicate to the next boot
that the
system needs to enter compatibility mode. Of course this doesn't work on ARM
platforms, so we'll have to come up with a more permanent mechanism to
support
this functionality.
>> (cc'ing Taylor and Oliver given that this is related to the memory
>> policy work as well) Perhaps we can use the fact that the active image
>> is non-NX compat to make some tweaks?
> Memory policies would be another candidate which could possibly use a
> less strict profile in 'compat' mode. I'd love to see memory policies
> land for the February stable tag.
I don't think the policy can change how the SHIM sets attributes using the
protocol, but you can hook the installation of the Memory Attribute
Protocol into the policy system so it's not installed in compat mode.
I have not revisited the memory protection policy interface update
since Lazlo's feedback in October, but I'd be happy to return to it if
there's
motivation to get it in over the finish line. Note that there are more
changes
that will need to be made to add testing, compat mode
switching, support for the nx_compat flag, etc. The patch series that's
currently in flight is just meant to be a lateral move to a runtime
configurable
interface.
>> What I really want to avoid is derail our effort to tighten things
>> down and comply with the NX compat related policies, by adding some
>> build time control that the distros will enable now and never disable
>> again, citing backward compat concerns.
> Sure, I want that too. Having an runtime switch is already an
> improvement over having a compile time switch. Having this working
> fully automatic would be even better of course.
If a fix for this issue is needed immediately, I'm fine with Ard's
solution as a stop-gap.
Assuming we can make progress on committing the memory protection updates,
I can update the CpuDxe drivers to check the memory protection policy
before installing the Memory Attribute Protocol. When adding this policy
config,
I would revert the change made here to uninstall the protocol.
Thanks :)
-Taylor
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#112138): https://edk2.groups.io/g/devel/message/112138
Mute This Topic: https://groups.io/mt/102967690/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
[-- Attachment #2: Type: text/html, Size: 5988 bytes --]
next prev parent reply other threads:[~2023-12-06 20:00 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-04 9:52 [edk2-devel] [PATCH] ArmVirtPkg: Allow EFI memory attributes protocol to be disabled Ard Biesheuvel
2023-12-04 9:59 ` Ard Biesheuvel
2023-12-04 10:45 ` Alexander Graf via groups.io
2023-12-04 10:55 ` Ard Biesheuvel
2023-12-04 12:20 ` Gerd Hoffmann
2023-12-04 12:38 ` Alexander Graf via groups.io
2023-12-04 12:58 ` Ard Biesheuvel
2023-12-05 9:56 ` Marcin Juszkiewicz
2023-12-07 8:04 ` Ard Biesheuvel
2023-12-04 14:52 ` Gerd Hoffmann
2023-12-04 16:09 ` Ard Biesheuvel
2023-12-04 22:24 ` Gerd Hoffmann
2023-12-05 10:44 ` Alexander Graf via groups.io
2023-12-05 12:56 ` Gerd Hoffmann
2023-12-04 10:53 ` Gerd Hoffmann
2023-12-04 10:57 ` Ard Biesheuvel
2023-12-04 11:40 ` Gerd Hoffmann
2023-12-06 12:51 ` Gerd Hoffmann
2023-12-06 13:23 ` Ard Biesheuvel
2023-12-06 15:27 ` Gerd Hoffmann
2023-12-06 20:00 ` Taylor Beebe [this message]
2023-12-06 18:37 ` Oliver Smith-Denny
2023-12-07 7:59 ` Ard Biesheuvel
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=b7474d17-e6ce-4c92-a18a-2cf0966408cc@gmail.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