lkml.org 
[lkml]   [2019]   [Feb]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH 5/5] dax: "Hotplug" persistent memory for use like normal RAM
    On Wed, Feb 13, 2019 at 5:07 AM Brice Goglin <Brice.Goglin@inria.fr> wrote:
    >
    >
    > 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 <Brice.Goglin@inria.fr> wrote:
    > >>> Le 13/02/2019 à 01:30, Dan Williams a écrit :
    > >>>> On Tue, Feb 12, 2019 at 11:59 AM Brice Goglin <Brice.Goglin@inria.fr> 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.

    Yes, in short:

    device_dax/remove_id: not required, this driver attaches to any and
    all device-dax devices by default
    device_dax/unbind: required, nothing else will free the device for
    kmem to attach
    kmem/new_id: required, it will attach if the device is currently
    unbound otherwise the device must be unbound before proceeding
    kmem/bind: only required if the device was busy / attached to
    device_dax when new_id was written.

    \
     
     \ /
      Last update: 2019-02-13 17:20    [W:3.624 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site