linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Coly Li <colyli@suse.de>
To: nvdimm@lists.linux.dev, linux-raid@vger.kernel.org
Cc: linux-block@vger.kernel.org, Coly Li <colyli@suse.de>,
	Dan Williams <dan.j.williams@intel.com>,
	Geliang Tang <geliang.tang@suse.com>,
	Hannes Reinecke <hare@suse.de>, Jens Axboe <axboe@kernel.dk>,
	NeilBrown <neilb@suse.de>, Richard Fan <richard.fan@suse.com>,
	Vishal L Verma <vishal.l.verma@intel.com>,
	Wols Lists <antlists@youngman.org.uk>
Subject: [PATCH v5 0/7] badblocks improvement for multiple bad block ranges
Date: Sat, 11 Dec 2021 00:04:49 +0800	[thread overview]
Message-ID: <20211210160456.56816-1-colyli@suse.de> (raw)

Hi folks,

This is the v5 effort to improve badblocks code APIs to handle multiple
ranges in bad block table.

Comparing to previous v4 series, the changes in v5 series include,
- Typos in code comments which are pointed out by Geliang Tang and
  Wols Lists.
- Drop extra local variables in helper routines which suggested by
  Geliang Tang.
- Change the user space testing code with all above changes.

There is NO in-memory or on-disk format change in the whole series, all
existing API and data structures are consistent. This series just only
improve the code algorithm to handle more corner cases, the interfaces
are same and consistency to all existing callers (md raid and nvdimm
drivers).

The original motivation of the change is from the requirement from our
customer, that current badblocks routines don't handle multiple ranges.
For example if the bad block setting range covers multiple ranges from
bad block table, only the first two bad block ranges merged and rested
ranges are intact. The expected behavior should be all the covered
ranges to be handled.

All the patches are tested by modified user space code and the code
logic works as expected. The modified user space testing code is
provided in the last patch. The testing code is an example how the
improved code is tested.

The whole change is divided into 6 patches to make the code review more
clear and easier. If people prefer, I'd like to post a single large
patch finally after the code review accomplished.

Please review the code and response. Thank you all in advance.

Coly Li

Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Geliang Tang <geliang.tang@suse.com>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: NeilBrown <neilb@suse.de>
Cc: Richard Fan <richard.fan@suse.com>
Cc: Vishal L Verma <vishal.l.verma@intel.com>
Cc: Wols Lists <antlists@youngman.org.uk>
---

Coly Li (6):
  badblocks: add more helper structure and routines in badblocks.h
  badblocks: add helper routines for badblock ranges handling
  badblocks: improve badblocks_set() for multiple ranges handling
  badblocks: improve badblocks_clear() for multiple ranges handling
  badblocks: improve badblocks_check() for multiple ranges handling
  badblocks: switch to the improved badblock handling code
Coly Li (1):
  test: user space code to test badblocks APIs

 block/badblocks.c         | 1604 ++++++++++++++++++++++++++++++-------
 include/linux/badblocks.h |   30 +
 2 files changed, 1339 insertions(+), 295 deletions(-)

-- 
2.31.1


             reply	other threads:[~2021-12-10 16:05 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-10 16:04 Coly Li [this message]
2021-12-10 16:04 ` [PATCH v5 1/6] badblocks: add more helper structure and routines in badblocks.h Coly Li
2021-12-10 16:04 ` [PATCH v5 2/6] badblocks: add helper routines for badblock ranges handling Coly Li
2022-01-02  7:04   ` Xiao Ni
2022-06-06  7:47     ` Coly Li
2021-12-10 16:04 ` [PATCH v5 3/6] badblocks: improve badblocks_set() for multiple " Coly Li
2022-01-02 13:48   ` Xiao Ni
2022-06-06  7:47     ` Coly Li
2021-12-10 16:04 ` [PATCH v5 4/6] badblocks: improve badblocks_clear() " Coly Li
2021-12-10 16:04 ` [PATCH v5 5/6] badblocks: improve badblocks_check() " Coly Li
2021-12-10 16:04 ` [PATCH v5 6/6] badblocks: switch to the improved badblock handling code Coly Li
2021-12-10 16:04 ` [PATCH v5] test: user space code to test badblocks APIs Coly Li

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=20211210160456.56816-1-colyli@suse.de \
    --to=colyli@suse.de \
    --cc=antlists@youngman.org.uk \
    --cc=axboe@kernel.dk \
    --cc=dan.j.williams@intel.com \
    --cc=geliang.tang@suse.com \
    --cc=hare@suse.de \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=neilb@suse.de \
    --cc=nvdimm@lists.linux.dev \
    --cc=richard.fan@suse.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).