Re: UDP performance questions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In article <20011023002402.ACDD27E1C@pasta.sw.starentnetworks.com>,
Grant Taylor <gtaylor@pasta.picante.com> writes:
>>>>>> kuznet@ms2.inr.ac.ru writes:
>> No matter, this ping-pong is something absolutely unavoidable anyway.
>> It is the thing which you have to pay for using one socket on several cpus.

>>> Around 650 samples are in the inline sin_zero memset, which seems odd
>>> since the pad size declaration works out to 0 in in.h.  Is there

> So I missed by a line; the big thing there is the skb->foo references
> on the lines before where it fills in addr.

> Each of the four hot spots in my profile is a read reference to data
> in the skb.  So Alexey wins the virtual beer; it's undoubtedly a cache
> flopping problem between the two CPUs.

One hack that you could try is to insert prefetches for the critical
fields early (as early as you know you need them). This would allow 
to hide some latency in other code. Later 2.4 has 
macros for that: prefetch and prefetchw. You should have an CPU 
that supports prefetching of course: PIII+ or 3dnow! and a kernel
compiled to support them.

It'll probably not help that much though, because the time from
knowing that you need an skb to actually processing it is not too long
in UDP.

-Andi

-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux