nvdimm.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 0/7] badblocks improvement for multiple bad block ranges
@ 2022-07-21 12:11 Coly Li
  2022-07-21 12:11 ` [PATCH v6 1/7] badblocks: add more helper structure and routines in badblocks.h Coly Li
                   ` (7 more replies)
  0 siblings, 8 replies; 24+ messages in thread
From: Coly Li @ 2022-07-21 12:11 UTC (permalink / raw)
  To: linux-block
  Cc: nvdimm, linux-raid, Coly Li, Dan Williams, Geliang Tang,
	Hannes Reinecke, Jens Axboe, NeilBrown, Richard Fan,
	Vishal L Verma, Wols Lists, Xiao Ni

This is the v6 version of the badblocks improvement series, which makes
badblocks APIs to handle multiple ranges in bad block table.

The change comparing to previous v5 version is the modification against
review comments from Xiao Ni,
- Typo fixes in code comments or commit logs.
- The over thought checking conditions like '<=' are simplified as '<'.
- Some unnecessary condition checks are removed.
- In _badblocks_set(), if prev returned from prev_badblocks() is <0, set 
  it properly before jumping to update_sectors. This helps to avoid un-
  necessary looping.

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>
Cc: Xiao Ni <xni@redhat.com>
---

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

 block/badblocks.c         | 1609 ++++++++++++++++++++++++++++++-------
 include/linux/badblocks.h |   30 +
 2 files changed, 1345 insertions(+), 294 deletions(-)

-- 
2.35.3


^ permalink raw reply	[flat|nested] 24+ messages in thread
* Re: [PATCH v6 5/7] badblocks: improve badblocks_check() for multiple ranges handling
@ 2023-05-09 11:00 tomas
  0 siblings, 0 replies; 24+ messages in thread
From: tomas @ 2023-05-09 11:00 UTC (permalink / raw)
  To: nvdimm


[-- Attachment #1.1.1: Type: text/html, Size: 7029 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2023-08-11 16:59 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-21 12:11 [PATCH v6 0/7] badblocks improvement for multiple bad block ranges Coly Li
2022-07-21 12:11 ` [PATCH v6 1/7] badblocks: add more helper structure and routines in badblocks.h Coly Li
2022-09-21 12:16   ` Xiao Ni
2022-07-21 12:11 ` [PATCH v6 2/7] badblocks: add helper routines for badblock ranges handling Coly Li
2022-09-21 12:13   ` Xiao Ni
2023-08-11 16:57     ` Coly Li
2022-07-21 12:11 ` [PATCH v6 3/7] badblocks: improve badblocks_set() for multiple " Coly Li
2022-09-21 12:13   ` Xiao Ni
2023-08-11 16:57     ` Coly Li
2022-07-21 12:11 ` [PATCH v6 4/7] badblocks: improve badblocks_clear() " Coly Li
2022-09-21 15:26   ` Xiao Ni
2023-08-11 16:57     ` Coly Li
2023-08-11 16:58     ` Coly Li
2022-07-21 12:11 ` [PATCH v6 5/7] badblocks: improve badblocks_check() " Coly Li
2022-09-21 16:33   ` Xiao Ni
2022-09-23 15:17     ` 3507712
2022-10-28 17:50   ` Lynn.Figore
2022-12-20 13:25   ` Joy.Palmer
2023-03-21 11:17   ` Robert.Nocerino
2022-07-21 12:11 ` [PATCH v6 6/7] badblocks: switch to the improved badblock handling code Coly Li
2022-07-21 12:11 ` [PATCH v6 7/7] test: user space code to test badblocks APIs Coly Li
2023-05-23  2:38 ` [PATCH v6 0/7] badblocks improvement for multiple bad block ranges Li Nan
2023-05-23  4:38   ` Coly Li
2023-05-09 11:00 [PATCH v6 5/7] badblocks: improve badblocks_check() for multiple ranges handling tomas

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).