[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1481132267.1541189.811630457.167E9C56@webmail.messagingengine.com>
Date: Wed, 07 Dec 2016 18:37:47 +0100
From: Hannes Frederic Sowa <hannes@...essinduktion.org>
To: Eric Dumazet <eric.dumazet@...il.com>,
David Laight <David.Laight@...LAB.COM>
Cc: Paolo Abeni <pabeni@...hat.com>,
David Miller <davem@...emloft.net>,
netdev <netdev@...r.kernel.org>,
Willem de Bruijn <willemb@...gle.com>
Subject: Re: [PATCH] net/udp: do not touch skb->peeked unless really needed
On Wed, Dec 7, 2016, at 18:32, Eric Dumazet wrote:
> On Wed, 2016-12-07 at 17:09 +0000, David Laight wrote:
> > From: Paolo Abeni
> > > Sent: 06 December 2016 17:08
> > ...
> > > @@ -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
Powered by blists - more mailing lists