Re: [RFC v1] hand off skb list to other cpu to submit to upper layer

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Zhang, Yanmin
Date: Tuesday, February 24, 2009 - 7:35 pm

On Tue, 2009-02-24 at 18:11 -0800, Stephen Hemminger wrote:
Thanks for your comments.

input_pkt_alien_queue is a struct sk_buff_head which has a spinlock. We use
that lock to protect the queue.

My testing shows 43% improvement. As multi-core machines are becoming
popular, we can allocate some core for packet collection only.

I use the spinlock carefully. The deliver cpu locks it only when input_pkt_queue
is empty, and just merges the list to input_pkt_queue. Later skb dequeue needn't
hold the spinlock. In the other hand, the original receving cpu dispatches a batch
of skb (64 packets with IXGBE default) when holding the lock once.

Would you like to elaborate the scenario? Does your speaking mean multi-queue
also hurts single stream TCP performance when we bind multi-queue(interrupt) to
different cpu?

IXGBE supports MSI-X and I enables it when testing.  The receiver has 16 multi-queue,
so 16 irq numbers. I bind 2 irq numbers per logical cpu of one physical cpu.

What does a single flow mean here? One sender? I do start one sender for testing because
I couldn't get enough hardware.

In addition, my patch doesn't change old interface, so there would be no performance
hurt to old drivers.

yanmin


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [RFC v1] hand off skb list to other cpu to submit to u ..., Stephen Hemminger, (Tue Feb 24, 7:11 pm)
Re: [RFC v1] hand off skb list to other cpu to submit to u ..., Zhang, Yanmin, (Tue Feb 24, 7:35 pm)
Re: [RFC v1] hand off skb list to other cpu to submit to u ..., Stephen Hemminger, (Tue Feb 24, 10:18 pm)