NVMe: Use round_jiffies_relative() for the periodic, once-per-second timer
authorArjan van de Ven <arjan@linux.intel.com>
Mon, 4 Feb 2013 22:44:33 +0000 (14:44 -0800)
committerMatthew Wilcox <matthew.r.wilcox@intel.com>
Tue, 16 Apr 2013 19:05:16 +0000 (15:05 -0400)
The nvme driver has a "once per second" event where the management kthread
wakes up the system and then reschedules itself for 1 second later.
For power efficiency reasons, I'd like this timer to happen together
with other wakeups in the system.

This patch makes the schedule_timeout() call in the kthread use
round_jiffies_relative(), causing the wakeup to at least align with other
"once per X seconds" events in the kernel.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Tested-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
drivers/block/nvme-core.c

index a89f7db..32fdfe9 100644 (file)
@@ -1309,7 +1309,7 @@ static int nvme_kthread(void *data)
                }
                spin_unlock(&dev_list_lock);
                set_current_state(TASK_INTERRUPTIBLE);
-               schedule_timeout(HZ);
+               schedule_timeout(round_jiffies_relative(HZ));
        }
        return 0;
 }