Messages in this thread |  | | Date | Fri, 15 Feb 2002 16:48:09 +0000 | From | "Stephen C. Tweedie" <> | Subject | Re: fsync delays for a long time. |
| |
Hi,
On Thu, Feb 14, 2002 at 01:20:57PM -0800, Andrew Morton wrote:
> I'm surprised. ext2's fsync in 2.2 is in fact quite optimal: a single > pass across the block tree, in probable-LBA-order.
Except that it pages the entire indirect tree into memory, which is _really_ painful if you're just appending to the end of a 1GB file. See ext2_sync_file(): in 2.2 it uses the indirect tree to locate all possible buffer_heads which might need flushing, and then it does a buffer cache lookup for every block in the file. It's _way_ suboptimal for large files, just in terms of the CPU cost and memory cost of maintaining and walking the block tree.
2.4 doesn't need to search physically for dirty buffers, so is much much faster.
Cheers, Stephen - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |