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 <ssmirnov@whamcloud.com>
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 <adilger@whamcloud.com>
Reviewed-by: Chris Horn <chris.horn@hpe.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Tested-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
#define DEFAULT_CREDITS 256
/* default number of connections per peer */
#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) \
#ifdef HAVE_KERN_SOCK_GETNAME_2ARGS
#define lnet_kernel_getpeername(sock, addr, addrlen) \
DECLARE_CONST_IN_IFADDR(ifa);
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);
rtnl_lock();
for_each_netdev(ni->ni_net_ns, dev) {
int flags = dev_get_flags(dev);
static int ksocklnd_lookup_conns_per_peer(struct lnet_ni *ni)
{
static int ksocklnd_lookup_conns_per_peer(struct lnet_ni *ni)
{
- int cpp = DEFAULT_CONNS_PER_PEER;
#ifdef HAVE_ETHTOOL_LINK_SETTINGS
int speed = ksocklnd_ni_get_eth_intf_speed(ni);
#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
if (speed > 0)
cpp = ksocklnd_speed2cpp(speed);
#endif