On Fri, Mar 15, 2019 at 4:42 PM Brice Goglin <Brice.Goglin(a)inria.fr> wrote:
Le 16/03/2019 à 00:12, Dan Williams a écrit :
> On Fri, Mar 15, 2019 at 3:31 PM Brice Goglin <Brice.Goglin(a)inria.fr> wrote:
>> Hello Dan,
>>
>> On a machine emulating nvdimms over DDR using the memmap kernel parameter,
>> I can't enable devdax anymore with ndctl, when using your libnvdimm-pending
>> branch (1ffc664f9b8ca7346f2af0fb4f62b923193bf65c):
>>
>> # ndctl create-namespace -f -e namespace1.0 -t pmem -m devdax
>> libndctl: ndctl_dax_enable: dax1.0: failed to enable
>> Error: namespace1.0: failed to enable
>> failed to reconfigure namespace: No such device or address
>>
>> In the previous version of your libnvdimm-pending branch that I used before
>> (8d4a7e3da68e88a6efd3acb5cc971d0c2ca219a4 from January 8th) this ndctl line
>> worked fine right after boot.
>>
>> The difference between strace ndctl doesn't show anything obvious.
>> * /sys/devices/platform/e820_pmem/ndbus0/region1/namespace1.0/holder_class
contains nothing instead of "dax"
>> * /sys/devices/platform/e820_pmem/ndbus0/region1/dax_seed contains dax1.0
instead of dax1.1
>>
>> Any idea where to look?
> If my libnvdimm-pending branch worked it is likely due to the
> alignment padding fixes I had pending there. Can you post the dmesg
> from this failure?
>
> The alignment padding fixes are being abandoned in favor of just
> teaching the core-mm to not require section (128MB) alignment, but
> until then you need to make sure your persistent memory is 128MB
> aligned.
I am passing memmap=24G!7G memmap=24G!39G to the kernel command-line.
It looks properly aligned.
dmesg is below. Nothing appears when ndctl fails.
Hmm, ok. Can you boot with libnvdimm.dyndbg and see if it squawks
about the problem? If this is 1ffc664f9b8c then you need to have the
dax_pmem_compat driver or the dax_pmem driver to attach, and this also
won't work if you've hotplugged it with the kmem driver.