On Wed, Nov 25, 2015 at 6:08 AM, Andrei Borzenkov <arvidj...@gmail.com> wrote: > On Wed, Nov 25, 2015 at 2:52 AM, Elliott, Robert (Persistent Memory) > <elli...@hpe.com> wrote: >> We've noticed that some combinations of grub and old linux kernels >> >> end up interpreting the UEFI memory map EfiPersistentMemory type 14 >> >> (formerly a reserved value) as regular memory in the linux e820 >> >> table, causing silent data corruption on the NVDIMMs. That occurs >> >> even though grub prints this message suggesting everything is safe: >> >> Unknown memory type 14, considering reserved >> >> >> >> In broken versions of grub, the code parsing the UEFI memory map >> >> has a "default" case that falls through to the >> >> GRUB_EFI_BOOT_SERVICES_DATA case, > > This is fallout of 9be4c45dbe3c877d1f4856e99ee15133c6cd2261; thank you > for report! > >> which marks the memory range >> >> as GRUB_MEMORY_AVAILABLE and ends up in e820 as regular memory. >> > > According to EFI spec, EfiPersistentMemory is "A memory region that > operates as EfiConventionalMemory". Why it should be treated > differently?
Because it needs to be reserved from the OS and attached via a driver. See the ACPI 6 definition for "AddressRangePersistentMemory": "OSPM must comprehend this memory as having non-volatile attributes and handle distinct from conventional volatile memory. The memory region supports byte-addressable nonvolatility" _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel