Linked by Thom Holwerda on Wed 29th Aug 2007 00:28 UTC, submitted by diegocg
Windows Robert Love, a famous Linux kernel hacker, has written a blog entry with his thoughs on the recently posted Vista's network slowdown issue and the explanation given by Mark Russinovich: "Unlike DPCs, however, the Linux parallel does not consume nearly half of your CPU. There is no excusable reason why processing IP packets should so damagingly affect the system. Thus, this absolutely abysmal networking performance should be an issue in and of itself, but the Windows developers decided to focus on a secondary effect."
Thread beginning with comment 266379
To read all comments associated with this story, please click here.
Awful situation
by thecwin on Wed 29th Aug 2007 01:07 UTC
thecwin
Member since:
2006-01-04

This is a network stack redesigned from the ground up? I know complex TCP/IP routing can be processor intensive, but seriously...

Mark goes on to show that copying a file from one machine to another consumes a staggering 41% of the available processor.

I can't imagine what causes this sort of load. This screams denial of service to me; if it's this complicated they should drop the DPC to a lower priority as soon as they can, rather than hanging all other threads on the system.

If something virtually blocks all other threads on the computer, you really want to make sure you keep it's execution time down to a minimum. Routing TCP/IP to the correct application shouldn't be extremely hard unless you've got a very complicated packet filter in place: but this should only really happen on dedicated routers/firewall boxes. 300 MHz P2 boxes seem to handle 1gbps home routing and forwarding on Linux without problem in my experience, and can even function as a streaming media player.

Even weirder, is that rather than looking at virtually every other OS and wondering how they get around this problem without taking 40% CPU, they just create a new sub-scheduler. If all other OSes manage it, why can't Windows... hell they could even take a quick peek at the latest FreeBSD networking code to see what optimisations and algorithms they use. A programmer who doesn't take advantage of the tools available to him is a bad programmer.

Incidentally, is this MMCSS thing just MS speak for "When media is playing it lowers network speed," or is it some scheduler extension. If it is a scheduler extension, why can't these features be available to other non-media related realtime tasks, rather than being media centric; infact, why didn't they just make it part of the scheduler along with the other priority settings? (I'm curious - not just being rhetorical)

Reply Score: 7

RE: Awful situation
by Jimbo on Wed 29th Aug 2007 03:22 in reply to "Awful situation"
Jimbo Member since:
2005-07-22

300 MHz P2 boxes seem to handle 1gbps home routing and forwarding on Linux without problem in my experience, and can even function as a streaming media player.


Wow that 300mhz P2 must have a hell of a system bus. I have a 3.8ghz P4 at work that couldn't get above 40 megabytes per second in throughput. Still very fast, but not very close to maxing out gigabit ethernet.

Reply Parent Score: 1

RE[2]: Awful situation
by Soulbender on Wed 29th Aug 2007 05:19 in reply to "RE: Awful situation"
Soulbender Member since:
2005-08-18

"Wow that 300mhz P2 must have a hell of a system bus. "

Depends almost entirely on the number of packets per second and not on the bits per second. More packets, more interrupts, more CPU load. This is why gigabit nic's have interrupt mitigation and large buffers. If you use large packets you can get very respectable bps on low end hardware.
Still, 1gbps on a 300mhz p2 is suspiciously high.

"I have a 3.8ghz P4 at work that couldn't get above 40 megabytes per second in throughput."

This, on the other hand, is suspiciously low.

Reply Parent Score: 5

RE[2]: Awful situation
by thecwin on Wed 29th Aug 2007 10:09 in reply to "RE: Awful situation"
thecwin Member since:
2006-01-04

That's definitely not normal. Even my Disk I/O is better than that on a 5 year old P4 Linux system (around 50MB/s to a plain old PATA drive). PCI should be capable of 133MB/s and GigE is 128MB/s.

The point is, regardless of throughput speed, the processor time consumption of Linux network code seems to be far lower than that of Vista.

Reply Parent Score: 3

RE[2]: Awful situation
by snozzberry on Thu 30th Aug 2007 23:54 in reply to "RE: Awful situation"
snozzberry Member since:
2005-11-14

Wow that 300mhz P2 must have a hell of a system bus. I have a 3.8ghz P4 at work that couldn't get above 40 megabytes per second in throughput.
As a test when building a Mythbox from a 450MHz P3 (with an Atheros wifi card), I turned on VLC and streamed live TV from it to VLC running on a Mac (wired directly to the wifi router).

Gapless and in sync.

Reply Parent Score: 1

RE: Awful situation
by Almafeta on Wed 29th Aug 2007 04:20 in reply to "Awful situation"
Almafeta Member since:
2007-02-22

Incidentally, is this MMCSS thing just MS speak for "When media is playing it lowers network speed," or is it some scheduler extension. If it is a scheduler extension, why can't these features be available to other non-media related realtime tasks, rather than being media centric; infact, why didn't they just make it part of the scheduler along with the other priority settings? (I'm curious - not just being rhetorical)


The Multimedia Class Scheudler Service is built into the scheduler. Any task in Vista can register itself with it to ensure that task is not interrupted.

I'd imagine that on a Vista-based server (if such an animal exists -- I'd imagine most servers are still on Windows 200X), the process that did the actual serving would be using this class to make sure that it never dropped, while non-critical and unimportant tasks (the GUI, background maintenance tests) were executed as secondary tasks.

Reply Parent Score: 1

RE[2]: Awful situation
by PlatformAgnostic on Wed 29th Aug 2007 04:50 in reply to "RE: Awful situation"
PlatformAgnostic Member since:
2006-01-02

MMCSS is not integrated with the scheduler. It's a usermode hack. It's a service that runs with high privilege that adjusts the priorities of other services. It is not useful for a server and likely won't exist on WS2008.

Reply Parent Score: 3

RE: Awful situation
by mnem0 on Wed 29th Aug 2007 09:12 in reply to "Awful situation"
mnem0 Member since:
2006-03-23

hell they could even take a quick peek at the latest FreeBSD networking code to see what optimisations and algorithms they use. A programmer who doesn't take advantage of the tools available to him is a bad programmer.


Microsoft programmers are not allowed to look at any external source code at all, not even BSD licensed code. There are exceptions of course, for instance zlib is available internally, but those exceptions are only granted by Legal and Corporate Affairs (LCA) after extensive IP vetting. The problem for Microsoft, as always, is liability and IP taint; they are scared that if they take ideas and/or code from BSD etc someone might claim it's some kind of patent infringement or similar. They deploy this policy world-wide because even though far from all countries recognize the patentability of software, Microsoft still needs to distribute its software globally which include the US market with its insane legal climate.

Reply Parent Score: 5