I noticed an option in the .config file in Sharp\'s 2.4.18 kernel source, \"CONFIG_FS_SYNC = y\". It appears to force synchronous file i/o regardless of if you mount a filesystem with \"-o async\". This option appears to be an addition by Sharp along with the #ifdefs that test for it in various source files in the ./fs kernel source directory.
So, as a test, I tried un-taring a few files on an SD card (which was mounted -o async), with the standard kernel, and with a kernel compiled with this flag turned off. The results are that with CONFIG_FS_SYNC turned on (and SD card mounted -o async), the operation took 230 seconds, and running a kernel with it turned off, the test took only 19 seconds (average of several tries), more than a 10:1 speed increase.
Also, I tied it with someone elses SD card that was having problems under ext2, (a Sandisk card), and all the problems appeared to go away.
Can anyone else who\'s into compiling their own kernels try this out, and report back the results?
For the record, I\'m running with my /home on the SD card, and also lately have been dual-booting OpenZaurus from the SD card, and turning this compilation flag off has made a world of difference in speed.
Thanks,
--derek