• Aneesh Kumar K.V's avatar
    powerpc/pseries: Don't fail hash page table insert for bolted mapping · 75838a32
    Aneesh Kumar K.V authored
    If the hypervisor returned H_PTEG_FULL for H_ENTER hcall, retry a hash page table
    insert by removing a random entry from the group.
    
    After some runtime, it is very well possible to find all the 8 hash page table
    entry slot in the hpte group used for mapping. Don't fail a bolted entry insert
    in that case. With Storage class memory a user can find this error easily since
    a namespace enable/disable is equivalent to memory add/remove.
    
    This results in failures as reported below:
    
    $ ndctl create-namespace -r region1 -t pmem -m devdax -a 65536 -s 100M
    libndctl: ndctl_dax_enable: dax1.3: failed to enable
      Error: namespace1.2: failed to enable
    
    failed to create namespace: No such device or address
    
    In kernel log we find the details as below:
    
    Unable to create mapping for hot added memory 0xc000042006000000..0xc00004200d000000: -1
    dax_pmem: probe of dax1.3 failed with error -14
    
    This indicates that we failed to create a bolted hash table entry for direct-map
    address backing the namespace.
    
    We also observe failures such that not all namespaces will be enabled with
    ndctl enable-namespace all command.
    Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20191024093542.29777-2-aneesh.kumar@linux.ibm.com
    75838a32
hash_utils.c 52.5 KB