tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: zero-filed page on VOP_PUTPAGES
Since it works in -current. I tried backporting most changes done to PUFFS to
netbsd-5 but the bug is still there. Therefore I started over with stock
netbsd-5, PUFFS being patched just to dump setattr and getattr sizes.
Here is a strange trace that leads to a zeroed chunk of 787 bytes at offset 0:
reqid: 12632, opclass 2, optype: PUFFS_VN_CREATE, cookie: 0xbb90f200,
aux: 0xbb91f02c, auxlen: 1284, pid: 8487, lwpid: 1
since previous call: 0.003462
RV reqid: 12632, result: 0
new node 0xbb90f3e0
reqid: 12633, opclass 2, optype: PUFFS_VN_OPEN, cookie: 0xbb90f3e0,
aux: 0xbb91e02c, auxlen: 132, pid: 8487, lwpid: 1
mode: 0x202
since previous call: 0.006000
RV reqid: 12633, result: 0
reqid: 12634, opclass 2, optype: PUFFS_VN_GETATTR, cookie: 0xbb90f3e0,
aux: 0xbb91f02c, auxlen: 240, pid: 11158, lwpid: 1
since previous call: 0.003070
RV reqid: 12634, result: 0
size: 0/0x0
reqid: 12635, opclass 2, optype: PUFFS_VN_GETATTR, cookie: 0xbb90f3e0,
aux: 0xbb91e02c, auxlen: 240, pid: 14973, lwpid: 1
since previous call: 0.058382
RV reqid: 12635, result: 0
size: 0/0x0
reqid: 12636, opclass 2, optype: PUFFS_VN_SETATTR, cookie: 0xbb90f3e0,
aux: 0xbb91f02c, auxlen: 240, pid: 0, lwpid: 27
size: 787/0x313
since previous call: 0.103641
Right, it sets the size to 787 but nothing has been written. It seems this was
triggered by a sync, as seen below.
reqid: 12637, opclass 2, optype: PUFFS_VN_GETATTR, cookie: 0xbb90f3e0,
aux: 0xbb92002c, auxlen: 240, pid: 12780, lwpid: 1
since previous call: 0.004147
RV reqid: 12637, result: 0
size: 0/0x0
RV reqid: 12636, result: 0
reqid: 12638, opclass 2, optype: PUFFS_VN_FSYNC, cookie: 0xbb90f3e0,
aux: 0xbb92102c, auxlen: 148, pid: 0, lwpid: 27
since previous call: 0.008753
RV reqid: 12638, result: 0
reqid: 12639, opclass 1, optype: PUFFS_VFS_SYNC, cookie: 0x0,
aux: 0xbb91e02c, auxlen: 132, pid: 0, lwpid: 27
since previous call: 0.000084
RV reqid: 12639, result: 0
reqid: 12640, opclass 2, optype: PUFFS_VN_READ, cookie: 0xbb90f3e0,
aux: 0xbb92002c, auxlen: 931, pid: 12780, lwpid: 1
offset: 0, resid 787, ioflag 0x0
since previous call: 0.000014
RV reqid: 12640, result: 0
resid after op: 0
There the data that was never written at offset 787 has been read. It cannot
contain anything else than zeros. I guess this is how the zeroed chunk comes
along.
--
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index