[nvdimm,0/6] Label initialization time optimizations
mbox series

Message ID 20181010233428.12228.26106.stgit@localhost.localdomain
Headers show
Series
  • Label initialization time optimizations
Related show

Message

Alexander Duyck Oct. 10, 2018, 11:36 p.m. UTC
This patch set is intended to improve NVDIMM label read times by first
increasing the upper limit on the label read/write size, and then
reducing the number of reads by making use of the free label bitmap in
the index to determine what labels are actually populated and only read
those labels. In my testing on a system populated with 24 NVDIMM modules
I see the total label init time drop from about 24 seconds down to 2 to
3 seconds. 

In the process of coding this up I came across a few minor issues that
I felt should be addressed so I have added a few patches for those fixes
along the way.

---

Alexander Duyck (5):
      nvdimm: Sanity check labeloff
      nvdimm: Clarify comment in sizeof_namespace_index
      nvdimm: Remove empty if statement
      nvdimm: Split label init out from the logic for getting config data
      nvdimm: Use namespace index data to reduce number of label reads needed

Dan Williams (1):
      libnvdimm, dimm: Maximize label transfer size


 drivers/nvdimm/dimm.c      |    6 --
 drivers/nvdimm/dimm_devs.c |   60 +++++++------------
 drivers/nvdimm/label.c     |  142 ++++++++++++++++++++++++++++++++++++++++++--
 drivers/nvdimm/label.h     |    4 -
 drivers/nvdimm/nd.h        |    2 +
 5 files changed, 163 insertions(+), 51 deletions(-)

--

Comments

Dan Williams Oct. 11, 2018, 4:48 a.m. UTC | #1
On Wed, Oct 10, 2018 at 4:36 PM Alexander Duyck
<alexander.h.duyck@linux.intel.com> wrote:
>
> This patch set is intended to improve NVDIMM label read times by first
> increasing the upper limit on the label read/write size, and then
> reducing the number of reads by making use of the free label bitmap in
> the index to determine what labels are actually populated and only read
> those labels. In my testing on a system populated with 24 NVDIMM modules
> I see the total label init time drop from about 24 seconds down to 2 to
> 3 seconds.
>
> In the process of coding this up I came across a few minor issues that
> I felt should be addressed so I have added a few patches for those fixes
> along the way.

Thanks, this all looks good to me, the split looks good, and the
commentary in patch6 made it easy to review.

I quibble with "Remove empty if statement" because I find positive
logic easier to read than negative logic, but removing more lines than
it adds made me reserve that quibble for another time.
Kani, Toshi Oct. 12, 2018, 3:36 p.m. UTC | #2
On Wed, 2018-10-10 at 16:36 -0700, Alexander Duyck wrote:
> This patch set is intended to improve NVDIMM label read times by first
> increasing the upper limit on the label read/write size, and then
> reducing the number of reads by making use of the free label bitmap in
> the index to determine what labels are actually populated and only read
> those labels. In my testing on a system populated with 24 NVDIMM modules
> I see the total label init time drop from about 24 seconds down to 2 to
> 3 seconds. 
> 
> In the process of coding this up I came across a few minor issues that
> I felt should be addressed so I have added a few patches for those fixes
> along the way.
> 
> ---
> 
> Alexander Duyck (5):
>       nvdimm: Sanity check labeloff
>       nvdimm: Clarify comment in sizeof_namespace_index
>       nvdimm: Remove empty if statement
>       nvdimm: Split label init out from the logic for getting config data
>       nvdimm: Use namespace index data to reduce number of label reads needed
> 
> Dan Williams (1):
>       libnvdimm, dimm: Maximize label transfer size
> 

This series really helps us a lot!! The change looks good to me.

Reviewed-by: Toshi Kani <toshi.kani@hpe.com>

Thanks!
-Toshi