Messages in this thread | | | Date | Tue, 11 Mar 2003 16:57:22 -0500 (EST) | From | Bill Davidsen <> | Subject | Re: [Bug 417] New: htree much slower than regular ext3 |
| |
On 7 Mar 2003, Alex Tomas wrote:
> The problem is that getdents(2) returns inodes out of order and > du causes many head seeks. I tried to solve the problem by patch > I included in. The idea of the patch is pretty simple: just try > to sort dentries by inode number in readdir(). It works because > inodes sits at fixed places in ext2/ext3. Please, look at results > I just got:
Any change in the order of dentries returned is likely to run into problem when seeking in a directory. Given that readdir() is usully followed by either zero or many stat()s, perhaps when the first stat() comes along you could pre-read the inodes in optimal order and cace them. However you tuned the size of your sort should work exactly as well as the size of the pre-read.
This seems consistent with readahead and AS disk io.
-- bill davidsen <davidsen@tmr.com> CTO, TMR Associates, Inc Doing interesting things with little computers since 1979.
- 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/
| |