>From Matt Benjamin <mbenja...@redhat.com>:

Matt Benjamin has uploaded this change for review. ( 
https://review.gerrithub.io/406910


Change subject: gtest, dupreq:  profile and test DRC
......................................................................

gtest, dupreq:  profile and test DRC

Single- and multi-threaded correctness and profiling support
e.g., DRC request/retire rates wth NFSv3/4.0 TCP DRC.

Contains the following profile-guided rework:

0. testing w/1-entry cache--0 would be optimal, will send later
1. simplify locking patterns, lift lanes into drc_t
2. introduce per-DRC free lists (remove most allocations)
3. s/mutex/spinlock/
4. lower refcnt into lanes, move cost into teardown
5. added benchmarking defines (price out dv->sp, all rbt ops)

On 32-core E5-2630, observed >2.5M DRC retires/s w/2 threads (4.5M w/1 thread)

examples:

sudo chrt -rr 1 perf record -g --call-graph dwarf ./gtest/test_drc --nlanes=117 
--nthreads=2 --dhiwat=32

sudo chrt -rr 1 perf record -g --call-graph dwarf ./gtest/test_drc --nlanes=117 
--nthreads=19 --dhiwat=32 --per_thread_xprt

Observations:
1. cost of rbt operations at n <= 64 less than 20% of runtime, worst case
2. cost of per-req spinlock negligible
3. contention for lane->sp dominates retire rate
3.3 scalability +varies geometrically w/nlanes, -varies faster w/nthreads
4. nlanes scale curve falls off above nlanes=117 (flat at 743)

Change-Id: I567ef2967cb867938365de341e14934f35cc5682
Signed-off-by: Matt Benjamin <mbenja...@redhat.com>
---
M src/MainNFSD/nfs_rpc_dispatcher_thread.c
M src/RPCAL/nfs_dupreq.c
M src/gtest/CMakeLists.txt
A src/gtest/test_drc.cc
M src/include/gsh_config.h
M src/include/nfs_dupreq.h
M src/support/nfs_read_conf.c
7 files changed, 1,337 insertions(+), 542 deletions(-)



  git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha 
refs/changes/10/406910/1
--
To view, visit https://review.gerrithub.io/406910
To unsubscribe, visit https://review.gerrithub.io/settings

Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-MessageType: newchange
Gerrit-Change-Id: I567ef2967cb867938365de341e14934f35cc5682
Gerrit-Change-Number: 406910
Gerrit-PatchSet: 1
Gerrit-Owner: Matt Benjamin <mbenja...@redhat.com>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel

Reply via email to