[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 |