* [PATCH] block: silently error unsupported empty barriers too
@ 2009-08-06 11:14 Mark McLoughlin
2009-08-06 11:45 ` [dm-devel] " Alasdair G Kergon
0 siblings, 1 reply; 7+ messages in thread
From: Mark McLoughlin @ 2009-08-06 11:14 UTC (permalink / raw)
To: Jens Axboe
Cc: linux-kernel, virtualization, dm-devel, Rusty Russell,
Mikulas Patocka, Alasdair Kergon, Neil Brown
With 2.6.31-rc5 in a KVM guest using dm and virtio_blk, we see the
following errors:
end_request: I/O error, dev vda, sector 0
end_request: I/O error, dev vda, sector 0
The errors go away if dm stops submitting empty barriers, by reverting:
commit 52b1fd5a27c625c78373e024bf570af3c9d44a79
Author: Mikulas Patocka <mpatocka@redhat.com>
dm: send empty barriers to targets in dm_flush
We should error all barriers, even empty barriers, on devices like
virtio_blk which don't support them.
See also:
https://bugzilla.redhat.com/514901
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Mikulas Patocka <mpatocka@redhat.com>
Cc: Alasdair G Kergon <agk@redhat.com>
Cc: Neil Brown <neilb@suse.de>
---
block/blk-core.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/block/blk-core.c b/block/blk-core.c
index e3299a7..35ad2bb 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1163,8 +1163,7 @@ static int __make_request(struct request_queue *q, struct bio *bio)
const int unplug = bio_unplug(bio);
int rw_flags;
- if (bio_barrier(bio) && bio_has_data(bio) &&
- (q->next_ordered == QUEUE_ORDERED_NONE)) {
+ if (bio_barrier(bio) && (q->next_ordered == QUEUE_ORDERED_NONE)) {
bio_endio(bio, -EOPNOTSUPP);
return 0;
}
--
1.6.4
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [dm-devel] [PATCH] block: silently error unsupported empty barriers too
2009-08-06 11:14 [PATCH] block: silently error unsupported empty barriers too Mark McLoughlin
@ 2009-08-06 11:45 ` Alasdair G Kergon
2009-08-06 12:22 ` Christoph Hellwig
2009-08-07 1:50 ` Mikulas Patocka
0 siblings, 2 replies; 7+ messages in thread
From: Alasdair G Kergon @ 2009-08-06 11:45 UTC (permalink / raw)
To: Mark McLoughlin
Cc: device-mapper development, Jens Axboe, Rusty Russell,
linux-kernel, virtualization, Mikulas Patocka
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dm-devel] [PATCH] block: silently error unsupported empty barriers too
2009-08-06 11:45 ` [dm-devel] " Alasdair G Kergon
@ 2009-08-06 12:22 ` Christoph Hellwig
2009-08-07 1:50 ` Mikulas Patocka
1 sibling, 0 replies; 7+ messages in thread
From: Christoph Hellwig @ 2009-08-06 12:22 UTC (permalink / raw)
To: Mark McLoughlin, device-mapper development, Jens Axboe,
Rusty Russell, linux-kernel, virtualization, Mikulas Patocka
On Thu, Aug 06, 2009 at 12:45:50PM +0100, 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?
virtio_blk on kvm does not support any barriers at all, similar to many
other drivers out there. If the queue flags say we don't support
barriers higher layers should not submit any barrier requests.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dm-devel] [PATCH] block: silently error unsupported empty barriers too
2009-08-06 11:45 ` [dm-devel] " Alasdair G Kergon
2009-08-06 12:22 ` Christoph Hellwig
@ 2009-08-07 1:50 ` Mikulas Patocka
2009-10-28 20:19 ` Andrew Patterson
1 sibling, 1 reply; 7+ messages in thread
From: Mikulas Patocka @ 2009-08-07 1:50 UTC (permalink / raw)
To: Alasdair G Kergon
Cc: Mark McLoughlin, device-mapper development, Jens Axboe,
Rusty Russell, linux-kernel, virtualization
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dm-devel] [PATCH] block: silently error unsupported empty barriers too
2009-08-07 1:50 ` Mikulas Patocka
@ 2009-10-28 20:19 ` Andrew Patterson
2009-10-28 21:03 ` Mike Snitzer
0 siblings, 1 reply; 7+ messages in thread
From: Andrew Patterson @ 2009-10-28 20:19 UTC (permalink / raw)
To: Mikulas Patocka
Cc: Alasdair G Kergon, Mark McLoughlin, device-mapper development,
Jens Axboe, Rusty Russell, linux-kernel, virtualization,
". troy.heber"
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
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: block: silently error unsupported empty barriers too
2009-10-28 20:19 ` Andrew Patterson
@ 2009-10-28 21:03 ` Mike Snitzer
2009-10-29 7:45 ` Jens Axboe
0 siblings, 1 reply; 7+ messages in thread
From: Mike Snitzer @ 2009-10-28 21:03 UTC (permalink / raw)
To: Andrew Patterson
Cc: Mikulas Patocka, device-mapper development, Mark McLoughlin,
". troy.heber", Rusty Russell, linux-kernel,
virtualization, Jens Axboe, Alasdair G Kergon
On Wed, Oct 28 2009 at 4:19pm -0400,
Andrew Patterson <andrew.patterson@hp.com> 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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: block: silently error unsupported empty barriers too
2009-10-28 21:03 ` Mike Snitzer
@ 2009-10-29 7:45 ` Jens Axboe
0 siblings, 0 replies; 7+ messages in thread
From: Jens Axboe @ 2009-10-29 7:45 UTC (permalink / raw)
To: Mike Snitzer
Cc: Andrew Patterson, Mikulas Patocka, device-mapper development,
Mark McLoughlin, ". troy.heber", Rusty Russell,
linux-kernel, virtualization, Alasdair G Kergon
On Wed, Oct 28 2009, Mike Snitzer wrote:
> On Wed, Oct 28 2009 at 4:19pm -0400,
> Andrew Patterson <andrew.patterson@hp.com> 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
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-10-29 7:45 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-06 11:14 [PATCH] block: silently error unsupported empty barriers too Mark McLoughlin
2009-08-06 11:45 ` [dm-devel] " Alasdair G Kergon
2009-08-06 12:22 ` Christoph Hellwig
2009-08-07 1:50 ` Mikulas Patocka
2009-10-28 20:19 ` Andrew Patterson
2009-10-28 21:03 ` Mike Snitzer
2009-10-29 7:45 ` Jens Axboe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox