|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2.1] hvmloader: indicate dynamically allocated memory as ACPI NVS in e820
On 01.09.2020 04:50, Igor Druzhinin wrote:
> Guest kernel does need to know in some cases where the tables are located
> to treat these regions properly. One example is kexec process where
> the first kernel needs to pass firmware region locations to the second
> kernel which is now a requirement after 02a3e3cdb7f12 ("x86/boot: Parse SRAT
> table and count immovable memory regions").
I'm still struggling with the connection here: Reserved regions
surely are "immovable" too, aren't they? Where's the connection to
the E820 map in the first place - the change cited above is entirely
about SRAT? And I can't imagine kexec getting away with passing on
ACPI NVS regions, but not reserved ones.
> The memory that hvmloader allocates in the reserved region mostly contains
> these useful tables and could be safely indicated as ACPI without the need
> to designate a sub-region specially for that. Making it non-reclaimable
> (ACPI NVS) in contrast with ACPI reclaim (ACPI table) memory would avoid
> potential reuse of this memory by the guest taking into account this region
> may contain runtime structures like VM86 TSS, etc. If necessary, those
> can be moved away later and the region marked as reclaimable.
Some of this may want reflecting also ...
> @@ -199,8 +201,19 @@ int build_e820_table(struct e820entry *e820,
> nr++;
>
> /*
> + * Mark populated reserved memory that contains ACPI and other tables as
> + * ACPI NVS (non-reclaimable) space - that should help the guest to treat
> + * it correctly later (e.g. pass to the next kernel on kexec).
> + */
> +
> + e820[nr].addr = RESERVED_MEMBASE;
> + e820[nr].size = firmware_mem_end - RESERVED_MEMBASE;
> + e820[nr].type = E820_NVS;
> + nr++;
... in the comment you introduce here.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |