[Bug 543617] Re: very slow filesystem I/O

Theodore Ts'o tytso at mit.edu
Wed Mar 31 22:15:39 UTC 2010


I can confirm this using a bleeding edge kernel 2.6.34-rc2+, and when
using a tmpfs mounted for /tmp, it takes about two minutes on a T400
laptop.

Using blktrace, it looks like we're doing a whole ton of journal writes
after the umount.

Here's the blktrace summary of the reproducer:

Total (loop0):
 Reads Queued:           0,        0KiB	 Writes Queued:       74944,   299776KiB
 Read Dispatches:        0,        0KiB	 Write Dispatches:        0,        0KiB
 Reads Requeued:         0		 Writes Requeued:         0
 Reads Completed:        0,        0KiB	 Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB	 Write Merges:            0,        0KiB
 IO unplugs:         66567        	 Timer unplugs:           0

And here's the blktrace  of the reproducer adding a "sync" before the
"time umount /mnt/test":

Total (loop1):
 Reads Queued:           2,        8KiB	 Writes Queued:        9438,    37752KiB
 Read Dispatches:        0,        0KiB	 Write Dispatches:        0,        0KiB
 Reads Requeued:         0		 Writes Requeued:         0
 Reads Completed:        0,        0KiB	 Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB	 Write Merges:            0,        0KiB
 IO unplugs:            55        	 Timer unplugs:           0

Analyzing the blktrace logs more carefully, it looks like the umount
path is doing a synchronous inode sync for each inode, which means that
we're executing a journal transaction and a barrier between every single
inode update.   Doh!

I haven't analyzed the kernel code yet (probably won't have time
tonight), but that does seem to be what's going on.  Hopefully the
kernel fix should be simple....

-- 
very slow filesystem I/O
https://bugs.launchpad.net/bugs/543617
You received this bug notification because you are a member of Kernel
Bugs, which is subscribed to linux in ubuntu.




More information about the kernel-bugs mailing list