net: change netdev_unregister_timeout_secs min value to 1
authorDmitry Vyukov <dvyukov@google.com>
Thu, 25 Mar 2021 14:52:45 +0000 (15:52 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 26 Mar 2021 00:24:06 +0000 (17:24 -0700)
netdev_unregister_timeout_secs=0 can lead to printing the
"waiting for dev to become free" message every jiffy.
This is too frequent and unnecessary.
Set the min value to 1 second.

Also fix the merge issue introduced by
"net: make unregister netdev warning timeout configurable":
it changed "refcnt != 1" to "refcnt".

Signed-off-by: Dmitry Vyukov <dvyukov@google.com>
Suggested-by: Eric Dumazet <edumazet@google.com>
Fixes: 5aa3afe107d9 ("net: make unregister netdev warning timeout configurable")
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/admin-guide/sysctl/net.rst
net/core/dev.c
net/core/sysctl_net_core.c

index 2090bfc..c941b21 100644 (file)
@@ -320,7 +320,7 @@ waiting for a network device refcount to drop to 0 during device
 unregistration. A lower value may be useful during bisection to detect
 a leaked reference faster. A larger value may be useful to prevent false
 warnings on slow/loaded systems.
-Default value is 10, minimum 0, maximum 3600.
+Default value is 10, minimum 1, maximum 3600.
 
 optmem_max
 ----------
index 48b529d..b4c67a5 100644 (file)
@@ -10460,7 +10460,7 @@ static void netdev_wait_allrefs(struct net_device *dev)
 
                refcnt = netdev_refcnt_read(dev);
 
-               if (refcnt &&
+               if (refcnt != 1 &&
                    time_after(jiffies, warning_time +
                               netdev_unregister_timeout_secs * HZ)) {
                        pr_emerg("unregister_netdevice: waiting for %s to become free. Usage count = %d\n",
index d84c8a1..c8496c1 100644 (file)
@@ -577,7 +577,7 @@ static struct ctl_table net_core_table[] = {
                .maxlen         = sizeof(unsigned int),
                .mode           = 0644,
                .proc_handler   = proc_dointvec_minmax,
-               .extra1         = SYSCTL_ZERO,
+               .extra1         = SYSCTL_ONE,
                .extra2         = &int_3600,
        },
        { }