diff options
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 11 |
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); | |||
2373 | static void net_rx_action(struct softirq_action *h) | 2373 | static 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(); |