Re: vfat unlink latency 54.6ms for 128MB files

From: OGAWA Hirofumi
Date: Mon Jan 10 2005 - 13:48:06 EST


Sami Farin <7atbggg02@xxxxxxxxxxxxxx> writes:

> Just wondering, when I remove a 128MB file on vfat partition
> (usb-storage, memcard reader), it causes 54.6ms latency
> in rtc_latencytest... latency seems to increase linearly
> as the filesize grows. I calculated 1s would be reached with
> 2344MB file but I didn't bother trying that yet.
> Are there any possible fixes for fat fs so
> that it doesn't disable interrupts for that long a time?

The fatfs itself doesn't disable any interrupt. I guess the thing
depending on file size is the fat_free().

So, the following patch may change the behavior...
--
OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>

diff -up linux-2.6.10/fs/fat/cache.c.orig linux-2.6.10/fs/fat/cache.c
--- linux-2.6.10/fs/fat/cache.c.orig 2004-12-25 06:35:24.000000000 +0900
+++ linux-2.6.10/fs/fat/cache.c 2005-01-11 03:34:54.000000000 +0900
@@ -491,6 +491,8 @@ int fat_free(struct inode *inode, int sk
if (MSDOS_SB(sb)->free_clusters != -1)
MSDOS_SB(sb)->free_clusters++;
inode->i_blocks -= MSDOS_SB(sb)->cluster_size >> 9;
+
+ cond_resched();
} while (nr != FAT_ENT_EOF);
fat_clusters_flush(sb);
nr = 0;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/