All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: alexander.h.duyck@linux.intel.com
Cc: zwisler@kernel.org, linux-nvdimm <linux-nvdimm@lists.01.org>
Subject: Re: [nvdimm PATCH 6/6] nvdimm: Use namespace index data to reduce number of label reads needed
Date: Thu, 11 Oct 2018 18:35:25 -0700	[thread overview]
Message-ID: <CAPcyv4hw6xQ5nvGpf3Kd_86STXqEEd3pj3u0LEZ1fP+d2e8+Cg@mail.gmail.com> (raw)
In-Reply-To: <20181010233926.12228.65663.stgit@localhost.localdomain>

On Wed, Oct 10, 2018 at 4:51 PM Alexander Duyck
<alexander.h.duyck@linux.intel.com> wrote:
>
> This patch adds logic that is meant to make use of the namespace index data
> to reduce the number of reads that are needed to initialize a given
> namespace. The general idea is that once we have enough data to validate
> the namespace index we do so and then proceed to fetch only those labels
> that are not listed as being "free". By doing this I am seeing a total time
> reduction from about 4-5 seconds to 2-3 seconds for 24 NVDIMM modules each
> with 128K of label config area.
>
> Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
> ---
>  drivers/nvdimm/dimm.c  |    4 --
>  drivers/nvdimm/label.c |   93 +++++++++++++++++++++++++++++++++++++++++++++---
>  drivers/nvdimm/label.h |    3 --
>  3 files changed, 88 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/nvdimm/dimm.c b/drivers/nvdimm/dimm.c
> index 07bf96948553..9899c97138a3 100644
> --- a/drivers/nvdimm/dimm.c
> +++ b/drivers/nvdimm/dimm.c
> @@ -452,7 +455,87 @@ int nd_label_data_init(struct nvdimm_drvdata *ndd)
[..]
> +       /* Loop through the free list pulling in any active labels */
> +       for (i = 0; i < nsindex->nslot; i++, offset += ndd->nslabel_size) {

0day points out a sparse warning on that usage of nslot which is an
__le32. I'll append a fixup.
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

  reply	other threads:[~2018-10-12  1:35 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-10 23:36 [nvdimm PATCH 0/6] Label initialization time optimizations Alexander Duyck
2018-10-10 23:38 ` [nvdimm PATCH 1/6] libnvdimm, dimm: Maximize label transfer size Alexander Duyck
2018-10-10 23:38 ` [nvdimm PATCH 2/6] nvdimm: Sanity check labeloff Alexander Duyck
2018-10-10 23:38 ` [nvdimm PATCH 3/6] nvdimm: Clarify comment in sizeof_namespace_index Alexander Duyck
2018-10-10 23:39 ` [nvdimm PATCH 4/6] nvdimm: Remove empty if statement Alexander Duyck
2018-10-10 23:39 ` [nvdimm PATCH 5/6] nvdimm: Split label init out from the logic for getting config data Alexander Duyck
2018-10-10 23:39 ` [nvdimm PATCH 6/6] nvdimm: Use namespace index data to reduce number of label reads needed Alexander Duyck
2018-10-12  1:35   ` Dan Williams [this message]
2018-10-11  4:48 ` [nvdimm PATCH 0/6] Label initialization time optimizations Dan Williams
2018-10-12 15:36 ` Kani, Toshi

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=CAPcyv4hw6xQ5nvGpf3Kd_86STXqEEd3pj3u0LEZ1fP+d2e8+Cg@mail.gmail.com \
    --to=dan.j.williams@intel.com \
    --cc=alexander.h.duyck@linux.intel.com \
    --cc=linux-nvdimm@lists.01.org \
    --cc=zwisler@kernel.org \
    /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.