Linux-NVDIMM Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Verma, Vishal L" <vishal.l.verma-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: "jmoyer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org"
	<jmoyer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: "linux-nvdimm-y27Ovi1pjclAfugRpC6u6w@public.gmane.org"
	<linux-nvdimm-y27Ovi1pjclAfugRpC6u6w@public.gmane.org>
Subject: Re: [ndctl PATCH v2 3/3] ndctl, test: Add a unit test for the BTT checker
Date: Tue, 28 Feb 2017 21:49:49 +0000	[thread overview]
Message-ID: <1488318514.4873.12.camel@intel.com> (raw)
In-Reply-To: <x494lze10ae.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>

On Tue, 2017-02-28 at 16:19 -0500, Jeff Moyer wrote:
> Vishal Verma <vishal.l.verma-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> writes:
> 
> > +# re-enable the BTT namespace, and do IO to it in an attempt to
> > +# verify it still comes up ok, and functions as expected
> > +post_repair_test()
> > +{
> > +	echo "${FUNCNAME[0]}: I/O to BTT namespace"
> > +	test -b /dev/$blockdev
> > +	dd if=/dev/zero of=/dev/$blockdev bs=$sector_size
> > count=$((size/sector_size)) > /dev/null 2>&1
> > +	dd if=/dev/$blockdev of=/dev/null bs=$sector_size
> > count=$((size/sector_size)) > /dev/null 2>&1
> 
> Maybe validate the data you got?

Good idea, I was just testing that the IOs don't fail, but I'll add
writing known data and validating it is read back the same.

> 
> > +	echo "done"
> > +}
> > +
> > +test_normal()
> > +{
> > +	echo "=== ${FUNCNAME[0]} ==="
> > +	# disable the namespace
> > +	$ndctl disable-namespace $dev
> > +	$ndctl check-namespace $dev
> 
> Shouldn't we ensure there are no errors reported by the check?

It should happen already. Check-namespace will return a non zero exit
code for any errors, and that will trigger the script's set -E error
trap.

> 
> > +	$ndctl enable-namespace $dev
> > +	post_repair_test
> > +}
> > +
> 
> [snip]
> 
> > +test_bitmap()
> > +{
> > +	echo "=== ${FUNCNAME[0]} ==="
> > +	reset && create
> > +	set_raw
> > +	# scribble over the last 4K of the map
> > +	rm -f /tmp/scribble
> > +	for (( i=0 ; i<512 ; i++ )); do
> > +		echo -n -e \\x1e\\x1e\\x00\\xc0\\x1e\\x1e\\x00\\xc0
> > >> /tmp/scribble
> > +	done
> > +	seek="$((raw_size/bs - (256*64/bs) - 2))"
> > +	echo "scribbling over map entries (offset = $seek blocks)"
> > +	dd if=/tmp/scribble of=/dev/$raw_bdev bs=$bs seek=$seek
> > +	rm -f /tmp/scribble
> > +	unset_raw
> > +	$ndctl disable-namespace $dev
> > +	$ndctl check-namespace $dev 2>&1 | grep "bitmap error"
> > +	# This is not repairable
> > +	reset && create
> > +}
> > +
> 
> Can you add a test to inject badblocks in the metadata?

I had been putting off badblock handling with BTT metadata, but you're
right, let me figure out a flow for how to handle/report this. Obviously
recovery is not possible at that point, but we should be able to provide
a coherent message.

> 
> Cheers,
> Jeff

  parent reply	other threads:[~2017-02-28 21:49 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-22 22:47 [ndctl PATCH v2 0/3] Add ndctl check-namespace Vishal Verma
2017-02-22 22:47 ` [ndctl PATCH v2 1/3] ndctl: move the fletcher64 routine to util/ Vishal Verma
2017-02-22 22:47 ` [ndctl PATCH v2 2/3] ndctl: add a BTT check utility Vishal Verma
2017-02-24  1:14   ` Dan Williams
2017-02-28 21:11   ` Jeff Moyer
     [not found]     ` <x49a89610mr.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
2017-02-28 22:31       ` Verma, Vishal L
     [not found]         ` <1488321002.4873.17.camel-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-03-01 15:02           ` Jeff Moyer
     [not found]             ` <x49inntt4z6.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
2017-03-01 15:54               ` Dan Williams
     [not found]                 ` <CAPcyv4g+UfCR2x3KwWB+yu6fRh5UcVRvdAdrx3ri8bpJx+r8YQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-03-01 20:27                   ` Verma, Vishal L
2017-03-01 20:26               ` Verma, Vishal L
2017-02-22 22:47 ` [ndctl PATCH v2 3/3] ndctl, test: Add a unit test for the BTT checker Vishal Verma
     [not found]   ` <20170222224724.7696-4-vishal.l.verma-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-02-28 21:19     ` Jeff Moyer
     [not found]       ` <x494lze10ae.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
2017-02-28 21:49         ` Verma, Vishal L [this message]
     [not found]           ` <1488318514.4873.12.camel-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-02-28 21:58             ` Jeff Moyer

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=1488318514.4873.12.camel@intel.com \
    --to=vishal.l.verma-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=jmoyer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=linux-nvdimm-y27Ovi1pjclAfugRpC6u6w@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox