[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Design doc of adding ACPI support for arm64 on Xen - version 5



On Wed, 2015-09-02 at 13:52 +0100, Julien Grall wrote:
> On 02/09/15 13:02, Shannon Zhao wrote:
> > > Hold on, this is about Linux able to use the memory for his own 
> > > usage.
> > > ACPI table are not part of this memory because they are marked 
> > > reserved
> > > by the firmware.
> > > 
> > > If we follow your logic, all ACPI tables always should be above the
> > > kernel. I don't believe this is the case and it would be buggy on Xen
> > > because of the DOM0 direct RAM mapping (i.e the first RAM bank can be
> > > very high and the kernel too).
> > > 
> > 
> > It looks weird. But from the booting.txt, it says the memory below base
> > address is unusable and from early_init_dt_add_memory_arch in Linux, it
> > really ignores the memblock below the PAGE_OFFSET.
> 
> It's unusable in the sense that Linux can't use them to store its own
> data. Having the ACPI table outside of the System RAM is valid because
> they are marked as reserved and ioremap will be used to map them.

I think a useful way to think of this might be that the the tables are not
stored in something which has, to the OS, RAM semantics.

In that context Linux's statement that "RAM below the kernel image is
unusable" is irrelevant because the tables are not in RAM.

The fact that under the hood the tables may indeed technically be stored in
DRAM, even in the same DIMM as actual "RAM" is somewhat irrelevant, in
theory it could be a ROM, or anything else which can be read by the CPU.

> 
> > 
> > > I think the problem is how you reserved this region in the EFI memory
> > > table. From what I saw, you marked this new memory with EFI_MEMORY_WB
> > > (which means that the region can be usable by Linux).
> > > 
> > Yes, I mark it with EFI_MEMORY_WB. Is this right?
> 
> I would say no, but it's only because I looked at the kernel code 
> quickly.
> 
> You have to looks how ACPI region/UEFI tables are described in the host
> EFI memory map and mimicking for the DOM0 EFI memory map.

Surely it is the type (EfiACPIReclaimMemory, EfiACPIMemoryNVS etc) and not
the mapping attributes which should control whether an OS considers a
region usable? At least until the OS is done parsing tables neither of
those are usable (which implies we want NVS as our type, unless the memory
is intended to be reclaimed by dom0, implying it should own it).

Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.