NS 3 Quote

.h2 Move VisualSimulatorImpl into the core module? move VisualSimulatorImpl into the core or network module. Does this remind anyone else of Microsoft moving graphics into the kernel in NT 4.0, so that it was much more unreliable than NT 3.5 and could be crashed by any 3D screensaver? -1

April 4, 2011 · 1 min · Hagen Paul Pfeifer

No Cache Copy

Tom posted these days a patch called “Allow no-cache copy from user on transmit”. The idea behind is the following: in net/ipv4/tcp.c:tcp_sendmsg() will copy date from user buffer to sk_buff via copy_from_user() or csum_and_copy_from_user() (which does what the name implies: copy the data and calculate a (partial) checksum). Tom realized that when data is copied data caches are touched which are often not used afterwards. The feature is enabled if the device signals that he is doing some kind of checksum offloading....

April 4, 2011 · 1 min · Hagen Paul Pfeifer

Shinny KVM Userspace

Wow, today Pekka Enberg announced a new KVM userland (e.g. a qemu pendant). Techical it is really raw at the moment: no networking support, no graphic support and so on. The list of missing things is long. The most prominent change is another one: it is aligned with the Linux development, e.g. it is placed under tools/kvm and because of it freshness it can mature into a more powerful environment as todays qemu (e....

April 3, 2011 · 1 min · Hagen Paul Pfeifer

Staging WTF

[...] len = dwrq->length; ext = \_malloc(len); - if (!\_malloc(len)) + if (!ext) return -ENOMEM; if (copy\_from\_user(ext, dwrq->pointer, len)) { kfree(ext); [...]

March 6, 2011 · 1 min · Hagen Paul Pfeifer

Initial Congestion Window and NS2 Testbed

The increase of the Initial Congestion Window (IW) throughout the land: netdev ML ((Linux Network Development mailing list), TCPM (TCP Modification WG) ML, ICCRP (Congestion Control Research Group WG) ML, TMRG (Traffic Modeling Research Group) ML are a few, undoubtedly the most significant bodies related to TCP all have one thing in common: they all discuss about the (initial) Google proposal to increase IW to 10 or even 16. I think my position is to this topic is more or less known, this time I want to sum up arguments of other folks....

January 28, 2011 · 2 min · Hagen Paul Pfeifer

IETF 80 Prague Registered

“IETF 80”:http://www.ietf.org/meeting/80/ will be held in Prague - and as a early bird I registered today. The advantage of Prague is that I am familiar with the city which makes it easy for me to find a cheaper hotel compared to the standard conference hotels (Hilton: 148 Euro/day, Inter Continental: 140 Euro/day). The hotel in Beijing (“IETF 79”:http://www.ietf.org/meeting/79/) for example costed ~1500.- Euro for 9 days. I hope to find a hotel for about 350....

January 25, 2011 · 1 min · Hagen Paul Pfeifer

Linux TCP Quick ACK 2th Attempt

Back in August I submitted a “patch”:http://kerneltrap.org/mailarchive/linux-netdev/2010/8/23/6283640 to enable/disable the TCP Quick ACK behavior. Linux default Quick ACK behavior is in many cases counterproductive and increase the packet count. Especially short-lived interactive protocols like HTTP will suffer of TCP Quick ACK. For example a interactive HTTP flow of 16 data packets will send one additional but unnecessary Quick ACK packet - 1/16. Accumulated this is not to underestimated! Not sure why big HTTPD users like facebook or $BIGCOMPANY do not tune their stack - do they not question their @tcpdump@ traces?...

January 24, 2011 · 1 min · Hagen Paul Pfeifer

Epoll and Select Overhead

I benchmarked epoll() and select() one more time, this time restricted to _one_ FD which becomes readable. This benchmark reflect therefore the most crucial possible performance measurement. And which came as no surprise, select() perform worse. A possible poll() graph should be equal to the select() graph. But as I said before: I am not interested in poll().

January 23, 2011 · 1 min · Hagen Paul Pfeifer

Mass Parallel Network Processing Architecture

Yesterday and today I wrote an ANSI C program to demonstrate how a non-blocking, threaded network server for current SMP/CMP systems may be structured. The design of the server is constructed in a way that all CPU may stressed and load is fair balanced. All thread local clients are multiplexed via a event loop management wrapper (epoll() or select()). The program demonstrate the most effective architecture for current CMP/SMP server systems....

January 23, 2011 · 2 min · Hagen Paul Pfeifer

Link Equilibrium and Oversized Router Buffer

Jim Gettys wrote an blog entry where he describe problems with a oversized router buffer - he called the problem bufferbloat. Buffer in network equipment exist to catch temporary load peaks and allow proper internal packet exchange from one linecard to another linecard in coexist with the max. bandwidth. In the case where buffers are overestimated the effect get worse during periods of network congestion. Overestimated buffer will shift the problem in time, or in other words: TCP will overestimate the available capacity and normal congestion avoidance mechanisms do not timely take effect....

January 20, 2011 · 1 min · Hagen Paul Pfeifer