Re: APEI: Can not request iomem region for GARs

Bjorn Helgaas
2011-08-22T16:45:30Z

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.

I'm sure these patches make the messages go away, but I think this is
the wrong way to fix the problem.

We mark things "busy" in the resource trees as a mutual exclusion
mechanism -- normally when a driver claims a resource and nothing else
should be allowed to touch it.

e820_reserve_resources() marks everything (except "reserved" regions)
as busy. That probably makes sense for available RAM, since RAM is
allocated and managed via other mechanisms. But I think it's wrong in
this case because e820 is not a driver that is using the ACPI NVS
region.

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.

Bjorn