On Wed, Oct 10, 2018 at 4:51 PM Alexander Duyck
<[email protected]> 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 <[email protected]>
> ---
>  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
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to