Here is a revised version of dirent scan patch, mentioned at following E-mail. This patch addresses performance damages on "ls | xargs xxx" and reverse order scan which are reported to the previous patch. With this patch, fat_search_long() and fat_scan() use hint value as start of scan. For each directory holds multiple hint value entries. The entry would be selected by hash value based on scan target name and PID. Hint value would be calculated based on the entry previously found entry, so that the hint can cover backward neighborhood. This patch is for 2.6.12, because I tested it at the last weekend... Machida, Hiroyuki wrote: > > As I said in "[RFC] FAT dirent scan with hint" > <43024977.7020101@sm.sony.co.jp>, we realized that FAT/VFAT has > poor performance with scanning directory entries. > > Per discussions with Ogawa-san, VFAT maintainer, I took profiling data > to seek better solution. Here are results attached. > > In short, I would say we need to reduce following factors. > a) number of iterations inside fat_search_long() > b) number of callings to uni16_to_x8() > c) number of callings to fat__get_entry(), for short name scan. > > In another E-mail, I'll send revised version patch which use hint > values to scan dirent. That patch would reduce number of iterations > inside fat_search_long() and fat_scan(). Those contributes reductions > above a)-c) factors. > : snip : -- Hiroyuki Machida machida@sm.sony.co.jp SSW Dept. HENC, Sony Corp.