Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Sep 2008 23:36:40 +0800
From:      "Jian Qiu" <swordqiu@gmail.com>
To:        "Kevin Oberman" <oberman@es.net>
Cc:        freebsd-net@freebsd.org
Subject:   Re: What's the status of parallel netisr?
Message-ID:  <e8520310809200836s159f6f70h3b38bfd9bfc9d91d@mail.gmail.com>
In-Reply-To: <20080918185827.E05DA45047@ptavv.es.net>
References:  <e8520310809180750h41ddd3e9tb83f20953f1c8095@mail.gmail.com> <20080918185827.E05DA45047@ptavv.es.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Kevin,
>
> Did you try locking down the CPUs used with cpuset (FreeBSD) or taskset
> (Linux)? This can make a very substantial difference. Something like a
> UDP canon will run far more efficiently if locked to a single CPU and
> will run best if that CPU is not processing the interrupts.


As far as I know, on the sending path, a UDP packet will be directly
put on the sending queue of the relevant NIC. The UDP stack codes are
executed on the CPU where the sending application is running. On the
receiving path, iIf the packet is received from a loopback interface,
the UDP stack codes are executed in the context of netisr softirq.

Did you mean I should bind the sending application to one CPU and
netsir softirq to another CPU?

Thanks.

Jian



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?e8520310809200836s159f6f70h3b38bfd9bfc9d91d>