• Dan Williams's avatar
    nvdimm: Support sizeof(struct page) > MAX_STRUCT_PAGE_SIZE · c91d7136
    Dan Williams authored
    Commit 6e9f05dc ("libnvdimm/pfn_dev: increase MAX_STRUCT_PAGE_SIZE")
    
    ...updated MAX_STRUCT_PAGE_SIZE to account for sizeof(struct page)
    potentially doubling in the case of CONFIG_KMSAN=y. Unfortunately this
    doubles the amount of capacity stolen from user addressable capacity for
    everyone, regardless of whether they are using the debug option. Revert
    that change, mandate that MAX_STRUCT_PAGE_SIZE never exceed 64, but
    allow for debug scenarios to proceed with creating debug sized page maps
    with a compile option to support debug scenarios.
    
    Note that this only applies to cases where the page map is permanent,
    i.e. stored in a reservation of the pmem itself ("--map=dev" in "ndctl
    create-namespace" terms). For the "--map=mem" case, since the allocation
    is ephemeral for the lifespan of the namespace, there are no explicit
    restriction. However, the implicit restriction, of having enough
    available "System RAM" to store the page map for the typically large
    pmem, still applies.
    
    Fixes: 6e9f05dc ("libnvdimm/pfn_dev: increase MAX_STRUCT_PAGE_SIZE")
    Cc: <stable@vger.kernel.org>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Marco Elver <elver@google.com>
    Reported-by: default avatarJeff Moyer <jmoyer@redhat.com>
    Acked-by: default avatarYu Zhao <yuzhao@google.com>
    Link: https://lore.kernel.org/r/167467815773.463042.7022545814443036382.stgit@dwillia2-xfh.jf.intel.comSigned-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    c91d7136
Kconfig 4.78 KB