Re: [PATCH] net/udp: do not touch skb->peeked unless really needed
From: Hannes Frederic Sowa <hidden>
Date: 2016-12-07 17:37:48
On Wed, Dec 7, 2016, at 18:32, Eric Dumazet wrote:
On Wed, 2016-12-07 at 17:09 +0000, David Laight wrote:quoted
From: Paolo Abeniquoted
Sent: 06 December 2016 17:08...quoted
@@ -79,6 +82,9 @@ struct udp_sock { int (*gro_complete)(struct sock *sk, struct sk_buff *skb, int nhoff); + + /* since we are prone to drops, avoid dirtying any sk cacheline */ + atomic_t drops ____cacheline_aligned_in_smp; };Isn't that likely to create a large hole on systems with large cache lines. (Same as any other use of ____cacheline_aligned_in_smp.)Yes, I would like to avoid that, unless we come to the conclusion it is absolutely needed. I feel that we could simply use a pointer, and allocate memory on demand, since many sockets do not ever experience a drop. The pointer could stay in a read mostly section. We even could use per cpu or node counter for some heavy drop cases.
I had the same idea while discussing that with Paolo, merely using an *atomic_t = kmalloc(sizeof(atomic_t)) out of band of the socket. My fear was that those could be aggregated by the slab cache into one cache line, causing even more heating on cachelines. Bye, Hannes