Separate out the two uses of netdev_max_backlog. One controls the upper bound on packets processed per softirq, the new name for this is netdev_max_weight; the other controls the limit on packets queued via netif_rx Signed-off-by: Stephen Hemminger Index: linux-2.6.12-rc4-tcp2/net/core/sysctl_net_core.c =================================================================== --- linux-2.6.12-rc4-tcp2.orig/net/core/sysctl_net_core.c +++ linux-2.6.12-rc4-tcp2/net/core/sysctl_net_core.c @@ -13,6 +13,7 @@ #ifdef CONFIG_SYSCTL extern int netdev_max_backlog; +extern int netdev_max_weight; extern int weight_p; extern int net_msg_cost; extern int net_msg_burst; @@ -137,6 +138,14 @@ ctl_table core_table[] = { .mode = 0644, .proc_handler = &proc_dointvec }, + { + .ctl_name = NET_CORE_MAX_WEIGHT, + .procname = "netdev_max_weight", + .data = &netdev_max_weight, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec + }, { .ctl_name = 0 } }; Index: linux-2.6.12-rc4-tcp2/net/core/dev.c =================================================================== --- linux-2.6.12-rc4-tcp2.orig/net/core/dev.c +++ linux-2.6.12-rc4-tcp2/net/core/dev.c @@ -1334,7 +1334,8 @@ out: Receiver routines =======================================================================*/ -int netdev_max_backlog = 300; +int netdev_max_backlog = 10000; +int netdev_max_weight = 500; int weight_p = 64; /* old backlog weight */ DEFINE_PER_CPU(struct netif_rx_stats, netdev_rx_stat) = { 0, }; @@ -1682,8 +1683,7 @@ static void net_rx_action(struct softirq { struct softnet_data *queue = &__get_cpu_var(softnet_data); unsigned long start_time = jiffies; - int budget = netdev_max_backlog; - + int budget = netdev_max_weight; local_irq_disable(); Index: linux-2.6.12-rc4-tcp2/include/linux/sysctl.h =================================================================== --- linux-2.6.12-rc4-tcp2.orig/include/linux/sysctl.h +++ linux-2.6.12-rc4-tcp2/include/linux/sysctl.h @@ -242,6 +242,7 @@ enum NET_CORE_MOD_CONG=16, NET_CORE_DEV_WEIGHT=17, NET_CORE_SOMAXCONN=18, + NET_CORE_MAX_WEIGHT=19, }; /* /proc/sys/net/ethernet */