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
| ||
|
Date: Thu, 15 Apr 2010 06:14:06 +0200 From: Eric Dumazet <eric.dumazet@...il.com> To: Changli Gao <xiaosuo@...il.com> Cc: "David S. Miller" <davem@...emloft.net>, Tom Herbert <therbert@...gle.com>, netdev@...r.kernel.org Subject: Re: [PATCH] net: fix softnet_stat Le jeudi 15 avril 2010 à 05:40 +0200, Eric Dumazet a écrit : > Le jeudi 15 avril 2010 à 05:28 +0200, Eric Dumazet a écrit : > > > > > > + per_cpu(netdev_rx_stat, cpu).dropped++; > > > > This is a bit expensive, and could be a queue->rx_stat.dropped++ > > if netdev_rx_stat is moved inside queue structure. > > Hmm, this is not really needed, this event is the slow path and should > almost never happen. This part of your fix is fine. > > > - Oh well, I revert this comment, we need a mutual exclusion between cpus if we dont want to miss some increments, even in a slow path. __get_cpu_var(netdev_rx_stat).field++; is safe because updated only by this cpu. Once you use per_cpu(netdev_rx_stat, cpu).field++; you need a synchronization since this is not atomic. so queue->dropped++ is safer and faster too (inside the rps_lock section) -- 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