All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] dm-zoned: Avoid metadata flush writeback throttling
@ 2017-07-24  7:44 Damien Le Moal
  2017-07-24  8:03 ` Christoph Hellwig
  0 siblings, 1 reply; 9+ messages in thread
From: Damien Le Moal @ 2017-07-24  7:44 UTC (permalink / raw)
  To: dm-devel, Mike Snitzer, Alasdair Kergon; +Cc: Bart Van Assche, Mikulas Patocka

Avoid metadata flush to be blocked by the writeback throttling code in
wbt_wait(). Otherwise, we can end up with a deadlock under heavy write
load with all chunk works active. In such situation, a deadlock can
happen if the flush work is blocked by the throttling code while holding
the metadata lock: as the chunk works will wait for the metadata lock
too, no progress can be made.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
---
 drivers/md/dm-zoned-metadata.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/md/dm-zoned-metadata.c b/drivers/md/dm-zoned-metadata.c
index 884ff7c170a0..f694fb98b002 100644
--- a/drivers/md/dm-zoned-metadata.c
+++ b/drivers/md/dm-zoned-metadata.c
@@ -567,7 +567,8 @@ static void dmz_write_mblock(struct dmz_metadata *zmd, struct dmz_mblock *mblk,
 	bio->bi_bdev = zmd->dev->bdev;
 	bio->bi_private = mblk;
 	bio->bi_end_io = dmz_mblock_bio_end_io;
-	bio_set_op_attrs(bio, REQ_OP_WRITE, REQ_META | REQ_PRIO);
+	bio_set_op_attrs(bio, REQ_OP_WRITE,
+			 REQ_META | REQ_PRIO | REQ_SYNC | REQ_IDLE);
 	bio_add_page(bio, mblk->page, DMZ_BLOCK_SIZE, 0);
 	submit_bio(bio);
 }
-- 
2.13.3

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-09-13  0:38 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-24  7:44 [PATCH] dm-zoned: Avoid metadata flush writeback throttling Damien Le Moal
2017-07-24  8:03 ` Christoph Hellwig
2017-07-24  9:16   ` Damien Le Moal
2017-09-11 15:05     ` Mike Snitzer
2017-09-12  5:46       ` Damien Le Moal
2017-09-12  6:12       ` Mikulas Patocka
2017-09-12  8:01         ` Damien Le Moal
2017-09-12 10:32           ` Mikulas Patocka
2017-09-13  0:38             ` Damien Le Moal

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.