Skip to content

Commit

Permalink
net: increase receive packet quantum
Browse files Browse the repository at this point in the history
This patch gets about 1.25% back on tbench regression.

My change to NAPI for multiqueue support changed the time limit on
network receive processing.  Under sustained loads like tbench, this
can cause the receiver to reschedule prematurely. 

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Stephen Hemminger authored and David S. Miller committed Nov 4, 2008
1 parent b9ac998 commit 24f8b23
Showing 1 changed file with 4 additions and 7 deletions.
11 changes: 4 additions & 7 deletions net/core/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -2373,7 +2373,7 @@ EXPORT_SYMBOL(__napi_schedule);
static void net_rx_action(struct softirq_action *h)
{
struct list_head *list = &__get_cpu_var(softnet_data).poll_list;
unsigned long start_time = jiffies;
unsigned long time_limit = jiffies + 2;
int budget = netdev_budget;
void *have;

Expand All @@ -2384,13 +2384,10 @@ static void net_rx_action(struct softirq_action *h)
int work, weight;

/* If softirq window is exhuasted then punt.
*
* Note that this is a slight policy change from the
* previous NAPI code, which would allow up to 2
* jiffies to pass before breaking out. The test
* used to be "jiffies - start_time > 1".
* Allow this to run for 2 jiffies since which will allow
* an average latency of 1.5/HZ.
*/
if (unlikely(budget <= 0 || jiffies != start_time))
if (unlikely(budget <= 0 || time_after(jiffies, time_limit)))
goto softnet_break;

local_irq_enable();
Expand Down

0 comments on commit 24f8b23

Please sign in to comment.