Whamcloud - gitweb
LU-56 lnet: SMP improvements for LNet selftest
authorLiang Zhen <liang@whamcloud.com>
Wed, 16 May 2012 06:53:43 +0000 (14:53 +0800)
committerAndreas Dilger <adilger@whamcloud.com>
Fri, 29 Jun 2012 20:30:46 +0000 (16:30 -0400)
commitc03783fce46ae0b40db0680388df6e2d6fca5008
tree9461a003733b102d551c33a562e72db4c1c85227
parent57df6353ca590f32a32c0f0dc4a1d10a86a027ec
LU-56 lnet: SMP improvements for LNet selftest

LNet selftest is using a global WI threads pool to handle all RPCs,
it has performance problem on fat cores machine because all threads
will contend on global queues protected by a single spinlock.
This patch will fix this by creating WI scheduler for each CPT,
RPCs will be dispatched to WI schedulers on different CPTs, and there
is no contention between threads in different WI schedulers.

Another major change in this patch is create percpt data for LST
service. In current implementation each service has a global data
structure to store buffer list and RPC list etch, and all operations
on them are protected by per-service lock, again, this could be a
serious performance issue if the service is busy enough. Having
percpt service data would resolve this issue because threads running
in one CPT will only require lock lock and access local data.

Signed-off-by: Liang Zhen <liang@whamcloud.com>
Change-Id: I8035faf2e87d8e424a8c2fac903bf3b241668e00
Reviewed-on: http://review.whamcloud.com/2805
Reviewed-by: Doug Oucharek <doug@whamcloud.com>
Tested-by: Hudson
Reviewed-by: Lai Siyao <laisiyao@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lnet/selftest/brw_test.c
lnet/selftest/console.c
lnet/selftest/framework.c
lnet/selftest/module.c
lnet/selftest/ping_test.c
lnet/selftest/rpc.c
lnet/selftest/rpc.h
lnet/selftest/selftest.h