On Fri, 2008-08-15 at 16:37 -0400, Chris Mason wrote:I tried just the writeback_index patch and got only 4 fragmented files on ext4 after a compilebench run. Then I tried again and got 1200. Seems there is something timing dependent in here ;) By default compilebench uses 256k buffers for writing (see compilebench -b) and btrfs_file_write will lock down up to 512 pages at a time during a single write. This means that for most small files, compilebench will send the whole file down in one write() and btrfs_file_write will lock down pages for the entire write() call while working on it. So, even if pdflush tries to jump in and do the wrong thing, the pages will be locked by btrfs_file_write and pdflush will end up skipping them. With the generic file write routines, pages are locked one at a time, giving pdflush more windows to trigger delalloc while a write is still ongoing. -chris --
| Michal Piotrowski | Re: Linux 2.6.21-rc4 |
| Satyam Sharma | [PATCH 0/8] i386: bitops: Cleanup, sanitize, optimize |
| Greg Kroah-Hartman | [PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO |
| David Woodhouse | Re: [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| Alexey Dobriyan | Re: [GIT]: Networking |
| Natalie Protasevich | [BUG] New Kernel Bugs |
