On 23.12.2013 13:50, Konstantin Belousov wrote:
On Mon, Dec 23, 2013 at 01:35:51PM +0200, Alexander Motin wrote:
On 23.12.2013 13:14, Konstantin Belousov wrote:
On Mon, Dec 23, 2013 at 08:43:17AM +0000, Alexander Motin wrote:
Author: mav
Date: Mon Dec 23 08:43:16 2013
New Revision: 259765
URL: http://svnweb.freebsd.org/changeset/base/259765

Log:
    Fix RPC server threads file handle affinity to work better with ZFS.

      Instead of taking 8 specific bytes of file handle to identify file during
    RPC thread affitinity handling, use trivial hash of the full file handle.
    ZFS's struct zfid_short does not have padding field after the length field,
    as result, originally picked 8 bytes are loosing lower 16 bits of object ID,
    causing many false matches and unneeded requests affinity to same thread.
      This fix substantially improves NFS server latency and scalability in SPEC
    NFS benchmark by more flexible use of multiple NFS threads.

    Sponsored by:       iXsystems, Inc.

Did you audited all other filesystems to ensure that struct fid.
fid_data0 is filled (zeroed) consistently ?

Yes, I did a tree search and in all found cases the structure was
pre-erased.
I.e. you checked all in-tree VOP_VPTOFH implementations, right ?

I checked all call places of VOP_VPTOFH and VOP_FID in a tree. As I can see these structures are normally pre-erased by callers.

Also, this constitues subtle VFS KBI change.

In what way it touched VFS KBI? I indeed modified RPC FHA KPI to make it
more safe, but I don't see how it may touch anything else then two of
our NFS servers.

See above, it is now required to ensure that fid_data0 is zeroed, for
filesystems which only fill fid_data.

I believe the only that really important is that NFS itself erases the structure before calling these VFS methods. But I'll recheck NFS code once more just to be sure.

--
Alexander Motin
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to