msdosfs performance unbearable

Alfred Perlstein alfred at freebsd.org
Wed Nov 28 11:27:52 PST 2007


* Dominic Fandrey <LoN_Kamikaze at gmx.de> [071128 01:04] wrote:
> Alfred Perlstein wrote:
> > * Dominic Fandrey <LoN_Kamikaze at gmx.de> [071127 00:47] wrote:
> >> ufs:
> >> $ time -h tar -xf php_manual_en.tar.gz
> >> 	3.31s real		0.43s user		0.51s sys
> >>
> >>
> >> msdosfs:
> >> I stopped that after 45 minutes.
> >>
> >> Also the system becomes barely responsive. The mouse moves extremely sloppy
> >> and a key-press often causes 2 characters to be printed. Mouse-clicks are
> >> either lost or take more than 10 seconds to be recognized.
> > 
> > Which version of FreeBSD?  can you get more information about the 
> > FAT system?
> 
> Csupped and build yesterday:
> $ uname -a
> FreeBSD mobileKamikaze.norad 7.0-BETA3 FreeBSD 7.0-BETA3 #0: Tue Nov 27
> 20:53:17 CET 2007
> root at homeKamikaze.norad:/usr/obj/TPR40-7/i386/usr/src/sys/TPR40-7  i386
> 
> Partition information:
> /dev/ad0s3 on /mnt/msdos/software (msdosfs, local)
> /dev/ad0s4 on /mnt/msdos/vault (msdosfs, local)
> 
> Actually I don't know any way of aquiring (<= how is this spelled?) useful
> data about Fat32 partitions in FreeBSD.

Ok that's fine, I was wondering is the MSDOS filesystem over USB
or something?  Is the UFS and MSDOSFS on the same media?

-Alfred

> 
> Anyway:
> mobileKamikaze$ strace -o ~/msdos.trace tar -xf php_manual_en.tar.gz
> ^C
> 
> And here is the beginning of the trace:
> execve(0xbfbfe608, [0xbfbfeaf4], [/* 0 vars */]) = 0
> __sysctl([...], 0xbfbfe86c, 0xbfbfe870, NULL, 0) = 0
> syscall_477(0, 0x110, 0x3, 0x1000, 0xffffffff, 0, 0) = 0x28080000
> munmap(0x28080000, 272)                 = 0
> __sysctl([...], 0x2807c87c, 0xbfbfe8d0, NULL, 0) = 0
> syscall_477(0, 0x8000, 0x3, 0x1002, 0xffffffff, 0, 0) = 0x28080000
> issetugid(0x2807598c)                   = 0
> open("/etc/libmap.conf", O_RDONLY)      = 3
> fstat(3, {st_mode=S_IFDIR|0543, st_size=18446253021508551011, ...}) = 0
> read(3, "", 4096)                       = 0
> close(3)                                = 0
> open("/var/run/ld-elf.so.hints", O_RDONLY) = 3
> read(3, "f/rtld.c:3297\n\0\0%s: Unexpected  "..., 128) = 128
> syscall_478(0x3, 0x80, 0, 0)            = 0x80
> read(3, "/lib:/usr/lib:/usr/lib/compat:/u"..., 274) = 274
> close(3)                                = 0
> access("/lib/libarchive.so.4", F_OK)    = -1 ENOENT (No such file or directory)
> access("/usr/lib/libarchive.so.4", F_OK) = 0
> open("/usr/lib/libarchive.so.4", O_RDONLY) = 3
> fstat(3, {st_mode=0, st_size=0, ...})   = 0
> read(3, "\177ELF\1\1\1\t\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0pP\0\000"..., 4096) = 4096
> syscall_477(0, 0x25000, 0x5, 0x20002, 0x3, 0, 0) = 0x28088000
> mprotect(0x280aa000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
> mprotect(0x280aa000, 4096, PROT_READ|PROT_EXEC) = 0
> syscall_477(0x280ab000, 0x1000, 0x3, 0x12, 0x3, 0x22000, 0) = 0x280ab000
> syscall_477(0x280ac000, 0x1000, 0x3, 0x1012, 0xffffffff, 0, 0) = 0x280ac000
> close(3)                                = 0
> access("/lib/libbz2.so.3", F_OK)        = -1 ENOENT (No such file or directory)
> access("/usr/lib/libbz2.so.3", F_OK)    = 0
> open("/usr/lib/libbz2.so.3", O_RDONLY)  = 3
> fstat(3, {st_mode=0, st_size=0, ...})   = 0
> read(3, "\177ELF\1\1\1\t\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\21\0\000"..., 4096)
> = 4096
> syscall_477(0, 0x11000, 0x5, 0x20002, 0x3, 0, 0) = 0x280ad000
> mprotect(0x280bc000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
> mprotect(0x280bc000, 4096, PROT_READ|PROT_EXEC) = 0
> syscall_477(0x280bd000, 0x1000, 0x3, 0x12, 0x3, 0xf000, 0) = 0x280bd000
> close(3)                                = 0
> access("/lib/libz.so.4", F_OK)          = 0
> open("/lib/libz.so.4", O_RDONLY)        = 3
> fstat(3, {st_mode=0, st_size=0, ...})   = 0
> read(3, "\177ELF\1\1\1\t\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\27"..., 4096) = 4096
> syscall_477(0, 0x12000, 0x5, 0x20002, 0x3, 0, 0) = 0x280be000
> mprotect(0x280ce000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
> mprotect(0x280ce000, 4096, PROT_READ|PROT_EXEC) = 0
> syscall_477(0x280cf000, 0x1000, 0x3, 0x12, 0x3, 0x11000, 0) = 0x280cf000
> close(3)                                = 0
> access("/lib/libc.so.7", F_OK)          = 0
> open("/lib/libc.so.7", O_RDONLY)        = 3
> fstat(3, {st_mode=0, st_size=0, ...})   = 0
> read(3, "\177ELF\1\1\1\t\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\327\1"..., 4096) = 4096
> syscall_477(0, 0xfd000, 0x5, 0x20002, 0x3, 0, 0) = 0x280d0000
> mprotect(0x281b2000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
> mprotect(0x281b2000, 4096, PROT_READ|PROT_EXEC) = 0
> syscall_477(0x281b3000, 0x6000, 0x3, 0x12, 0x3, 0xe2000, 0) = 0x281b3000
> syscall_477(0x281b9000, 0x14000, 0x3, 0x1012, 0xffffffff, 0, 0) = 0x281b9000
> close(3)                                = 0
> syscall_477(0, 0x9000, 0x3, 0x1002, 0xffffffff, 0, 0) = 0x281cd000
> sysarch(0xa, 0xbfbfe930)                = 0
> syscall_477(0, 0x4b0, 0x3, 0x1000, 0xffffffff, 0, 0) = 0x281d6000
> munmap(0x281d6000, 1200)                = 0
> syscall_477(0, 0xa18, 0x3, 0x1000, 0xffffffff, 0, 0) = 0x281d6000
> munmap(0x281d6000, 2584)                = 0
> syscall_477(0, 0x2b8, 0x3, 0x1000, 0xffffffff, 0, 0) = 0x281d6000
> munmap(0x281d6000, 696)                 = 0
> syscall_477(0, 0x408, 0x3, 0x1000, 0xffffffff, 0, 0) = 0x281d6000
> munmap(0x281d6000, 1032)                = 0
> syscall_477(0, 0x51c8, 0x3, 0x1000, 0xffffffff, 0, 0) = 0x281d6000
> munmap(0x281d6000, 20936)               = 0
> __sysctl([1025732.0], 2,
> "i7\350!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., [2097204], NULL,
> 0) = 0
> sigprocmask(SIG_BLOCK, ~[ILL TRAP ABRT EMT FPE BUS SEGV SYS], []) = 0
> sigprocmask(SIG_SETMASK, [], NULL)      = 0
> open("", O_RDONLY)                      = 3
> fstat(3, {st_mode=0, st_size=130023424, ...}) = 0
> __sysctl([127795200.78970880], 2,
> "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., [19136512], NULL,
> 0) = 0
> __sysctl([sysctl.0], 2, "", [0], NULL, 0) = 0
> __sysctl([4096.0], 2, "", [0], NULL, 0) = 0
> readlink("/etc/malloc.conf", 0xbfbfdf7b, 1024) = -1 ENOENT (No such file or
> directory)
> issetugid(0x281aa366)                   = 0
> break(0x8100000)                        = 0
> __sysctl([181832331.185240637], 2, "ena\n\0\0\0\0: (malloc) Unsupported c"...,
> [1918967911], NULL, 0) = 0
> syscall_477(0, 0x200000, 0x3, 0x1002, 0xffffffff, 0, 0) = 0x281d6000
> munmap(0x281d6000, 172032)              = 0
> munmap(0x28300000, 876544)              = 0
> read(3, "1.2\n\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0"..., 4096) = 4096
> read(3, "\0\277\0\0\0\0\0\0\0\300\0\0\0\0\0\0\0\301\0\0\0\0\0\0"..., 4096) = 546
> close(3)                                = 0
> open("", O_RDONLY)                      = 3
> fstat(3, {st_mode=0, st_size=24206847997116416, ...}) = 0
> fstat(3, {st_mode=0133, st_size=95, ...}) = 0
> syscall_478(0x3, 0, 0, 0x1)             = 0
> syscall_478(0x3, 0, 0, 0)               = 0
> read(3, "RuneMag1UTF-8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
> read(3, "@\4\10\0\0\0\n\274\0\0\n\305@\4\10\0\0\0\n\307\0\0\n\311"..., 4096) =
> 4096
> read(3, "\0\0\1J\0\0\1J\0\0\1K\0\0\1L\0\0\1L\0\0\1M\0\0\1N\0\0\1"..., 4096) = 4096
> read(3, "\0\0\37\17\0\0\37\0\0\0\37\30\0\0\37\35\0\0\37\20\0\0\37"..., 4096) =
> 4096
> read(3, "\0\0\36T\0\0\36W\0\0\36W\0\0\36V\0\0\36Y\0\0\36Y\0\0\36"..., 4096) = 4096
> read(3, "@\4\211\0@\4\31\0@\4\211\0@\4\31\0@\4\211\0@\4\31\0@\4"..., 4096) = 4096
> read(3, "@$\10\0@$\10\0@$\10\0@$\10\0@$\10\0@$\10\0@$\10\0@$\10"..., 4096) = 4096
> read(3, "@\4(\0@\4(\0@\4(\0@\4(\0@\4(\0@\4(\0@\4(\0@\4(\0"..., 4096) = 4096
> read(3, "\200$\10\0\200$\10\0\200$\10\0\200$\10\0\200$\10\0\200"..., 4096) = 4096
> read(3, "@\4\0\0@\4\0\0@\4\0\0@\4\0\0@\4\0\0@\4\0\0@\4\0\0@\4\0"..., 4096) = 4096
> read(3, "@\4\0\0@\4\0\0@\4\0\0@\4\0\0@\4\0\0@\4\0\0@\4\0\0@\4\0"..., 4096) = 4096
> read(3, "@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10"..., 4096) = 4096
> read(3, "@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10"..., 4096) = 4096
> read(3, "@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10"..., 4096) = 4096
> read(3, "@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10"..., 4096) = 4096
> read(3, "@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10"..., 4096) = 4096
> read(3, "@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10"..., 4096) = 4096
> read(3, "@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10\0@\4\10"..., 4096) = 4096
> read(3, "@\4\211\0@\4\211\0@\4\211\0@\4\211\0@\4\211\0@\4\211\0"..., 4096) = 2404
> close(3)                                = 0
> open("@???", O_RDONLY)                   = 3
> fstat(3, {st_mode=S_ISGID|0100, st_size=38566744742757440, ...}) = 0
> read(3, "GBP \n\302\243\n.\n,\n3;3\n\n-\n2\n2\n1\n0\n1\n0\n1"..., 35) = 35
> close(3)                                = 0
> open("", O_RDONLY)                      = 3
> fstat(3, {st_mode=S_ISGID|0100, st_size=38566744742757440, ...}) = 0
> read(3, ".\n,\n3;3\n", 8)               = 8
> close(3)                                = 0
> open("", O_RDONLY)                      = 3
> fstat(3, {st_mode=0, st_size=0, ...})   = 0
> read(3, "Jan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug\n"..., 377) = 377
> close(3)                                = 0
> open("Sep", O_RDONLY)                   = 3
> fstat(3, {st_mode=030, st_size=150323855394, ...}) = 0
> read(3, "^[yY].*\n^[nN].*\n", 16)       = 16
> close(3)                                = 0
> geteuid(0x39)                           = 1001
> open("php_manual_en.tar.gz", O_RDONLY)  = 3
> fstat(3, {st_mode=S_ISGID|0100, st_size=38566744742757440, ...}) = 0
> read(3, "\37\213\10\0\322\360IG\0\3\354\375\5\\]K\226(\16\37\202"..., 10240) =
> 10240
> read(3, "\235\r\242\5\302\310\344\17\5\7a\261\35\374\227\236\335"..., 10240) =
> 10240
> read(3, "\327\263h\332`\223`\335\370\274\330\323q\233p\'\234\215"..., 10240) =
> 10240
> read(3, "\215*S\231\245\17hY\340\310-2h\317\2704\3312#\244\377\314"..., 10240)
> = 10240
> geteuid(0x28263140)                     = 1001
> umask(0)                                = 022
> lstat("html", 0xbfbfe7ec)               = -1 ENOENT (No such file or directory)
> mkdir("html", 0755)                     = 0
> umask(022)                              = 0
> umask(0)                                = 022
> lstat("html", {st_mode=0, st_size=0, ...}) = 0
> mkdir("html/figures", 0755)             = 0
> umask(022)                              = 0
> umask(0)                                = 022
> lstat("html/figures", {st_mode=0, st_size=0, ...}) = 0
> open("html/figures/image.imagearc.png", O_WRONLY|O_CREAT|O_EXCL, 0644) = 4
> umask(022)                              = 0
> write(4, "\211PNG\r\n\32\n\0\0\0\rIHDR\0\0\0\310\0\0\0\310\10\2\0"..., 1696) =
> 1696
> futimes(0x4, 0xbfbfe834)                = 0
> close(4)                                = 0
> umask(0)                                = 022
> lstat("html/figures/image.imagechar.png", 0xbfbfe7ec) = -1 ENOENT (No such
> file or directory)
> open("html/figures/image.imagechar.png", O_WRONLY|O_CREAT|O_EXCL, 0644) = 4
> umask(022)                              = 0
> write(4, "\211PNG\r\n\32\n\0\0\0\rIHDR\0\0\0d\0\0\0d\1\3\0\0\0J,"..., 107) = 107
> futimes(0x4, 0xbfbfe834)                = 0
> close(4)                                = 0
> umask(0)                                = 022
> lstat("html/figures/image.imagecharup.png", 0xbfbfe7ec) = -1 ENOENT (No such
> file or directory)
> open("html/figures/image.imagecharup.png", O_WRONLY|O_CREAT|O_EXCL, 0644) = 4
> umask(022)                              = 0
> write(4, "\211PNG\r\n\32\n\0\0\0\rIHDR\0\0\0d\0\0\0d\1\3\0\0\0J,"..., 108) = 108
> futimes(0x4, 0xbfbfe834)                = 0
> close(4)                                = 0
> umask(0)                                = 022
> lstat("html/figures/image.imagecolorallocatealpha.png", 0xbfbfe7ec) = -1
> ENOENT (No such file or directory)
> open("html/figures/image.imagecolorallocatealpha.png",
> O_WRONLY|O_CREAT|O_EXCL, 0644) = 4
> umask(022)                              = 0
> write(4, "\211PNG\r\n\32\n\0\0\0\rIHDR\0\0\1,\0\0\1,\10\2\0\0\0\366"..., 2859)
> = 2859
> futimes(0x4, 0xbfbfe834)                = 0
> close(4)                                = 0
> 
> ...
> 
> umask(0)                                = 022
> lstat("html/function.fbsql-blob-size.html", 0xbfbfe7ec) = -1 ENOENT (No such
> file or directory)
> open("html/function.fbsql-blob-size.html", O_WRONLY|O_CREAT|O_EXCL, 0644) = 4
> umask(022)                              = 0
> write(4, "<!DOCTYPE HTML PUBLIC \"-//W3C//D"..., 3072) = 3072
> write(4, "l\">fbsql_change_user</a></div>\n "..., 175) = 175
> futimes(0x4, 0xbfbfe834)                = 0
> close(4)                                = 0
> umask(0)                                = 022
> lstat("html/function.fbsql-change-user.html", 0xbfbfe7ec) = -1 ENOENT (No such
> file or directory)
> --- SIGINT (Interrupt: 2) ---
> --- SIGINT (Interrupt: 2) ---

-- 
- Alfred Perlstein


More information about the freebsd-stable mailing list