2009-10-28 20:36:40

by Andrew Patterson

[permalink] [raw]
Subject: Re: [dm-devel] [PATCH] block: silently error unsupported empty barriers too

On Thu, 2009-08-06 at 21:50 -0400, Mikulas Patocka wrote:
> On Thu, 6 Aug 2009, Alasdair G Kergon wrote:
>
> > On Thu, Aug 06, 2009 at 12:14:17PM +0100, Mark McLoughlin wrote:
> > > We should error all barriers, even empty barriers, on devices like
> > > virtio_blk which don't support them.
> >
> > Have you considered whether or not virtio_blk actually needs to
> > support empty barriers?
> >
> > Alasdair
>
> This is only for request-based drivers, where it is the responsibility of
> blk-core to translate barriers. I think the empty barrier request anyway
> in blk_do_ordered, but with an error message. So the patch changes it to
> discard it early and queitly. It seems ok.
>
> Mikulas
> --

This patch seems to have been dropped. I can reproduce the error using
the following:

1. Create an LVM logical volume on top of a cciss device (note that
the cciss driver does not support barriers)
2. Create an ext3 file system on top of the logical volume
3. Mount the file-system using -obarrier=1
4. Copy some files onto the file-system
5. Run sync (dm_flush is called)

If I apply the patch (with some munging), the

"end_request: I/O error, dev cciss/cXdY, sector 0"

messages go away.

This is not strictly a regression, given that the problem was introduced
in 2.6.31, but I think it should still be fixed for 2.6.32.

Andrew

--
Andrew Patterson
Hewlett-Packard


2009-10-28 21:03:39

by Mike Snitzer

[permalink] [raw]
Subject: Re: block: silently error unsupported empty barriers too

On Wed, Oct 28 2009 at 4:19pm -0400,
Andrew Patterson <[email protected]> wrote:

> On Thu, 2009-08-06 at 21:50 -0400, Mikulas Patocka wrote:
> > On Thu, 6 Aug 2009, Alasdair G Kergon wrote:
> >
> > > On Thu, Aug 06, 2009 at 12:14:17PM +0100, Mark McLoughlin wrote:
> > > > We should error all barriers, even empty barriers, on devices like
> > > > virtio_blk which don't support them.
> > >
> > > Have you considered whether or not virtio_blk actually needs to
> > > support empty barriers?
> > >
> > > Alasdair
> >
> > This is only for request-based drivers, where it is the responsibility of
> > blk-core to translate barriers. I think the empty barrier request anyway
> > in blk_do_ordered, but with an error message. So the patch changes it to
> > discard it early and queitly. It seems ok.
> >
> > Mikulas
> > --
>
> This patch seems to have been dropped. I can reproduce the error using
> the following:
>
> 1. Create an LVM logical volume on top of a cciss device (note that
> the cciss driver does not support barriers)
> 2. Create an ext3 file system on top of the logical volume
> 3. Mount the file-system using -obarrier=1
> 4. Copy some files onto the file-system
> 5. Run sync (dm_flush is called)
>
> If I apply the patch (with some munging), the
>
> "end_request: I/O error, dev cciss/cXdY, sector 0"
>
> messages go away.
>
> This is not strictly a regression, given that the problem was introduced
> in 2.6.31, but I think it should still be fixed for 2.6.32.

It was resubmitted last Friday:
http://lkml.org/lkml/2009/10/23/196

And is queued in Jens' 'for-linus' branch (meaning it should get
upstream in time for 2.6.32), see:
http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commit;h=6cafb12dc85a5bdc722791cc5070968413264909

Mike

2009-10-29 07:45:39

by Jens Axboe

[permalink] [raw]
Subject: Re: block: silently error unsupported empty barriers too

On Wed, Oct 28 2009, Mike Snitzer wrote:
> On Wed, Oct 28 2009 at 4:19pm -0400,
> Andrew Patterson <[email protected]> wrote:
>
> > On Thu, 2009-08-06 at 21:50 -0400, Mikulas Patocka wrote:
> > > On Thu, 6 Aug 2009, Alasdair G Kergon wrote:
> > >
> > > > On Thu, Aug 06, 2009 at 12:14:17PM +0100, Mark McLoughlin wrote:
> > > > > We should error all barriers, even empty barriers, on devices like
> > > > > virtio_blk which don't support them.
> > > >
> > > > Have you considered whether or not virtio_blk actually needs to
> > > > support empty barriers?
> > > >
> > > > Alasdair
> > >
> > > This is only for request-based drivers, where it is the responsibility of
> > > blk-core to translate barriers. I think the empty barrier request anyway
> > > in blk_do_ordered, but with an error message. So the patch changes it to
> > > discard it early and queitly. It seems ok.
> > >
> > > Mikulas
> > > --
> >
> > This patch seems to have been dropped. I can reproduce the error using
> > the following:
> >
> > 1. Create an LVM logical volume on top of a cciss device (note that
> > the cciss driver does not support barriers)
> > 2. Create an ext3 file system on top of the logical volume
> > 3. Mount the file-system using -obarrier=1
> > 4. Copy some files onto the file-system
> > 5. Run sync (dm_flush is called)
> >
> > If I apply the patch (with some munging), the
> >
> > "end_request: I/O error, dev cciss/cXdY, sector 0"
> >
> > messages go away.
> >
> > This is not strictly a regression, given that the problem was introduced
> > in 2.6.31, but I think it should still be fixed for 2.6.32.
>
> It was resubmitted last Friday:
> http://lkml.org/lkml/2009/10/23/196
>
> And is queued in Jens' 'for-linus' branch (meaning it should get
> upstream in time for 2.6.32), see:
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commit;h=6cafb12dc85a5bdc722791cc5070968413264909

I sent out a pull request yesterday, but it isn't in yet. Any day now...

--
Jens Axboe