As you requested, I turned on debugging in smbfs/inode.c and ran iozone on
auto mode. Interestingly enough, for each write/read iteration, it spits
out one of these:
Dec 8 22:15:13 cy kernel: smb_revalidate_inode: up-to-date, \
jiffies=10173611, oldtime=10173611
Dec 8 22:15:29 cy kernel: smb_revalidate_inode: up-to-date, \
jiffies=10175238, oldtime=10175238
Dec 8 22:15:40 cy kernel: smb_revalidate_inode: up-to-date, \
jiffies=10176299, oldtime=10176299
Dec 8 22:15:53 cy kernel: smb_revalidate_inode: up-to-date, \
jiffies=10177636, oldtime=10177636
Dec 8 22:16:06 cy kernel: smb_revalidate_inode: up-to-date, \
jiffies=10178979, oldtime=10178979
They occur at the point where it turns around to read back the temporary
file. Unless I'm totally misreading the code, doesn't this mean that the
cache is _not_ being invalidated because smbfs thinks it's current?
Strange..
Let me know what other metrics you need to nail this?
Steve