Re: [PATCH V4 3/3] x86/efi: Introduce EFI_PAGE_FAULT_HANDLER

From: Bhupesh Sharma
Date: Fri Sep 07 2018 - 14:49:49 EST


On 09/07/2018 11:53 PM, Prakhya, Sai Praneeth wrote:
>> There may exist some buggy UEFI firmware implementations that might
>> access efi regions other than EFI_RUNTIME_SERVICES_<CODE/DATA> even
>> after the kernel has assumed control of the platform. This violates
>> UEFI specification.
>>
>> If selected, this debug option will print a warning message if the
>> UEFI firmware tries to access any memory region which it shouldn't.
>> Along with the warning, the efi page fault handler will also try to
>> recover from the page fault triggered by the firmware so that the
>> machine doesn't hang.
>
> Why make this optional?

I made it as a config option in RFC because the page fault handler was
complicated and touching many parts (it had lots of code change and I didn't want
to break any existing functionality). Now that it's simple, I don't think we need
the config option.

Without efi page fault handler, any page fault caused by firmware should panic
kernel but with this patch I think we are just improving existing condition (ideally).

So, if Thomas, Ingo, Andy, Ard and Boris are ok.. I will make it as default (i.e. without
config).

Regards,
Sai

Also, some distributions already have specific ways to handle buggy firmwares which can be at times dependent on the underlying hardware and the firmware versions.

I would suggest that we enable this under a CONFIG for the first round and once it is tested with wider variety of x86 machines which have buggy or orphaned firmware and linux (and reboot) works fine with them, we can drop the CONFIG option in future and enable this by default.

Regards,
Bhupesh