From 68eb6e841f49d41a289bd0b3f559973b6cb31738 Mon Sep 17 00:00:00 2001 From: James Simmons Date: Mon, 5 Oct 2015 22:54:27 -0400 Subject: [PATCH] LU-7245 socklnd: Bind peers to a specific CPT Currently the socklnd driver doesn't support CPT affinity for its peers. Binding peers to a specific CPT and memory allocated to the NUMA node belonging to the CPT should give a performance boost. Change-Id: I1cc418dc4ba6269e346a4aa1454de79e580e1fba Signed-off-by: James Simmons Reviewed-on: http://review.whamcloud.com/16710 Tested-by: Jenkins Reviewed-by: Olaf Weber Tested-by: Maloo Reviewed-by: Amir Shehata Reviewed-by: Oleg Drokin --- lnet/klnds/socklnd/socklnd.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/lnet/klnds/socklnd/socklnd.c b/lnet/klnds/socklnd/socklnd.c index ba7382a..ddc1460 100644 --- a/lnet/klnds/socklnd/socklnd.c +++ b/lnet/klnds/socklnd/socklnd.c @@ -100,24 +100,23 @@ ksocknal_destroy_route (ksock_route_t *route) } static int -ksocknal_create_peer (ksock_peer_t **peerp, lnet_ni_t *ni, lnet_process_id_t id) +ksocknal_create_peer(ksock_peer_t **peerp, lnet_ni_t *ni, lnet_process_id_t id) { - ksock_net_t *net = ni->ni_data; - ksock_peer_t *peer; + int cpt = lnet_cpt_of_nid(id.nid); + ksock_net_t *net = ni->ni_data; + ksock_peer_t *peer; - LASSERT (id.nid != LNET_NID_ANY); - LASSERT (id.pid != LNET_PID_ANY); - LASSERT (!in_interrupt()); + LASSERT(id.nid != LNET_NID_ANY); + LASSERT(id.pid != LNET_PID_ANY); + LASSERT(!in_interrupt()); - LIBCFS_ALLOC (peer, sizeof (*peer)); + LIBCFS_CPT_ALLOC(peer, lnet_cpt_table(), cpt, sizeof(*peer)); if (peer == NULL) return -ENOMEM; - memset (peer, 0, sizeof (*peer)); /* NULL pointers/clear flags etc */ - peer->ksnp_ni = ni; peer->ksnp_id = id; - atomic_set (&peer->ksnp_refcount, 1); /* 1 ref for caller */ + atomic_set(&peer->ksnp_refcount, 1); /* 1 ref for caller */ peer->ksnp_closing = 0; peer->ksnp_accepting = 0; peer->ksnp_proto = NULL; -- 1.8.3.1