All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Mason <chris.mason@oracle.com>
To: Christof Schmitt <christof.schmitt@de.ibm.com>
Cc: Boaz Harrosh <bharrosh@panasas.com>,
	James Bottomley <James.Bottomley@suse.de>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-fsdevel@vger.kernel.org
Subject: Re: Wrong DIF guard tag on ext2 write
Date: Tue, 1 Jun 2010 09:03:25 -0400	[thread overview]
Message-ID: <20100601130325.GG8980@think> (raw)
In-Reply-To: <20100601103041.GA15922@schmichrtp.mainz.de.ibm.com>

On Tue, Jun 01, 2010 at 12:30:42PM +0200, Christof Schmitt wrote:
> On Mon, May 31, 2010 at 06:30:05PM +0300, Boaz Harrosh wrote:
> > On 05/31/2010 06:01 PM, James Bottomley wrote:
> > > On Mon, 2010-05-31 at 10:20 -0400, Martin K. Petersen wrote:
> > >>>>>>> "Christof" == Christof Schmitt <christof.schmitt@de.ibm.com> writes:
> > >>
> > >> Christof> Since the guard tags are created in Linux, it seems that the
> > >> Christof> data attached to the write request changes between the
> > >> Christof> generation in bio_integrity_generate and the call to
> > >> Christof> sd_prep_fn.
> > >>
> > >> Yep, known bug.  Page writeback locking is messed up for buffer_head
> > >> users.  The extNfs folks volunteered to look into this a while back but
> > >> I don't think they have found the time yet.
> > >>
> > >>
> > >> Christof> Using ext3 or ext4 instead of ext2 does not show the problem.
> > >>
> > >> Last I looked there were still code paths in ext3 and ext4 that
> > >> permitted pages to be changed during flight.  I guess you've just been
> > >> lucky.
> > > 
> > > Pages have always been modifiable in flight.  The OS guarantees they'll
> > > be rewritten, so the drivers can drop them if it detects the problem.
> > > This is identical to the iscsi checksum issue (iscsi adds a checksum
> > > because it doesn't trust TCP/IP and if the checksum is generated in
> > > software, there's time between generation and page transmission for the
> > > alteration to occur).  The solution in the iscsi case was not to
> > > complain if the page is still marked dirty.
> > > 
> > 
> > And also why RAID1 and RAID4/5/6 need the data bounced. I wish VFS
> > would prevent data writing given a device queue flag that requests
> > it. So all these devices and modes could just flag the VFS/filesystems
> > that: "please don't allow concurrent writes, otherwise I need to copy data"
> > 
> > From what Chris Mason has said before, all the mechanics are there, and it's
> > what btrfs is doing. Though I don't know how myself?
> 
> I also tested with btrfs and invalid guard tags in writes have been
> encountered as well (again in 2.6.34). The only difference is that no
> error was reported to userspace, although this might be a
> configuration issue.

This would be a btrfs bug.  We have strict checks in place that are
supposed to prevent buffers changing while in flight.  What was the
workload that triggered this problem?

> 
> What is the best strategy to continue with the invalid guard tags on
> write requests? Should this be fixed in the filesystems?
> 

Long term, I think the filesystems shouldn't be changing pages in
flight.  Bouncing just hurts way too much.

-chris

  parent reply	other threads:[~2010-06-01 13:03 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-31 11:28 Wrong DIF guard tag on ext2 write Christof Schmitt
2010-05-31 11:34 ` Christof Schmitt
2010-05-31 14:20 ` Martin K. Petersen
2010-05-31 14:46   ` Christof Schmitt
2010-06-01 13:16     ` Martin K. Petersen
2010-06-02 13:37       ` Christof Schmitt
2010-06-02 23:20         ` Dave Chinner
2010-06-04  1:34           ` Martin K. Petersen
2010-06-04  2:32             ` Dave Chinner
2010-06-07 16:20               ` Martin K. Petersen
2010-06-07 17:22                 ` Boaz Harrosh
2010-06-07 17:40                   ` Martin K. Petersen
2010-06-08  7:15                     ` Christof Schmitt
2010-06-08  8:47                       ` Dave Chinner
2010-06-08  8:52                         ` Nick Piggin
2010-05-31 14:49   ` Nick Piggin
2010-06-01 13:17     ` Martin K. Petersen
2010-05-31 15:01   ` James Bottomley
2010-05-31 15:30     ` Boaz Harrosh
2010-05-31 15:49       ` Nick Piggin
2010-05-31 16:25         ` Boaz Harrosh
2010-06-01 13:22         ` Martin K. Petersen
2010-06-01 10:30       ` Christof Schmitt
2010-06-01 10:49         ` Boaz Harrosh
2010-06-01 13:03         ` Chris Mason [this message]
2010-06-01 13:50           ` Christof Schmitt
2010-06-01 13:50           ` Christof Schmitt
2010-06-01 13:50           ` Christof Schmitt
2010-06-01 13:58             ` Chris Mason
2010-06-08  7:18               ` Christof Schmitt
2010-06-08  7:18               ` Christof Schmitt
2010-06-08  7:18               ` Christof Schmitt
2010-06-01 14:26             ` Nick Piggin
2010-06-01 13:27         ` James Bottomley
2010-06-01 13:33           ` Chris Mason
2010-06-01 13:40             ` James Bottomley
2010-06-01 13:49               ` Chris Mason
2010-06-01 16:29                 ` Matthew Wilcox
2010-06-01 16:29                   ` Matthew Wilcox
2010-06-01 16:47                   ` Chris Mason
2010-06-01 16:54                     ` James Bottomley
2010-06-01 18:09                       ` Chris Mason
2010-06-01 18:46                         ` Nick Piggin
2010-06-01 19:35                           ` Chris Mason
2010-06-02  3:20                             ` Nick Piggin
2010-06-02  3:20                               ` Nick Piggin
2010-06-02 13:17                               ` Martin K. Petersen
2010-06-02 13:41                                 ` Nick Piggin
2010-06-03 15:46                                   ` Chris Mason
2010-06-03 16:27                                     ` Nick Piggin
2010-06-03 16:27                                       ` Nick Piggin
2010-06-04  1:46                                       ` Martin K. Petersen
2010-06-04  3:09                                         ` Nick Piggin
2010-06-03 16:27                                     ` Nick Piggin
2010-06-04  2:02                                     ` Dave Chinner
2010-06-04  2:02                                     ` Dave Chinner
2010-06-04 15:32                                       ` Jan Kara
2010-06-04  2:02                                     ` Dave Chinner
2010-06-04  1:30                                   ` Martin K. Petersen
2010-06-02  3:20                             ` Nick Piggin
2010-06-01 18:46                         ` Nick Piggin
2010-06-01 18:46                         ` Nick Piggin
2010-06-01 21:07                         ` James Bottomley
2010-06-01 22:49                           ` Chris Mason
2010-06-01 16:29                 ` Matthew Wilcox
2010-06-01 13:50               ` Martin K. Petersen
2010-06-01 14:28                 ` Nick Piggin
2010-06-01 14:32                 ` James Bottomley
2010-06-01 14:54                   ` Martin K. Petersen
2010-06-03 11:20           ` Vladislav Bolkhovitin
2010-06-03 12:07             ` Boaz Harrosh
2010-06-03 12:41               ` Vladislav Bolkhovitin
2010-06-03 12:46                 ` Vladislav Bolkhovitin
2010-06-09 15:58                   ` Vladislav Bolkhovitin
2010-06-03 13:06                 ` Boaz Harrosh
2010-06-03 13:23                   ` Vladislav Bolkhovitin
2010-07-23 17:59             ` Gennadiy Nerubayev
2010-07-23 17:59               ` Gennadiy Nerubayev
2010-07-23 19:16               ` Vladislav Bolkhovitin
2010-07-23 20:51                 ` Gennadiy Nerubayev
2010-07-26 12:22                   ` Vladislav Bolkhovitin
2010-07-26 17:00                     ` Gennadiy Nerubayev
2010-07-26 19:26                       ` Vladislav Bolkhovitin
2010-07-24  1:03                 ` Dave Chinner
2010-06-01  2:40     ` FUJITA Tomonori
2010-06-03 16:09 ` [LFS/VM TOPIC] Stable pages while IO (was Wrong DIF guard tag on ext2 write) Boaz Harrosh
2010-06-03 16:09   ` Boaz Harrosh
2010-06-03 16:09   ` Boaz Harrosh
2010-06-03 16:30   ` [Lsf10-pc] " J. Bruce Fields
2010-06-03 17:41   ` Vladislav Bolkhovitin
2010-06-04 16:23   ` Jan Kara
2010-06-04 16:30     ` [Lsf10-pc] " J. Bruce Fields
2010-06-04 17:11       ` Jan Kara
2010-06-06  9:35     ` Boaz Harrosh
2010-06-06 23:37       ` Jan Kara
2010-06-07  8:30         ` Boaz Harrosh

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=20100601130325.GG8980@think \
    --to=chris.mason@oracle.com \
    --cc=James.Bottomley@suse.de \
    --cc=bharrosh@panasas.com \
    --cc=christof.schmitt@de.ibm.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.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 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.