Hi:
I am trying to play with the NVDIMM driver and follow instructions in https://nvdimm.wiki.kernel.org/how_to_choose_the_correct_memmap_kernel_parameter_for_pmem_on_your_system and https://www.suse.com/communities/blog/nvdimm-enabling-part-2-intel for setting up an emulated NVDIMM memory. I claimed the memory range from 0x10000000 -- 0x1fffffff via adding a kernel command line param memmap=256M!256M . soccerl@ubuntu:~$ dmesg | grep e820 [ 0.000000] e820: BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ffff] usable [ 0.000000] BIOS-e820: [mem 0x00000000000c0000-0x00000000000fffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007eeecfff] usable <------------------------------- * [ 0.000000] BIOS-e820: [mem 0x000000007eeed000-0x000000007eef1fff] ACPI data [ 0.000000] BIOS-e820: [mem 0x000000007eef2000-0x000000007ef1afff] reserved [ 0.000000] BIOS-e820: [mem 0x000000007ef1b000-0x000000007ff9afff] usable [ 0.000000] BIOS-e820: [mem 0x000000007ff9b000-0x000000007ffb6fff] reserved [ 0.000000] BIOS-e820: [mem 0x000000007ffb7000-0x000000007ffb8fff] type 20 [ 0.000000] BIOS-e820: [mem 0x000000007ffb9000-0x000000007ffbafff] reserved [ 0.000000] BIOS-e820: [mem 0x000000007ffbb000-0x000000007ffbbfff] type 20 [ 0.000000] BIOS-e820: [mem 0x000000007ffbc000-0x000000007ffbdfff] reserved [ 0.000000] BIOS-e820: [mem 0x000000007ffbe000-0x000000007ffbefff] type 20 [ 0.000000] BIOS-e820: [mem 0x000000007ffbf000-0x000000007ffc0fff] reserved [ 0.000000] BIOS-e820: [mem 0x000000007ffc1000-0x000000007ffc1fff] type 20 [ 0.000000] BIOS-e820: [mem 0x000000007ffc2000-0x000000007ffc3fff] reserved [ 0.000000] BIOS-e820: [mem 0x000000007ffc4000-0x000000007ffc5fff] type 20 [ 0.000000] BIOS-e820: [mem 0x000000007ffc6000-0x000000007ffc7fff] reserved [ 0.000000] BIOS-e820: [mem 0x000000007ffc8000-0x000000007ffc8fff] type 20 [ 0.000000] BIOS-e820: [mem 0x000000007ffc9000-0x000000007fff2fff] reserved [ 0.000000] BIOS-e820: [mem 0x000000007fff3000-0x000000007fffafff] ACPI data [ 0.000000] BIOS-e820: [mem 0x000000007fffb000-0x000000007fffefff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x000000007ffff000-0x000000007fffffff] usable [ 0.000000] e820: user-defined physical RAM map: [ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved [ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable [ 0.000000] e820: last_pfn = 0x80000 max_arch_pfn = 0x400000000 [ 0.000000] e820: [mem 0x80000000-0xffffffff] available for PCI devices soccerl@ubuntu:~$ dmesg | grep user [ 0.000000] e820: user-defined physical RAM map: [ 0.000000] user: [mem 0x0000000000000000-0x000000000009ffff] usable [ 0.000000] user: [mem 0x00000000000c0000-0x00000000000fffff] reserved [ 0.000000] user: [mem 0x0000000000100000-0x000000000fffffff] usable [ 0.000000] user: [mem 0x0000000010000000-0x000000001fffffff] persistent (type 12) <-------- this shows the memmap works as expected [ 0.000000] user: [mem 0x0000000020000000-0x000000007eeecfff] usable [ 0.000000] user: [mem 0x000000007eeed000-0x000000007eef1fff] ACPI data [ 0.000000] user: [mem 0x000000007eef2000-0x000000007ef1afff] reserved [ 0.000000] user: [mem 0x000000007ef1b000-0x000000007ff9afff] usable [ 0.000000] user: [mem 0x000000007ff9b000-0x000000007ffb6fff] reserved [ 0.000000] user: [mem 0x000000007ffb7000-0x000000007ffb8fff] type 20 [ 0.000000] user: [mem 0x000000007ffb9000-0x000000007ffbafff] reserved [ 0.000000] user: [mem 0x000000007ffbb000-0x000000007ffbbfff] type 20 [ 0.000000] user: [mem 0x000000007ffbc000-0x000000007ffbdfff] reserved [ 0.000000] user: [mem 0x000000007ffbe000-0x000000007ffbefff] type 20 [ 0.000000] user: [mem 0x000000007ffbf000-0x000000007ffc0fff] reserved [ 0.000000] user: [mem 0x000000007ffc1000-0x000000007ffc1fff] type 20 [ 0.000000] user: [mem 0x000000007ffc2000-0x000000007ffc3fff] reserved [ 0.000000] user: [mem 0x000000007ffc4000-0x000000007ffc5fff] type 20 [ 0.000000] user: [mem 0x000000007ffc6000-0x000000007ffc7fff] reserved [ 0.000000] user: [mem 0x000000007ffc8000-0x000000007ffc8fff] type 20 [ 0.000000] user: [mem 0x000000007ffc9000-0x000000007fff2fff] reserved [ 0.000000] user: [mem 0x000000007fff3000-0x000000007fffafff] ACPI data [ 0.000000] user: [mem 0x000000007fffb000-0x000000007fffefff] ACPI NVS [ 0.000000] user: [mem 0x000000007ffff000-0x000000007fffffff] usable However, I could not find any Persistent Memory (legacy) from the iomem output. I was expecting something like 10000000-1fffffff : Persistent Memory (legacy) soccerl@ubuntu:~$ soccerl@ubuntu:~$ cat /proc/iomem 00000000-00000000 : reserved 00000000-00000000 : System RAM 00000000-00000000 : reserved 00000000-00000000 : System ROM 00000000-00000000 : System RAM 00000000-00000000 : Kernel code 00000000-00000000 : Kernel data 00000000-00000000 : Kernel bss 00000000-00000000 : System RAM 00000000-00000000 : ACPI Tables 00000000-00000000 : System RAM 00000000-00000000 : reserved 00000000-00000000 : reserved 00000000-00000000 : reserved 00000000-00000000 : reserved 00000000-00000000 : reserved 00000000-00000000 : reserved 00000000-00000000 : ACPI Tables 00000000-00000000 : ACPI Non-volatile Storage 00000000-00000000 : System RAM 00000000-00000000 : 5620e0c7-8062-4dce-aeb7-520c7ef76171 00000000-00000000 : PNP0003:00 00000000-00000000 : Local APIC 00000000-00000000 : PNP0003:00 soccerl@ubuntu:~$ I do have the following kernel config flags set CONFIG_ARCH_HAS_PMEM_API=y CONFIG_BLK_DEV_PMEM=m CONFIG_LIBNVDIMM=y CONFIG_X86_PMEM_LEGACY=y CONFIG_FS_DAX=y CONFIG_BLK_DEV_RAM_DAX=y Any idea on what I might have missed? Thanks Soccer soccerl@ubuntu:~/linux$ grep -nr ARCH_HAS_PMEM_API include/config/auto.conf:1664:CONFIG_ARCH_HAS_PMEM_API=y include/generated/autoconf.h:1666:#define CONFIG_ARCH_HAS_PMEM_API 1 include/linux/pmem.h:19:#ifdef CONFIG_ARCH_HAS_PMEM_API include/linux/pmem.h:65: return IS_ENABLED(CONFIG_ARCH_HAS_PMEM_API); carch/x86/include/asm/pmem.h:21:#ifdef CONFIG_ARCH_HAS_PMEM_API arch/x86/include/asm/pmem.h:120:#endif /* CONFIG_ARCH_HAS_PMEM_API */ ^C soccerl@ubuntu:~/linux$ grep -nr BLK_DEV_PMEM Binary file .git/objects/pack/pack-abb253f9f14e0a418077c5478ffad5218cbbaf23.pack matches include/config/tristate.conf:3995:CONFIG_BLK_DEV_PMEM=Y include/config/auto.conf:5771:CONFIG_BLK_DEV_PMEM=y include/generated/autoconf.h:5773:#define CONFIG_BLK_DEV_PMEM 1 ^C soccerl@ubuntu:~/linux$ grep -nr _LIBNVDIMM include/config/tristate.conf:1918:CONFIG_LIBNVDIMM=Y include/config/auto.conf:2778:CONFIG_LIBNVDIMM=y include/generated/autoconf.h:2780:#define CONFIG_LIBNVDIMM 1 include/linux/libnvdimm.h:15:#ifndef __LIBNVDIMM_H__ include/linux/libnvdimm.h:16:#define __LIBNVDIMM_H__ include/linux/libnvdimm.h:163:#endif /* __LIBNVDIMM_H__ */ ^C soccerl@ubuntu:~/linux$ grep -nr X86_PMEM_LEGACY include/config/tristate.conf:4535:CONFIG_X86_PMEM_LEGACY=Y include/config/auto.conf:5502:CONFIG_X86_PMEM_LEGACY_DEVICE=y include/config/auto.conf:6569:CONFIG_X86_PMEM_LEGACY=y include/generated/autoconf.h:5504:#define CONFIG_X86_PMEM_LEGACY_DEVICE 1 include/generated/autoconf.h:6571:#define CONFIG_X86_PMEM_LEGACY 1 ^C soccerl@ubuntu:~/linux$ grep -nr FS_DAX Binary file .git/objects/pack/pack-abb253f9f14e0a418077c5478ffad5218cbbaf23.pack matches include/config/auto.conf:5459:CONFIG_FS_DAX=y include/config/auto.conf:6437:CONFIG_FS_DAX_PMD=y include/generated/autoconf.h:5461:#define CONFIG_FS_DAX 1 include/generated/autoconf.h:6439:#define CONFIG_FS_DAX_PMD 1 ^C soccerl@ubuntu:~/linux$ grep -nr BLK_DEV_RAM_DAX include/config/auto.conf:727:CONFIG_BLK_DEV_RAM_DAX=y include/generated/autoconf.h:729:#define CONFIG_BLK_DEV_RAM_DAX 1 arch/powerpc/configs/mpc512x_defconfig:55:CONFIG_BLK_DEV_RAM_DAX=y _______________________________________________ Linux-nvdimm mailing list [email protected] https://lists.01.org/mailman/listinfo/linux-nvdimm
