rm -fr slowness
Samuel Thibault <[email protected]> Sat, 27 Mar 2010 00:58:52 +0100
| Newsgroups | gmane.os.hurd.devel.readers |
|---|---|
| Message-ID | <20100326235852.GQ16736__26333.9285775603$1269812159$gmane$org@const.famille.thibault.fr> |
Hello, I have always been surprised by the slowness of a mere rm -fr. Looking a bit inside, I see that diskfs_dirremove_hard() calls diskfs_file_update (dp, 1) (as does diskfs_truncate, diskfs_direnter_hard, and diskfs_dirrewrite_hard). diskfs_file_update then calls pager_sync on the pager, which thus writes back the whole ext2fs pager! This sounds a bit excessive to me, an unlink could just record it in memory and actually sync later. Also, the wait flag is set, so we really waits for all I/Os, which basically means strictly serializing file removals: remove one file, wait for the disk to have done it (~10ms), remove the next one, etc. I guess this is for safety reasons against crashes, but isn't the sync option there for such kind of concern? Samuel