aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index 3a2b8be9e67b..8f9d3b38a44b 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2373,7 +2373,7 @@ EXPORT_SYMBOL(__napi_schedule);
2373static void net_rx_action(struct softirq_action *h) 2373static void net_rx_action(struct softirq_action *h)
2374{ 2374{
2375 struct list_head *list = &__get_cpu_var(softnet_data).poll_list; 2375 struct list_head *list = &__get_cpu_var(softnet_data).poll_list;
2376 unsigned long start_time = jiffies; 2376 unsigned long time_limit = jiffies + 2;
2377 int budget = netdev_budget; 2377 int budget = netdev_budget;
2378 void *have; 2378 void *have;
2379 2379
@@ -2384,13 +2384,10 @@ static void net_rx_action(struct softirq_action *h)
2384 int work, weight; 2384 int work, weight;
2385 2385
2386 /* If softirq window is exhuasted then punt. 2386 /* If softirq window is exhuasted then punt.
2387 * 2387 * Allow this to run for 2 jiffies since which will allow
2388 * Note that this is a slight policy change from the 2388 * an average latency of 1.5/HZ.
2389 * previous NAPI code, which would allow up to 2
2390 * jiffies to pass before breaking out. The test
2391 * used to be "jiffies - start_time > 1".
2392 */ 2389 */
2393 if (unlikely(budget <= 0 || jiffies != start_time)) 2390 if (unlikely(budget <= 0 || time_after(jiffies, time_limit)))
2394 goto softnet_break; 2391 goto softnet_break;
2395 2392
2396 local_irq_enable(); 2393 local_irq_enable();