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."
Permalink for 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
Member since:

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