OpenSolaris

Printable Version Enter a New Search
Bug ID 6347493
Synopsis tar of 25K empty directory entries in ZFS takes 30+ seconds of system time on 2GHz amd64
State 10-Fix Delivered (Fix available in build)
Category:Subcategory kernel:zfs
Keywords onnv_triage
Responsible Engineer Matthew Ahrens
Reported Against snv_27
Duplicate Of
Introduced In
Commit to Fix snv_28
Fixed In snv_28
Release Fixed solaris_nevada(snv_28)
Related Bugs 6347448 , 6349502
Submit Date 8-November-2005
Last Update Date 3-December-2005
Description
In an empty ZFS directory:

bash-3.00$ ls
bash-3.00$ mkdir bench
bash-3.00$ cd bench
bash-3.00$ /bin/time mkdir `cat /usr/dict/words`

real        0.7
user        0.0
sys         0.7
bash-3.00$ /bin/time tar cf /tmp/bench.tar .

real       30.4
user        0.4
sys        29.9
bash-3.00$ truss -c tar cf /tmp/bench.tar .

syscall               seconds   calls  errors
_exit                    .000       1
write                    .040    1258
open                     .000       4       1
close                    .444   75436
unlink                   .000       1       1
chdir                   1.110   50289
brk                      .000       8
getpid                   .000       2
sysi86                   .000       1
execve                   .000       1
fcntl                    .254   50288
fstatat64                .449   25144
openat                   .381   50287
sigaction                .000       6
getcontext               .000       1
setustack                .000       1
mmap                     .000      15
munmap                   .000       4
xstat                    .000       4
getrlimit                .000       1
memcntl                  .000       3
sysconfig                .000       2
lwp_private              .000       1
llseek                   .389   75429
door_info                .000       2
door_call                .000       2
resolvepath              .000       5
getdents64             30.314   75430
stat64                   .674   25143
fstat64                  .303   50288
open64                   .186   25146
getcwd                   .000       2
                     --------  ------   ----
sys totals:            34.549  504205      2
usr time:                .954
elapsed:               52.490

getdents64 is clearly the problem.
Work Around
N/A
Comments
N/A