Le 13/02/2019 à 09:43, Brice Goglin a écrit : > Le 13/02/2019 à 09:24, Dan Williams a écrit : >> On Wed, Feb 13, 2019 at 12:12 AM Brice Goglin <[email protected]> wrote: >>> Le 13/02/2019 à 01:30, Dan Williams a écrit : >>>> On Tue, Feb 12, 2019 at 11:59 AM Brice Goglin <[email protected]> >>>> wrote: >>>>> # ndctl disable-region all >>>>> # ndctl zero-labels all >>>>> # ndctl enable-region region0 >>>>> # ndctl create-namespace -r region0 -t pmem -m devdax >>>>> { >>>>> "dev":"namespace0.0", >>>>> "mode":"devdax", >>>>> "map":"dev", >>>>> "size":"1488.37 GiB (1598.13 GB)", >>>>> "uuid":"ad0096d7-3fe7-4402-b529-ad64ed0bf789", >>>>> "daxregion":{ >>>>> "id":0, >>>>> "size":"1488.37 GiB (1598.13 GB)", >>>>> "align":2097152, >>>>> "devices":[ >>>>> { >>>>> "chardev":"dax0.0", >>>>> "size":"1488.37 GiB (1598.13 GB)" >>>>> } >>>>> ] >>>>> }, >>>>> "align":2097152 >>>>> } >>>>> # ndctl enable-namespace namespace0.0 >>>>> # echo -n dax0.0 > /sys/bus/dax/drivers/device_dax/remove_id >>>>> <hang> >>>>> >>>>> I tried with and without dax_pmem_compat loaded, but it doesn't help. >>>> I think this is due to: >>>> >>>> a9f1ffdb6a20 device-dax: Auto-bind device after successful new_id >>>> >>>> I missed that this path is also called in the remove_id path. Thanks >>>> for the bug report! I'll get this fixed up. >>> Now that remove_id is fixed, things fails later in Dave's procedure: >>> >>> # echo -n dax0.0 > /sys/bus/dax/drivers/device_dax/remove_id >>> # echo -n dax0.0 > /sys/bus/dax/drivers/device_dax/unbind >>> # echo -n dax0.0 > /sys/bus/dax/drivers/kmem/new_id >> In the current version of the code the bind is not necessary, so the >> lack of error messages here means the bind succeeded.
It looks like "unbind" is required to make the PMEM appear as a new node. If I remove_id from devdax and new_id to kmem without "unbind" in the middle, nothing appears. Writing to "kmem/bind" didn't seem necessary. Brice >> >>> # echo -n dax0.0 > /sys/bus/dax/drivers/kmem/bind >>> -bash: echo: write error: No such device >> This also happens when the device is already bound. >> >>> (And nothing seems to have changed in /sys/devices/system/memory/*/state) >> What does "cat /proc/iomem" say? > > 3060000000-1aa5fffffff : Persistent Memory > 3060000000-36481fffff : namespace0.0 > 3680000000-1a9ffffffff : dax0.0 > 3680000000-1a9ffffffff : System RAM > (the last line wasn't here before attaching to kmem) > > I said nothing changed in memory/*/state, I actually meant that nothing > was offline. But things are actually working! > > First, node4 appeared, all memory is already attached to it without > having to write to memory/*/state > > Node 4 MemTotal: 1558183936 kB > Node 4 MemFree: 1558068564 kB > Node 4 MemUsed: 115372 kB > > I wasn't expecting node4 to appear because the machine has no > /sys/firmware/acpi/tables/HMAT when running in 1LM (there's one in 2LM). > I thought you said in the past that no HMAT would mean memory would be > added to the existing DDR node? > > Thanks! > > Brice > >

