big picture UDP/IP performance question re 2.6.18 -> 2.6.32

From: starlight
Date: Sat Oct 01 2011 - 01:55:59 EST


I'm hoping someone can provide a brief big-picture
perspective on the dramatic UDP/IP multicast
receive performance reduction from 2.6.18 to
2.6.32 that I just benchmarked.

Have helped out in the past, mainly by identifying
a bug in hugepage handling and providing a solid
testcase that helped in quickly identifying and
correcting the problem.

Have a very-high-volume UDP multicast receiver
application. Just finished benchmarking latest RH
variant of 2.6.18 against latest RH 2.6.32 and
vanilla on the same 12 core Opteron
6174 processor system, one CPU.

Application reads on 250 sockets with large socket
buffer maximums. Zero data loss. Four Intel
'e1000e' 82571 gigabit NICs, or two Intel 'igb'
82571 gigabit NICs or two Intel 82599 10 gigabit
NICs. Results similar on all.

With 2.6.18, system CPU is reported in
/proc/<pid>/stat as 25% of total. With 2.6.32,
system consumption is 45% with the same exact data
playback test. Jiffy count for user CPU is same
for both kernels, but .32 system CPU is double
.18 system CPU.

Overall maximum performance capacity is reduced in
proportion to the increased system overhead.


My question is why is the performance significantly
worse in the more recent kernels? Apparently
network performance is worse for TCP by about the
same amount--double the system overhead for the
same amount of work.

Is there any chance that network performance will
improve in future kernels? Or is the situation
a permanent trade-off for security, reliability
or scalability reasons?

Thank you very much.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at