Bug 435443
Summary: | Add patch to prevent NFS cache invalidation after write calls | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 4 | Reporter: | Jeff Layton <jlayton> |
Component: | kernel | Assignee: | Jeff Layton <jlayton> |
Status: | CLOSED DUPLICATE | QA Contact: | Martin Jenner <mjenner> |
Severity: | low | Docs Contact: | |
Priority: | low | ||
Version: | 4.6 | CC: | sbeal, staubach, steved |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2008-09-22 14:53:39 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 436132, 461304 | ||
Attachments: |
Description
Jeff Layton
2008-02-29 11:56:38 UTC
For RHEL5, it looks like the above patch went in as part of Peter's big performance update in bug 321111. I suppose we can start by trying this test. Presumably the first read should be as fast as the "reread" if the patch is working correctly. Sniffing traffic should also tell us (and maybe looking at nfsstat -c). # /opt/iozone/bin/iozone -azc -f /mnt/test/testfile -s 64k -r 64 -i 0 -i 1 Created attachment 296373 [details]
patch1 -- NFSv4: Add post-op attributes to NFSv4 write and commit callbacks.
Created attachment 296374 [details]
patch2 -- NFS: Clean up inode metadata updates
Created attachment 296376 [details]
patch3 -- NFS: Fake up 'wcc' attributes to prevent cache invalidation after write
I've attached a set of 3 experimental patches to implement what Peter suggested the other day in our meeting. This seems to correct the iozone slowdowns in the testing I've done. I'm building a new set of test kernels now and will post them on my people page once they're done... I've put this on 4.8 proposed, but I'm not opposed to considering this for 4.7 if it's deemed important enough. This of course presumes no regressions show up in testing. That said, it seems like this might cause a few more problems with cache consistency. Consider: client writes to file and has up to date cache client writes to file again and doesn't invalidate cache since we've faked up the wcc preattrs local timestamp is set to mtime of file server races in with a write from local process or another client within the same second client doesn't realize the file has changed ...before this patchset, the client would have probably invalidated the cache after the second write. Given the other possible races due to coarse mtime granularity, this probably isn't a huge issue but its something we should keep in mind. I've put some patches up on my people page with this patchset: http://people.redhat.com/jlayton/ Steven, Would it be possible for your customer to test kernel-2.6.9-68.16.EL.jtltest.31 someplace non-critical and let us know if this helps them at all? Note that this kernel *also* contains a patch to fix a lockd race that can seriously affect performance as well, so if it does help we'll still likely need to have them verify whether it's this patch that actually helps... Created attachment 296811 [details]
patch1 -- NFSv4: Add post-op attributes to NFSv4 write and commit callbacks
Fixed patch1 -- the original one had a bad merge of nops changes for write and
commit. So much of this file looks alike that it confuses the patch program and
it ends up merging changes into the wrong place.
Building a new test kernel now. The problem should only have affected NFSv4, so
it's doubtful this will make any difference on NFSv2/3.
Updating PM score. *** This bug has been marked as a duplicate of bug 427385 *** |