Re: High contention on the sk_buff_head.lock

From: Herbert Xu
Date: Thu Apr 02 2009 - 10:14:21 EST


David Miller <davem@xxxxxxxxxxxxx> wrote:
> From: Eric Dumazet <dada1@xxxxxxxxxxxxx>
> Date: Mon, 23 Mar 2009 09:32:39 +0100
>
>> I dont understand, doesnt it defeat the ticket spinlock thing and fairness ?
>>
>> Thread doing __qdisc_run() already owns the __QDISC_STATE_RUNNING bit.
>
> Right.
>
> Remember, the way this is designed is that if there is a busy
> cpu taking packets out of the queue and putting them into the
> device then other cpus will simply add to the queue and immediately
> return. This effectively keeps the queue running there processing
> all the new work that other cpus are adding to the qdisc.
>
> Those other cpus make these decisions by looking at that
> __QDISC_STATE_RUNNING bit, which the queue runner grabs before
> it does any work.

Come on guys, if this lock is a problem. go out and buy a proper
NIC that supports multiequeue TX!

Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/