All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] optimize one of the cache flushes
@ 2010-07-07 22:22 Mikulas Patocka
  2010-07-07 23:30 ` Alasdair G Kergon
  2010-07-08 13:52 ` Mike Snitzer
  0 siblings, 2 replies; 5+ messages in thread
From: Mikulas Patocka @ 2010-07-07 22:22 UTC (permalink / raw)
  To: Mike Snitzer, Alasdair G Kergon; +Cc: dm-devel

Hi

This patch removes the second cache flush if discard isn't supported. 
The first flush is hard to bypass, so it's not worth doing it.

Mikulas

---

Don't do the second flush if the request isn't supported.

If the request fails with -EOPNOTSUPP, don't perform the second flush.
This can happen with discard+barrier requests. If the device doesn't support
discard, there would be two useless SYNCHRONIZE CACHE commands.

The first dm_flush cannot be so easily optimized out, so we leave it there.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>

---
 drivers/md/dm.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Index: linux-2.6.35-rc3-fast/drivers/md/dm.c
===================================================================
--- linux-2.6.35-rc3-fast.orig/drivers/md/dm.c	2010-07-08 00:11:05.000000000 +0200
+++ linux-2.6.35-rc3-fast/drivers/md/dm.c	2010-07-08 00:12:02.000000000 +0200
@@ -2365,7 +2365,12 @@ static void process_barrier(struct mappe
 
 	if (!bio_empty_barrier(bio)) {
 		__split_and_process_bio(md, bio);
-		dm_flush(md);
+		/*
+		 * If the request isn't supported, don't waste time with
+		 * the second flush.
+		 */
+		if (md->barrier_error != -EOPNOTSUPP)
+			dm_flush(md);
 	}
 
 	if (md->barrier_error != DM_ENDIO_REQUEUE)

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

end of thread, other threads:[~2010-07-08 16:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-07 22:22 [PATCH] optimize one of the cache flushes Mikulas Patocka
2010-07-07 23:30 ` Alasdair G Kergon
2010-07-08 13:52 ` Mike Snitzer
2010-07-08 15:52   ` [PATCH] dm barrier: A better test for -EOPNOTSUPP Mikulas Patocka
2010-07-08 16:05     ` Mike Snitzer

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.