All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ross Zwisler <ross.zwisler@linux.intel.com>
To: Soccer Liu <soccer_liu@yahoo.com>
Cc: "linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>
Subject: Re: No Persistent Memory (legacy) even persistent (type 12) was found
Date: Thu, 26 Jan 2017 16:34:02 -0700	[thread overview]
Message-ID: <20170126233402.GA6659@linux.intel.com> (raw)
In-Reply-To: <31922059.1436799.1485417418342@mail.yahoo.com>

On Thu, Jan 26, 2017 at 07:56:58AM +0000, Soccer Liu wrote:
> 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

This all looks fine.  I ran my QEMU guest with this same reservation and it
worked, so I don't think it's an issue with the size or placement of the
reservation.

> However,  I could not find any Persistent Memory (legacy) from the iomem output.
> I was expecting something like 
> 10000000-1fffffff : Persistent Memory (legacy)

Yep, here are the lines in my guest: 
	10000000-1fffffff : Persistent Memory (legacy)
	  10000000-1fffffff : namespace0.0

> 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

Ummm...all the addresses are zero?  I don't know what would cause this - a
broken kconfig option?

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

My best guess is that it's a missed kernel config option.  Here are the
relevant ones from my v4.9 config:

$ egrep -i 'dax|pmem|nvdimm' .config
CONFIG_X86_PMEM_LEGACY_DEVICE=y
CONFIG_X86_PMEM_LEGACY=m
CONFIG_BLK_DEV_RAM_DAX=y
CONFIG_LIBNVDIMM=m
CONFIG_BLK_DEV_PMEM=m
CONFIG_NVDIMM_PFN=y
CONFIG_NVDIMM_DAX=y
CONFIG_DEV_DAX=m
CONFIG_DEV_DAX_PMEM=m
CONFIG_NR_DEV_DAX=32768
CONFIG_FS_DAX=y
CONFIG_ARCH_HAS_PMEM_API=y

The DEV_DAX ones won't matter, but I'd verify the rest of them and make sure
they're set.

Also, what kernel version are you using?

- Ross
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

  reply	other threads:[~2017-01-26 23:34 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <31922059.1436799.1485417418342.ref@mail.yahoo.com>
2017-01-26  7:56 ` No Persistent Memory (legacy) even persistent (type 12) was found Soccer Liu
2017-01-26 23:34   ` Ross Zwisler [this message]
     [not found]     ` <20170126233402.GA6659-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-01-27  1:35       ` Soccer Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170126233402.GA6659@linux.intel.com \
    --to=ross.zwisler@linux.intel.com \
    --cc=linux-nvdimm@lists.01.org \
    --cc=soccer_liu@yahoo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.