Subject: Re: a tap mystery

From: Rick Jones <[email-masked]>
Date: Mon, 01 Jul 2013 16:33:44 -0700

On 06/10/2013 05:16 PM, Rick Jones wrote:
> I have a small test script which runs a netperf TCP_RR test with an ever
> increasing number of tap devices on the system.  In this case the system
> is a venerable Centrino-based laptop on AC power at fixed frequency,
> with idle=poll for perf profiling purposes, the irqbalanced shot in the
> head and the IRQ of the Intel Corporation 82566MM pointed at CPU 0,
> whereon I have also bound the netperf process.  The other system is my
> personal workstation and the network connection between them is a
> private, back-to-back link.  The kernel on the laptop is a 3.5.0-30
> generic kernel.
>
> For the first 1024 tap devices created on the system, and put into the
> "UP" state, what netperf reports for CPU utilization and service demand
> is consistent with increasing per-packet costs which seems to be
> consistent with list_for_each_entry_rcu(ptype, &ptype_all, list) usage
> in dev_queue_xmit_nit and __netif_receive_skb.
>
>
> But somewhere between 1024 and 2048 tap devices some sort of miracle
> occurs and the CPU utilization and service demand drop.  Considerably.

And the same thing happens with an ~5 day old 3.10.0-rc6+ net-next kernel.

happy benchmarking,

rick jones