Am 13.06.2010 16:25, schrieb Volker A. Brandt:
<shelob:/tmp/test,8496>  foreach f ( 128 256 512 1024 2048 4096 )

Do you test on tmpfs? Could you please re-run the tests on UFS or ZFS? I will revive my old SPARC machine and rerun the tests myself on SPARC. But I first have to patch it (first time I switched the machine on since October 2007).

When I truss the pax process I see the SEEK_HOLE|SEEK_DATA lseek():

llseek(4, 0, SEEK_DATA)                         = 1048576
llseek(4, 0, SEEK_HOLE)                         = 0
llseek(4, 0, SEEK_DATA)                         = 1048576
llseek(4, 1048576, SEEK_HOLE)                   = 1179648
llseek(4, 1179648, SEEK_DATA)                   = 2097152
llseek(4, 2097152, SEEK_HOLE)                   = 2228224
llseek(4, 2228224, SEEK_DATA)                   = 3145728
llseek(4, 3145728, SEEK_HOLE)                   = 3276800
llseek(4, 3276800, SEEK_DATA)                   = 4194304
[and so on]

But then, when it comes to write the output file, pax seems to forget the first holes:

llseek(4, 0x105E0000, SEEK_DATA)                = 0x106C0000
llseek(4, 0x106C0000, SEEK_HOLE)                = 0x106CA777
llseek(4, 0x106CA777, SEEK_DATA)                Err#6 ENXIO
llseek(4, 0, SEEK_SET)                          = 0
fpathconf(4, 21)                                = 512
llseek(4, 0x0A8C0000, SEEK_SET)                 = 0x0A8C0000
llseek(6, 0x0A8C0000, SEEK_SET)                 = 0x0A8C0000
fstat64(6, 0x08046FD0)                          = 0
brk(0x0809F9A0)                                 = 0
brk(0x080BF9A0)                                 = 0
read(4, "\0\0\0\0\0\0\0\0\0\0\0\0".., 131072)   = 131072
write(6, "\0\0\0\0\0\0\0\0\0\0\0\0".., 131072)  = 131072
llseek(4, 0x0A9E0000, SEEK_SET)                 = 0x0A9E0000
llseek(6, 0x0A9E0000, SEEK_SET)                 = 0x0A9E0000
fstat64(6, 0x08046FD0)                          = 0



Daniel
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org

Reply via email to