[dm-devel] [RFC] disk doesn't spin down with thin pool + dmeventd

Alan Jenkins alan.christopher.jenkins at gmail.com
Thu Jan 7 19:31:20 UTC 2016


Hi

I tried using Docker on my Fedora NAS box.  It created a thin pool LV, 
which caused hard drive activity every ~10 seconds.

dmeventd queries the thin pool every 10 seconds, and it causes a 
transaction commit in order to make sure the statistics are up to date. 
But transactions are already supposed to be committed after 1 second.  
(See Documentation/device-mapper/thin-provisioning.txt, "Updating 
on-disk metadata").

It seems like a simple case of "don't do that".  The kernel already lets 
us avoid the commit.  How about it (patch below)?  If it seems 
reasonable, I can whip up a commit message for it.

Thanks
Alan

diff --git a/daemons/dmeventd/dmeventd.c b/daemons/dmeventd/dmeventd.c
index c093d91..5948f15 100644
--- a/daemons/dmeventd/dmeventd.c
+++ b/daemons/dmeventd/dmeventd.c
@@ -412,6 +412,15 @@ static struct thread_status *_alloc_thread_status(const struct message_data *dat
  	if (!(thread->device.name = dm_strdup(data->device_uuid)))
  		goto_out;
  
+	/*
+	 * Avoid repeatedly forcing a flush.
+	 * Allow the disks to sleep, and accept "out-of-date" statistics.
+	 * E.g. affects thin pools.  Commits will occur every second already,
+	 * if the pool state is changing.
+	 */
+	if (!dm_task_no_flush(thread->wait_task))
+		goto_out;
+
  	/* runs ioctl and may register lvm2 pluging */
  	thread->processing = 1;
  	thread->status = DM_THREAD_REGISTERING;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: dmevent-noflush.patch
Type: text/x-patch
Size: 749 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20160107/cec19c6b/attachment.bin>


More information about the dm-devel mailing list