Discussion:
Latest xfstest results
Steve French
2014-08-29 15:33:14 UTC
Permalink
Good progress on automated cifs.ko testing to Samba with Pavel's
changes to xfstest

Skipping test 285 (which I don't have enough disk space for in my
VMs). Following is the test results of current cifs-2.6.git for-next
with (cifs enabled) xfstests to Samba (posix extensions enabled by
default)

Ran: generic/001 generic/002 generic/005 generic/006 generic/007
generic/011 generic/013 generic/014 generic/020 generic/023
generic/024 generic/028 generic/070 generic/074 generic/075
generic/088 generic/089 generic/091 generic/126 generic/127
generic/131 generic/133 generic/184 generic/192 generic/215
generic/221 generic/236 generic/237 generic/245 generic/246
generic/247 generic/248 generic/249 generic/257 generic/258
generic/263 generic/286 generic/308 generic/309 generic/310
generic/313 generic/315
Not run: generic/003 generic/004 generic/008 generic/009 generic/010
generic/012 generic/015 generic/016 generic/017 generic/018
generic/019 generic/021 generic/022 generic/025 generic/026
generic/027 generic/053 generic/062 generic/068 generic/069
generic/076 generic/077 generic/079 generic/083 generic/093
generic/097 generic/099 generic/100 generic/105 generic/112
generic/113 generic/117 generic/120 generic/123 generic/124
generic/125 generic/128 generic/129 generic/130 generic/132
generic/135 generic/141 generic/169 generic/193 generic/198
generic/204 generic/207 generic/208 generic/209 generic/210
generic/211 generic/212 generic/213 generic/214 generic/219
generic/223 generic/224 generic/225 generic/226 generic/228
generic/230 generic/231 generic/232 generic/233 generic/234
generic/235 generic/239 generic/240 generic/241 generic/251
generic/255 generic/256 generic/260 generic/269 generic/270
generic/273 generic/274 generic/275 generic/277 generic/280
generic/288 generic/294 generic/299 generic/300 generic/306
generic/307 generic/311 generic/312 generic/314 generic/316
generic/317 generic/318 generic/319 generic/320 generic/321
generic/322 generic/323 generic/324 shared/006 shared/032 shared/051
shared/272 shared/289 shared/298
Failures: generic/192 generic/215 generic/237 generic/258 generic/313
Failed 5 of 42 tests

For 192 delta1 time should be 40 (this seems to work intermittently)

QA output created by 192
sleep for 40
test
delta1 - access time after sleep in-core: 0
delta2 - access time after sleep on-disk: 40

QA output created by 215

creating test file
4096+0 records in
4096+0 records out

writing via mmap
FAIL: mtime not update after mapped write
FAIL: ctime not update after mapped write

QA output created by 237 (setfacl problem)
Expect to FAIL


QA output created by 258
Creating file with timestamp of Jan 1, 1960
Testing for negative seconds since epoch
Timestamp wrapped: 1409325798
Timestamp wrapped

QA output created by 313
Silence is golden
ctime not updated after truncate
mtime not updated after truncate
--
Thanks,

Steve
Christoph Hellwig
2014-08-29 17:20:14 UTC
Permalink
Seems like most of your issues are time stamp updates, so you
should look into that area a lot more. Some that I know off head what
Post by Steve French
For 192 delta1 time should be 40 (this seems to work intermittently)
QA output created by 192
sleep for 40
test
delta1 - access time after sleep in-core: 0
delta2 - access time after sleep on-disk: 40
atimes update not persisting an umount/remount. Looks like cifs isn't
properly dirtying the inode for it.
Post by Steve French
QA output created by 215
creating test file
4096+0 records in
4096+0 records out
writing via mmap
FAIL: mtime not update after mapped write
FAIL: ctime not update after mapped write
missing file_update_time call in cifs_page_mkwrite.
Post by Steve French
QA output created by 313
Silence is golden
ctime not updated after truncate
mtime not updated after truncate
missing update of c/mtime for truncate. The VFS is nasty in it's
setattr calling conventions for this. Check my

"[PATCH] nfs: update time staps on truncate"

post on the nfs list for details.
Steve French
2014-09-02 03:05:22 UTC
Permalink
These are good suggestions - working through 215 and 313 is turning
out to be a little more complicated than I expected though.
Post by Christoph Hellwig
Seems like most of your issues are time stamp updates, so you
should look into that area a lot more. Some that I know off head what
Post by Steve French
QA output created by 215
creating test file
4096+0 records in
4096+0 records out
writing via mmap
FAIL: mtime not update after mapped write
FAIL: ctime not update after mapped write
missing file_update_time call in cifs_page_mkwrite.
Just adding that didn't fix it - but will look further into it. Maybe
server is delaying updating mtime and getting reset back to original
time stamp during revalidate. Need to debug further.
Post by Christoph Hellwig
Post by Steve French
QA output created by 313
Silence is golden
ctime not updated after truncate
mtime not updated after truncate
missing update of c/mtime for truncate. The VFS is nasty in it's
setattr calling conventions for this.
That is very true. This is turning out to be harder to decipher than I expected.
Post by Christoph Hellwig
Check my
"[PATCH] nfs: update time staps on truncate"
post on the nfs list for details.
My first pass at using the approach suggested in the NFS patch didn't
work, and an alternative approach of skipping mtime update (set info
of the timestamps to server) completely in the ATTR_SIZE case and
simply forcing revalidate of all inode metadata from the server
(setting cifsInode->time to zero forces revalidate) actually broke
ftruncate not just truncate (reminded me of something IIRC JRA had
said about delayed updates of mtime in NTFS - need to dig up that old
note).
--
Thanks,

Steve
Pavel Shilovsky
2014-09-03 06:22:02 UTC
Permalink
Post by Steve French
These are good suggestions - working through 215 and 313 is turning
out to be a little more complicated than I expected though.
Post by Christoph Hellwig
Seems like most of your issues are time stamp updates, so you
should look into that area a lot more. Some that I know off head what
Post by Steve French
QA output created by 215
creating test file
4096+0 records in
4096+0 records out
writing via mmap
FAIL: mtime not update after mapped write
FAIL: ctime not update after mapped write
missing file_update_time call in cifs_page_mkwrite.
Just adding that didn't fix it - but will look further into it. Maybe
server is delaying updating mtime and getting reset back to original
time stamp during revalidate. Need to debug further.
As for 215 tests: we are setting the superblock flags to MS_NODIRATIME
| MS_NOATIME during mounting (684 line, cifsfs.c). Then in cifs_iget()
we are setting inode->i_flags to S_NOATIME | S_NOCMTIME (929 line,
inode.c).

In file_update_time() we are checking for IS_NOCMTIME(inode) and exit
if it's true. So, this call does nothing for cifs and not change to
behavior.
--
Best regards,
Pavel Shilovsky.
Loading...