• Dan Williams's avatar
    libnvdimm: use consistent naming for request_mem_region() · 450c6633
    Dan Williams authored
    Here is an example /proc/iomem listing for a system with 2 namespaces,
    one in "sector" mode and one in "memory" mode:
    
      1fc000000-2fbffffff : Persistent Memory (legacy)
        1fc000000-2fbffffff : namespace1.0
      340000000-34fffffff : Persistent Memory
        340000000-34fffffff : btt0.1
    
    Here is the corresponding ndctl listing:
    
      # ndctl list
      [
        {
          "dev":"namespace1.0",
          "mode":"memory",
          "size":4294967296,
          "blockdev":"pmem1"
        },
        {
          "dev":"namespace0.0",
          "mode":"sector",
          "size":267091968,
          "uuid":"f7594f86-badb-4592-875f-ded577da2eaf",
          "sector_size":4096,
          "blockdev":"pmem0s"
        }
      ]
    
    Notice that the ndctl listing is purely in terms of namespace devices,
    while the iomem listing leaks the internal "btt0.1" implementation
    detail. Given that ndctl requires the namespace device name to change
    the mode, for example:
    
      # ndctl create-namespace --reconfig=namespace0.0 --mode=raw --force
    
    ...use the namespace name in the iomem listing to keep the claiming
    device name consistent across different mode settings.
    
    Cc: Vishal Verma <vishal.l.verma@intel.com>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    450c6633
claim.c 7.22 KB