From: Serguei Smirnov Date: Thu, 21 Oct 2021 02:09:06 +0000 (-0700) Subject: LU-15136 socklnd: default conns_per_peer to 0 X-Git-Tag: 2.14.56~109 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=30a028e2ee2b3eead94abd6657edc3880ec89434 LU-15136 socklnd: default conns_per_peer to 0 Setting conns_per_peer to 0 triggers socklnd to choose the (heuristically) optimal setting for the interface given its speed. Make 0 the default for socklnd conns_per_peer. Test-parameters: trivial testlist=sanity-lnet Signed-off-by: Serguei Smirnov Fixes: c44afcfb72 ("LU-12815 socklnd: set conns_per_peer based on link speed") Change-Id: Ie6e76eaee8693472384cce362b394b216142884e Reviewed-on: https://review.whamcloud.com/45319 Reviewed-by: Andreas Dilger Reviewed-by: Chris Horn Tested-by: Maloo Reviewed-by: James Simmons Tested-by: Andreas Dilger Reviewed-by: Oleg Drokin --- diff --git a/lnet/include/lnet/lib-lnet.h b/lnet/include/lnet/lib-lnet.h index 45389e0..cc2f3e1 100644 --- a/lnet/include/lnet/lib-lnet.h +++ b/lnet/include/lnet/lib-lnet.h @@ -79,7 +79,7 @@ extern struct lnet the_lnet; /* THE network */ #define DEFAULT_CREDITS 256 /* default number of connections per peer */ -#define DEFAULT_CONNS_PER_PEER 1 +#define DEFAULT_CONNS_PER_PEER 0 #ifdef HAVE_KERN_SOCK_GETNAME_2ARGS #define lnet_kernel_getpeername(sock, addr, addrlen) \ diff --git a/lnet/klnds/socklnd/socklnd_modparams.c b/lnet/klnds/socklnd/socklnd_modparams.c index 967575a..cfc758a 100644 --- a/lnet/klnds/socklnd/socklnd_modparams.c +++ b/lnet/klnds/socklnd/socklnd_modparams.c @@ -191,6 +191,10 @@ static int ksocklnd_ni_get_eth_intf_speed(struct lnet_ni *ni) DECLARE_CONST_IN_IFADDR(ifa); + /* check if ni has interface assigned */ + if (!ni->ni_net_ns || !ni->ni_interface) + return 0; + rtnl_lock(); for_each_netdev(ni->ni_net_ns, dev) { int flags = dev_get_flags(dev); @@ -246,11 +250,13 @@ static int ksocklnd_speed2cpp(int speed) static int ksocklnd_lookup_conns_per_peer(struct lnet_ni *ni) { - int cpp = DEFAULT_CONNS_PER_PEER; + int cpp = 1; #ifdef HAVE_ETHTOOL_LINK_SETTINGS int speed = ksocklnd_ni_get_eth_intf_speed(ni); - CDEBUG(D_NET, "intf %s speed %d\n", ni->ni_interface, speed); + if (ni->ni_interface) + CDEBUG(D_NET, "intf %s speed %d\n", ni->ni_interface, speed); + if (speed > 0) cpp = ksocklnd_speed2cpp(speed); #endif