All of lore.kernel.org
 help / color / mirror / Atom feed
From: NeilBrown <neilb@suse.de>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Manibalan P <pmanibalan@amiindia.co.in>,
	linux-raid <linux-raid@vger.kernel.org>
Subject: Re: raid6 - data integrity issue - data mis-compare on rebuilding RAID 6 - with 100 Mb resync speed.
Date: Mon, 5 May 2014 17:21:10 +1000	[thread overview]
Message-ID: <20140505172110.73667211@notabene.brown> (raw)
In-Reply-To: <CAPcyv4gg6N_FYOZmooXTUYT22AOuBmqFuin_TiKqn8A9DOCnqw@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1885 bytes --]

On Wed, 23 Apr 2014 10:02:00 -0700 Dan Williams <dan.j.williams@intel.com>
wrote:

> On Wed, Apr 23, 2014 at 12:07 AM, NeilBrown <neilb@suse.de> wrote:
> > On Fri, 11 Apr 2014 17:41:12 +0530 "Manibalan P" <pmanibalan@amiindia.co.in>
> > wrote:
> >
> >> Hi Neil,
> >>
> >> Also, I found the data corruption issue on RHEL 6.5.
> >>
> >> For your kind attention, I up-ported the md code [raid5.c + raid5.h]
> >> from FC11 kernel to CentOS 6.4, and there is no mis-compare with the
> >> up-ported code.
> >
> > This narrows it down to between 2.6.29 and 2.6.32 - is that correct?
> >
> > So it is probably the change to RAID6 to support async parity calculations.
> >
> > Looking at the code always makes my head spin.
> >
> > Dan : have you any ideas?
> >
> > It seems that writing to a double-degraded RAID6 while it is recovering to
> > a space can trigger data corruption.
> >
> > 2.6.29 works
> > 2.6.32 doesn't
> > 3.8.0 still doesn't.
> >
> > I suspect async parity calculations.
> 
> I'll take a look.  I've had cleanups of that code on my backlog for "a
> while now (TM)".


Hi Dan,
 did you have a chance to have a look?

I've been consistently failing to find anything.

I have a question though.
If we set up a chain of async dma handling via:
   ops_run_compute6_2 then ops_bio_drain then ops_run_reconstruct

is it possible for the ops_complete_compute callback set up by
ops_run_compute6_2 to be called before ops_run_reconstruct has been scheduled
or run?

If so, there seems to be some room for confusion over the setting for
R5_UPTODATE on blocks that are being computed and then drained to.  Both will
try to set the flag, so it could get set before reconstruction has run.

I can't see that this would cause a problem, but then I'm not entirely sure
why we clear R5_UPTODATE when we set R5_Wantdrain.

NeilBrown

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

  reply	other threads:[~2014-05-05  7:21 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-11 12:11 raid6 - data integrity issue - data mis-compare on rebuilding RAID 6 - with 100 Mb resync speed Manibalan P
2014-04-23  7:07 ` NeilBrown
2014-04-23 17:02   ` Dan Williams
2014-05-05  7:21     ` NeilBrown [this message]
2014-05-16 18:11       ` Dan Williams
2014-05-20  0:22         ` Dan Williams
2014-05-22 11:47           ` Manibalan P
2014-05-22 11:52           ` Manibalan P
2014-04-23  9:19 ` Pasi Kärkkäinen
2014-04-23  9:25   ` Manibalan P
2014-04-23  9:30     ` Pasi Kärkkäinen
2014-04-23  9:33       ` Manibalan P
2014-04-23  9:45         ` Pasi Kärkkäinen
2014-04-23  9:59           ` Manibalan P
2014-04-23 10:03             ` Pasi Kärkkäinen
  -- strict thread matches above, loose matches on Subject: below --
2014-03-24 13:15 Manibalan P
2014-03-12  7:39 Manibalan P
2014-03-13  6:19 ` NeilBrown

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=20140505172110.73667211@notabene.brown \
    --to=neilb@suse.de \
    --cc=dan.j.williams@intel.com \
    --cc=linux-raid@vger.kernel.org \
    --cc=pmanibalan@amiindia.co.in \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.