Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Nov 2007 11:27:52 -0800
From:      Alfred Perlstein <alfred@freebsd.org>
To:        Dominic Fandrey <LoN_Kamikaze@gmx.de>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: msdosfs performance unbearable
Message-ID:  <20071128192752.GB71382@elvis.mu.org>
In-Reply-To: <474D2EF3.60104@gmx.de>
References:  <474BD99C.7070002@gmx.de> <20071128015624.GP71382@elvis.mu.org> <474D2EF3.60104@gmx.de>

next in thread | previous in thread | raw e-mail | index | archive | help
* Dominic Fandrey <LoN_Kamikaze@gmx.de> [071128 01:04] wrote:
> Alfred Perlstein wrote:
> > * Dominic Fandrey <LoN_Kamikaze@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 s=
loppy
> >> 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.
> >=20
> > Which version of FreeBSD?  can you get more information about the=20
> > FAT system?
>=20
> 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@homeKamikaze.norad:/usr/obj/TPR40-7/i386/usr/src/sys/TPR40-7  i386
>=20
> Partition information:
> /dev/ad0s3 on /mnt/msdos/software (msdosfs, local)
> /dev/ad0s4 on /mnt/msdos/vault (msdosfs, local)
>=20
> Actually I don't know any way of aquiring (<=3D how is this spelled?) use=
ful
> 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

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

--=20
- Alfred Perlstein



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071128192752.GB71382>