grub-devel
[Top][All Lists]
Advanced

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

Re: grub causing NVDIMMs to be treated as normal memory


From: Dan Williams
Subject: Re: grub causing NVDIMMs to be treated as normal memory
Date: Wed, 25 Nov 2015 08:51:19 -0800

On Wed, Nov 25, 2015 at 6:08 AM, Andrei Borzenkov <address@hidden> wrote:
> On Wed, Nov 25, 2015 at 2:52 AM, Elliott, Robert (Persistent Memory)
> <address@hidden> 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"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]