diff mbox series

net: revert default NAPI poll timeout to 2 jiffies

Message ID 158617317267.1170.12944758673162826206.stgit@buzz
State Accepted
Delegated to: David Miller
Headers show
Series net: revert default NAPI poll timeout to 2 jiffies | expand

Commit Message

Konstantin Khlebnikov April 6, 2020, 11:39 a.m. UTC
For HZ < 1000 timeout 2000us rounds up to 1 jiffy but expires randomly
because next timer interrupt could come shortly after starting softirq.

For commonly used CONFIG_HZ=1000 nothing changes.

Fixes: 7acf8a1e8a28 ("Replace 2 jiffies with sysctl netdev_budget_usecs to enable softirq tuning")
Reported-by: Dmitry Yakunin <zeil@yandex-team.ru>
Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
---
 net/core/dev.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

David Miller April 8, 2020, 1:31 a.m. UTC | #1
From: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Date: Mon, 06 Apr 2020 14:39:32 +0300

> For HZ < 1000 timeout 2000us rounds up to 1 jiffy but expires randomly
> because next timer interrupt could come shortly after starting softirq.
> 
> For commonly used CONFIG_HZ=1000 nothing changes.
> 
> Fixes: 7acf8a1e8a28 ("Replace 2 jiffies with sysctl netdev_budget_usecs to enable softirq tuning")
> Reported-by: Dmitry Yakunin <zeil@yandex-team.ru>
> Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>

Applied, thank you.
diff mbox series

Patch

diff --git a/net/core/dev.c b/net/core/dev.c
index 9c9e763bfe0e..df8097b8e286 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4140,7 +4140,8 @@  EXPORT_SYMBOL(netdev_max_backlog);
 
 int netdev_tstamp_prequeue __read_mostly = 1;
 int netdev_budget __read_mostly = 300;
-unsigned int __read_mostly netdev_budget_usecs = 2000;
+/* Must be at least 2 jiffes to guarantee 1 jiffy timeout */
+unsigned int __read_mostly netdev_budget_usecs = 2 * USEC_PER_SEC / HZ;
 int weight_p __read_mostly = 64;           /* old backlog weight */
 int dev_weight_rx_bias __read_mostly = 1;  /* bias for backlog weight */
 int dev_weight_tx_bias __read_mostly = 1;  /* bias for output_queue quota */