Xueqian Hu has uploaded this change for review.

View Change

SAL: split exp_state_list onto its own rwlock to cut PUTFH/OPEN contention

exp_lock guards both the read-hot perms/client check on every PUTFH
(export_check_access) and the write-hot exp_state_list churn on every
OPEN/CLOSE (state_add/state_del), so the two convoy on a busy export
despite touching disjoint data. Give exp_state_list its own rwlock
(exp_state_lock); exp_lock still protects perms/clients and the NLM
lists. The two sets were already disjoint so no atomicity is lost, and
exp_state_lock is a leaf lock (only state_mutex nests under it).

Change-Id: I26c68ce8039f1e84d2a69560f746900212a62d1b
Signed-off-by: xueqian.hu <xh140312@outlook.com>
---
M src/SAL/nfs4_state.c
M src/include/export_mgr.h
M src/support/export_mgr.c
3 files changed, 17 insertions(+), 13 deletions(-)

git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/15/1240515/1

To view, visit change 1240515. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I26c68ce8039f1e84d2a69560f746900212a62d1b
Gerrit-Change-Number: 1240515
Gerrit-PatchSet: 1
Gerrit-Owner: Xueqian Hu <xh140312@outlook.com>