lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <1271920877.7895.4757.camel@edumazet-laptop> Date: Thu, 22 Apr 2010 09:21:17 +0200 From: Eric Dumazet <eric.dumazet@...il.com> To: Changli Gao <xiaosuo@...il.com> Cc: Stephen Hemminger <shemminger@...tta.com>, "David S. Miller" <davem@...emloft.net>, jamal <hadi@...erus.ca>, Tom Herbert <therbert@...gle.com>, netdev@...r.kernel.org Subject: Re: [PATCH v4] net: batch skb dequeueing from softnet input_pkt_queue Le jeudi 22 avril 2010 à 14:30 +0800, Changli Gao a écrit : > On Thu, Apr 22, 2010 at 2:18 PM, Stephen Hemminger > <shemminger@...tta.com> wrote: > > On Thu, 22 Apr 2010 13:51:53 +0800 > > Changli Gao <xiaosuo@...il.com> wrote: > > > >> + struct sk_buff *input_pkt_queue_head; > >> + struct sk_buff **input_pkt_queue_tailp; > >> + unsigned int input_pkt_queue_len; > >> + unsigned int process_queue_len; > > > > Why is opencoding a skb queue a step forward? > > Just keep using sk_queue routines, just not the locked variants. > > > > I want to keep the critical section of rps_lock() as small as possible > to reduce the potential lock contention, when RPS is used. > Jamal perf reports show lock contention but also cache line ping pongs. Yet, you keep a process_queue_len shared by producers and consumer. Producers want to read it, while consumer decrement it (dirtying its cache line) every packet, slowing down the things. The idea of batching is to let the consumer process its local queue with no impact to producers. Please remove it completely, or make the consumer zero it only at the end of batch processing. A cache line miss cost is about 120 cycles. Multiply it by 1 million packet per second... -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists