[mq_bpf] status report #9
George Neville-Neil
gnn at freebsd.org
Tue Aug 9 02:34:28 UTC 2011
On Jul 27, 2011, at 19:11 , Takuya ASADA wrote:
> *Project summary
> The project goal is to support multiqueue network interface on BPF,
> and provide interfaces for multithreaded packet processing using BPF.
> Modern high performance NICs have multiple receive/send queues and RSS
> feature, this allows to process packet concurrently on multiple
> processors.
> Main purpose of the project is to support these hardware and get
> benefit of parallelism.
>
> Here's status update from last week:
> * Throughput benchmark
> - Test environment
> CPU: Core i7 X980
> MB: ASUS P6X58D Premium(Intel X58)
> NIC: Intel Gigabit ET Dual Port Server Adapter(82576)
>
> - Benchmark program
> test_sqpbf is single threaded bpf benchmark which used only existing bpf ioctls.
> It fetch all packets from a NIC and output them on file.
>
> test_mqbpf is multithreaded bpf benchmark which used new multiqueue bpf ioctls.
> Each thread fetch packets only from pinned queue and output them on
> per thread separated file.
>
> - Test conditions
> iperf used for generate network traffic, with following argument options
> test node: iperf -s -i1
> other node: iperf -c [IP] -i1 -t 100000 -P8
> # 8 threads, TCP
>
> tested with following 4 kernels to compare
> current: GENERIC kernel on current, BPFIF_LOCK:mtx BPFQ_LOCK:doesn't exist
> mq_bpf1: RSS kernel on mp_bpf, BPFIF_LOCK:mtx BPFQ_LOCK:mtx
> mq_bpf2: RSS kernel on mp_bpf, BPFIF_LOCK:mtx BPFQ_LOCK:rmlock
> mq_bpf3: RSS kernel on mp_bpf, BPFIF_LOCK:rmlock BPFQ_LOCK:rmlock
>
> - Benchmark result(MB/s)
> The result is 20 times average of test_sqbpf / test_mqbpf
> test_sqbpf test_mqbpf
> current 26.65568315 -
> mq_bpf1 24.96387975 36.608574
> mq_bpf2 27.13427415 41.76666665
> mq_bpf3 27.0958332 51.48198915
This looks good and it looks as if the performance scales linearly. Were the test programs
cpuset to each core? Is the test code in the p4 tree yet?
Best,
George
More information about the soc-status
mailing list