diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2017-07-12 00:53:48 +0300 |
---|---|---|
committer | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2017-07-13 23:57:18 +0300 |
commit | 301bfa483016d48b7fb9cbad87c0a04a15c25b90 (patch) | |
tree | 1e86b94a773529cae5a3144e03ff7b35f7673188 /include/linux | |
parent | 00422483ad415d6267d36711f0e51f4bbbd653ed (diff) | |
download | linux-301bfa483016d48b7fb9cbad87c0a04a15c25b90.tar.xz |
NFS: Don't run wake_up_bit() when nobody is waiting...
"perf lock" shows fairly heavy contention for the bit waitqueue locks
when doing an I/O heavy workload.
Use a bit to tell whether or not there has been contention for a lock
so that we can optimise away the bit waitqueue options in those cases.
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/nfs_page.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h index abbee2d15dce..d67b67ae6c8b 100644 --- a/include/linux/nfs_page.h +++ b/include/linux/nfs_page.h @@ -33,6 +33,8 @@ enum { PG_UPTODATE, /* page group sync bit in read path */ PG_WB_END, /* page group sync bit in write path */ PG_REMOVE, /* page group sync bit in write path */ + PG_CONTENDED1, /* Is someone waiting for a lock? */ + PG_CONTENDED2, /* Is someone waiting for a lock? */ }; struct nfs_inode; |