Thanks great to hear.

Dan,
   Could you share the patch you ran though the unittests?

I would like to give the new patch a try in my scenario.

Thanks
Cheng-mean






> On Jul 12, 2017, at 10:13 AM, Dan Williams <[email protected]> wrote:
> 
> On Wed, Jul 12, 2017 at 8:04 AM, Matthew Wilcox <[email protected]> wrote:
>>> You're right. It should return -ENODEV regardless, but the warning
>>> should be for non-zero too small namespaces.
>> 
>> OK, try this:
>> 
>> ---- 8< ----
>> 
>> From: Matthew Wilcox <[email protected]>
>> Date: Mon, 10 Jul 2017 14:26:59 -0400
>> Subject: [PATCH] nvdimm: Remove minimum size requirement
>> 
>> There was no need to have a minimum size of 4MB for NV-DIMMs; it was
>> just a sanity check.  Keep a check that it's at least one page in size
>> because we really can't add less than a page to the memory map.
>> 
>> Promote the print statement from 'debug' level to 'warning', since there
>> was no information for my colleague who stumbled over this problem while
>> attempting to add a 2MB chunk of memory.  There may be some zero-sized
>> devices on the list, and those are not warned about.
>> 
>> Truncate the resource_size_t to an int and print it using %d rather
>> than printing it in hex as a pointer to an address.  We know it's less
>> than PAGE_SIZE, so it'll fit in an int.
>> 
>> Reported-by: Cheng-mean Liu <[email protected]>
>> Signed-off-by: Matthew Wilcox <[email protected]>
>> ---
>> drivers/nvdimm/namespace_devs.c | 7 ++++---
>> include/uapi/linux/ndctl.h      | 4 ----
>> 2 files changed, 4 insertions(+), 7 deletions(-)
>> 
>> diff --git a/drivers/nvdimm/namespace_devs.c 
>> b/drivers/nvdimm/namespace_devs.c
>> index 5f1c6756e57c..518c3507f67f 100644
>> --- a/drivers/nvdimm/namespace_devs.c
>> +++ b/drivers/nvdimm/namespace_devs.c
>> @@ -1689,9 +1689,10 @@ struct nd_namespace_common 
>> *nvdimm_namespace_common_probe(struct device *dev)
>>        }
>> 
>>        size = nvdimm_namespace_capacity(ndns);
>> -       if (size < ND_MIN_NAMESPACE_SIZE) {
>> -               dev_dbg(&ndns->dev, "%pa, too small must be at least %#x\n",
>> -                               &size, ND_MIN_NAMESPACE_SIZE);
>> +       if (size < PAGE_SIZE) {
>> +               if (size)
>> +                       dev_warn(&ndns->dev, "%d too small must be at least 
>> %ld\n",
>> +                                       (int)size, PAGE_SIZE);
>>                return ERR_PTR(-ENODEV);
>>        }
>> 
>> diff --git a/include/uapi/linux/ndctl.h b/include/uapi/linux/ndctl.h
>> index 6d3c54264d8e..3ad1623bb585 100644
>> --- a/include/uapi/linux/ndctl.h
>> +++ b/include/uapi/linux/ndctl.h
>> @@ -299,10 +299,6 @@ enum nd_driver_flags {
>>        ND_DRIVER_DAX_PMEM        = 1 << ND_DEVICE_DAX_PMEM,
>> };
>> 
>> -enum {
>> -       ND_MIN_NAMESPACE_SIZE = 0x00400000,
>> -};
>> -
> 
> I ran this patch through the unit tests. We'll need to keep this
> definition around until we can kill it's usage in ndctl since it's
> part of the uapi. I also need to go fix up the dpa-alloc test to
> understand the new assumptions.
> _______________________________________________
> Linux-nvdimm mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/linux-nvdimm
_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to