Re: APEI: Can not request iomem region for GARs

Huang Ying
2011-08-23T00:32:18Z

On 08/23/2011 05:04 AM, Yinghai Lu wrote:
> On Mon, Aug 22, 2011 at 9:45 AM, Bjorn Helgaas <bhelgaas@google.com> wrote:
>> On Mon, Aug 22, 2011 at 1:12 AM, Huang Ying <ying.huang@intel.com> wrote:
>>> Do you have time to try the patch attached with the mail?
>>> acpi_nvs.patch should go first.
>>
>> In this case, we have an ACPI NVS region, and the APEI code is
>> essentially a driver for some registers that reside there. APEI is
>> the entity that manages those registers, and it needs to enforce
>> mutual exclusion so nobody else touches them behind its back, so I
>> think it makes sense for it to request the register regions and mark
>> them busy.
>>
>> My proposal is to change e820 so it either leaves ACPI NVS out of the
>> iomem_resource tree or puts it in but leaves it non-busy.
>
> assume Huang Ying only tested with UEFI native boot?

No. I tested it with legacy BIOS. But ACPI NVS is not used by APEI on
my testing machine.

> i have one local patch for legacy mode booting, and it's similar to
> what Bjorn suggested.
>
> Please check the attached patch.

I think we need help from ACPI guys on why ACPI NVS is marked as busy.

If my understanding were correct, ACPI NVS should not be used by OS at
all, so it is marked as busy. But for APEI, Linux interprets some code
(instructions in ERST/EINJ table) from firmware. I think this is
similar with AML code accessing ACPI NVS.

Hi, Len,

Do you think my understanding is correct?

Best Regards,
Huang Ying