9447 NFS unmount is slow

Review Request #1064 - Created April 10, 2018 and submitted

Marcel Telka
This improves the speed of the NFS unmount in kernel for all NFS versions by
introducing new linked list of rnodes in mntinfo so some functions used during
the unmount operation does not need to walk through all rnodes in the rtable.
For unit test and its results please see

The testing proved that the in-kernel NFS unmount functions are significantly
faster with the new implementation in the tested scenarios.

This fix is running in production for few weeks now with no regressions


  • 0
  • 2
  • 0
  • 2
Description From Last Updated
Toomas Soome
Marcel Telka
Toomas Soome
Marcel Telka
Toomas Soome
Arne Jansen
Ken Mays
Marcel Telka
Review request changed

Status: Closed (submitted)

Change Summary:

commit e010bda94b034e413b6fe35fd45bca0afaf1a0df
Author:     Marcel Telka <marcel@telka.sk>
AuthorDate: Wed Apr 25 00:28:01 2018 +0200
Commit:     Dan McDonald <danmcd@joyent.com>
CommitDate: Wed Jul 18 20:10:13 2018 -0400

    9447 NFS unmount is slow
    Reviewed by: Toomas Soome <tsoome@me.com>
    Reviewed by: Arne Jansen <arne@die-jansens.de>
    Reviewed by: Ken Mays <kmays2000@gmail.com>
    Reviewed by: Evan Layton <evan.layton@nexenta.com>
    Approved by: Dan McDonald <danmcd@joyent.com>

:100644 100644 207a708771 d6a88a97c3 M	usr/src/uts/common/fs/nfs/nfs3_vfsops.c
:100644 100644 1734853f57 5456fc7c63 M	usr/src/uts/common/fs/nfs/nfs4_client.c
:100644 100644 14abf17329 5f7be519e6 M	usr/src/uts/common/fs/nfs/nfs4_rnode.c
:100644 100644 8efaf20602 f0320aaee0 M	usr/src/uts/common/fs/nfs/nfs4_vfsops.c
:100644 100644 7a6c545d9a b034aa4a77 M	usr/src/uts/common/fs/nfs/nfs_client.c
:100644 100644 cda666c27e 68cd0df081 M	usr/src/uts/common/fs/nfs/nfs_subr.c
:100644 100644 57b21778b4 c9cc306f95 M	usr/src/uts/common/fs/nfs/nfs_vfsops.c
:100644 100644 8f8cb7d78e 68c810f7c7 M	usr/src/uts/common/nfs/nfs4_clnt.h
:100644 100644 ae2948ed12 391640c14c M	usr/src/uts/common/nfs/nfs_clnt.h
:100644 100644 33091445c4 a9433b9496 M	usr/src/uts/common/nfs/rnode.h
:100644 100644 0e0090e24d ca2e38c8e8 M	usr/src/uts/common/nfs/rnode4.h