Subject: Re: High contention on the sk_buff_head.lock

From: David Miller <[email-masked]>
Date: Wed, 18 Mar 2009 18:17:13 -0700 (PDT)

From: Sven-Thorsten Dietrich <[email-masked]>
Date: Wed, 18 Mar 2009 18:13:11 -0700

> On Wed, 2009-03-18 at 18:03 -0700, David Miller wrote:
> > From: Gregory Haskins <[email-masked]>
> > Date: Wed, 18 Mar 2009 17:54:04 -0400
> > 
> > > Note that -rt doesnt typically context-switch under contention anymore
> > > since we introduced adaptive-locks.  Also note that the contention
> > > against the lock is still contention, regardless of whether you have -rt
> > > or not.  Its just that the slow-path to handle the contended case for
> > > -rt is more expensive than mainline.  However, once you have the
> > > contention as stated, you have already lost.
> > 
> > First, contention is not implicitly a bad thing.
>
> Its a bad thing when it does not scale.

You have only one pipe to shove packets into in this case, and for
your workload multiple cpus are going to be trying to stuff a single
packet at a time from a single UDP send request.

There is no added parallelism you can create for that kind of workload
on that kind of hardware.

It is one of the issues addressed by multiqueue.