- 论坛徽章:
- 0
|
原帖由 terryfe 于 2008-3-19 13:31 发表 ![]()
于是引用ULK的原话......
However, the relevant lines could easily be no longer in the cache when the deferrable function is run because its execution can be delayed a long time. Moreover, bindi ...
这里面有点复杂:
如果网卡把rx_ring上的包发到不同CPU上,肯定会有问题.
但如果按照一定规则来发送就能避免这个问题.
Solaris 10在每个CPU上都实现了一个soft_ring, 一个硬件的rx_ring上的包可以被扇出(fanout)到其它CPU上, 按照目的IP地址或者端口的HASH.
SUN的T2000有32个虚拟CPU, 如果用kernel debugger观察,你会发现,中断收上来的包被fanout到其它CPU上.
不然的话,如何利用多核的特性?
当然, 这种 IP fanout + softring的技术其实思想上和RSS差不多的,但远远不如MSI-X intr+multi-ring+RSS更高效. |
|