Change dm-mpath.c:do_work() return a wakeup hint.
--- diff/drivers/md/dm-mpath.c	2004-01-27 16:01:54.000000000 +0000
+++ source/drivers/md/dm-mpath.c	2004-01-27 16:00:15.000000000 +0000
@@ -298,6 +298,7 @@
 {
 	unsigned long flags;
 	struct multipath *m;
+	unsigned interval = 0;
 
 	spin_lock(&_mpath_lock);
 	list_for_each_entry (m, &_mpaths, list) {
@@ -311,11 +312,14 @@
 			m->trigger_event = 0;
 		}
 		spin_unlock_irqrestore(&m->path_lock, flags);
+
+		interval = min_not_zero(interval, m->test_interval);
 	}
 	spin_unlock(&_mpath_lock);
 
 	blk_run_queues();
-	return (jiffy_t) 0;
+
+	return ((jiffy_t) interval) * HZ;
 }
 
 /*-----------------------------------------------------------------
