Re: DAX can not work on virtual nvdimm device

Xiao Guangrong
2016-08-30T06:53:10Z

On 08/30/2016 03:30 AM, Ross Zwisler wrote:

>
> Can you please verify that you are using "usable" memory for your memmap? All
> the details are here:
>
> https://nvdimm.wiki.kernel.org/how_to_choose_the_correct_memmap_kernel_parameter_for_pmem_on_your_system

Sure.

This is the BIOS E820 info in the guest:

e820: BIOS-provided physical RAM map:
BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
BIOS-e820: [mem 0x0000000000100000-0x00000000bffdefff] usable
BIOS-e820: [mem 0x00000000bffdf000-0x00000000bfffffff] reserved
BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved
BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
BIOS-e820: [mem 0x0000000100000000-0x000000083fffffff] usable
NX (Execute Disable) protection: active
e820: user-defined physical RAM map:
user: [mem 0x0000000000000000-0x000000000009fbff] usable
user: [mem 0x000000000009fc00-0x000000000009ffff] reserved
user: [mem 0x00000000000f0000-0x00000000000fffff] reserved
user: [mem 0x0000000000100000-0x00000000bffdefff] usable
user: [mem 0x00000000bffdf000-0x00000000bfffffff] reserved
user: [mem 0x00000000feffc000-0x00000000feffffff] reserved
user: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
user: [mem 0x0000000100000000-0x000000027fffffff] usable
user: [mem 0x0000000280000000-0x00000003ffffffff] persistent (type 12)
user: [mem 0x0000000400000000-0x000000083fffffff] usable

So that the memory we used to emulate PMEM split the 'usable' region.

>
> My guess is that Boaz was correct, and that your memmap is off using addresses
> that don't actually map to memory.

I do not think so. :(

I did mmap-write and mmap-read test, the data written by mmap-write can be
correctly read out, so that the backend memory is really existing.

Thanks!