All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: Jingqi Liu <jingqi.liu@intel.com>
Cc: Linux NVDIMM <nvdimm@lists.linux.dev>,
	Vishal L Verma <vishal.l.verma@intel.com>
Subject: Re: [PATCH] ndctl/dimm: Fix to dump namespace indexs and labels
Date: Thu, 1 Jul 2021 21:41:44 -0700	[thread overview]
Message-ID: <CAPcyv4jZ4WznktzoEm=vousG2rBaV6nyZDj-i8o5TYG=xdTqjg@mail.gmail.com> (raw)
In-Reply-To: <20210609030642.66204-1-jingqi.liu@intel.com>

[ add Vishal ]


On Tue, Jun 8, 2021 at 8:16 PM Jingqi Liu <jingqi.liu@intel.com> wrote:
>
> The following bug is caused by setting the size of Label Index Block
> to a fixed 256 bytes.
>
> Use the following Qemu command to start a Guest with 2MB label-size:
>         -object memory-backend-file,id=mem1,share=on,mem-path=/dev/dax1.1,size=14G,align=2M
>         -device nvdimm,memdev=mem1,id=nv1,label-size=2M
>
> There is a namespace in the Guest as follows:
>         $ ndctl list
>         [
>           {
>             "dev":"namespace0.0",
>             "mode":"devdax",
>             "map":"dev",
>             "size":14780727296,
>             "uuid":"58ad5282-5a16-404f-b8ee-e28b4c784eb8",
>             "chardev":"dax0.0",
>             "align":2097152,
>             "name":"namespace0.0"
>           }
>         ]
>
> Fail to read labels. The result is as follows:
>         $ ndctl read-labels -u nmem0
>         [
>         ]
>         read 0 nmem
>
> If using the following Qemu command to start the Guest with 128K
> label-size, this label can be read correctly.
>         -object memory-backend-file,id=mem1,share=on,mem-path=/dev/dax1.1,size=14G,align=2M
>         -device nvdimm,memdev=mem1,id=nv1,label-size=128K
>
> The size of a Label Index Block depends on how many label slots fit into
> the label storage area. The minimum size of an index block is 256 bytes
> and the size must be a multiple of 256 bytes. For a storage area of 128KB,
> the corresponding Label Index Block size is 256 bytes. But if the label
> storage area is not 128KB, the Label Index Block size should not be 256 bytes.
>
> Namespace Label Index Block appears twice at the top of the label storage area.
> Following the two index blocks, an array for storing labels takes up the
> remainder of the label storage area.
>
> For obtaining the size of Namespace Index Block, we also cannot rely on
> the field of 'mysize' in this index block since it might be corrupted.
> Similar to the linux kernel, we use sizeof_namespace_index() to get the size
> of Namespace Index Block. Then we can also correctly calculate the starting
> offset of the following namespace labels.
>
> Suggested-by: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Jingqi Liu <jingqi.liu@intel.com>

Apologies for the delay in responding, this looks good and passes my tests:

Reviewed-by: Dan Williams <dan.j.williams@intel.com>

  parent reply	other threads:[~2021-07-02  4:41 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-09  3:06 [PATCH] ndctl/dimm: Fix to dump namespace indexs and labels Jingqi Liu
2021-06-16  1:31 ` Liu, Jingqi
2021-07-02  4:41 ` Dan Williams [this message]
2021-07-08  0:21 ` Verma, Vishal L
2021-07-08  1:53   ` Liu, Jingqi
2021-07-08  5:59     ` Verma, Vishal L
2021-07-08  6:52       ` Liu, Jingqi
  -- strict thread matches above, loose matches on Subject: below --
2021-06-03  1:25 Jingqi Liu
2021-06-07 20:03 ` Dan Williams
2021-06-09  1:27   ` Liu, Jingqi
2021-06-02 12:18 Jingqi Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAPcyv4jZ4WznktzoEm=vousG2rBaV6nyZDj-i8o5TYG=xdTqjg@mail.gmail.com' \
    --to=dan.j.williams@intel.com \
    --cc=jingqi.liu@intel.com \
    --cc=nvdimm@lists.linux.dev \
    --cc=vishal.l.verma@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.