Mark Russinovich On Vista Network Slowdown
koro666 writes "In his latest blog post, Mark Russinovich analyzes the network slowdown experienced by some users when playing multimedia content. 'Tests of MMCSS during Vista development showed that... heavy network traffic can cause enough long-running DPCs to prevent playback threads from keeping up with their media streaming requirements, resulting in glitching. MMCSS' glitch-resistant mechanisms were therefore extended to include throttling of network activity. It does so by issuing a command to the NDIS device driver... [to] pass along, at most 10 packets per millisecond (10,000 packets per second)... [T]he networking team is actively working with the MMCSS team on a fix that allows for not so dramatically penalizing network traffic, while still delivering a glitch-resistant experience.'"
Aaah, it's those pesky DPCs in the MMCSS. It's so obvious really.
Get your own free personal location tracker
Slower Network Cards.
Then why exactly XP can handle the music just fine on the very same network card on the very same computer on the very same network?The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
Almost, but not quite. Really, it's Microsoft's drive to appeal to the least common denominator. Dumb end-users aren't likely to notice a speed decrease in their network throughput -- not even a significant one. So maybe they did test it, but ignored any performance feedback about the network because it was ignored as smart power users being 'overly picky', since their target customer requires that the CD cases be printed on drool-proof cardboard.
My blog
Because the standard Ethernet frame size is about 1500 bytes, a limit of 10,000 packets per second equals a maximum throughput of roughly 15MB/s. 100Mb networks can handle at most 12MB/s, so if your system is on a 100Mb network, you typically won't see any slowdown. However, if you have a 1Gb network infrastructure and both the sending system and your Vista receiving system have 1Gb network adapters, you'll see throughput drop to roughly 15%."
That is one of the dumbest things I have heard in a while. Let's see:
What an over-engineered non-solution to what should have been a non-problem in the first place. Microsoft is supposed to employ some of the smartest engineers in the world: can none of them optimise their code?
I find this totally interesting. It goes to the heart of what is wrong with Microsoft these days... All seperate groups of folks, not talking to each other, to try and do "what is best" for the user, and then totally stomping on each other. Instead of really looking at thread management and optimising the kernel, they cludge together something to make multi media work by simplying saying "in certain situations, I can't guarentee the thread because of a crappy kernel, so I am going to tell everyone else to slow down".
It is these sorts of things and things like the teams and teams debating the "Shutdown Menu" in Vista that are really showing Microsoft needs to really change if they are going to survive. It amazes me how a bunch of open source developers with all their own agendas do a better job then a bunch of folks all paid by the same company. Of course then there is Apple of an example of a group that shows you can pull it off and still all look like the same organisation.
D.O.U.O.S.V.A.V.V.M.
I haven't been really on the lookout for it, but I haven't seen any posts explaining that as the cause. I'd expect if that really were the cause, there'd be a much bigger outrage from people and it would have blown up and I'd see articles on it whether I wanted to or not. I don't really see any useful DRM techniques for unprotected MP3s anyway. There'd really be nothing that MS could do with that sort of information.
However, this actually does make sense. In all honesty, they probably would have worked on a better answer than cutting back on networking, but with the time crunch on releasing it, they probably cut corners here and there (and by probably, i mean definitely and by here and there, i mean everywhere). They probably viewed this as an acceptable cut for the time being because for a majority of users, they use very little of their networking bandwidth. If its just a PC connected to the internet, they'd most likely never notice. The only time this would be an issue is for heavy network usage, which would normally only occur on work-related machines because let's face it, aside from geeks and techies, not many people have systems set up that max out their network bandwidth, so, if they were work-related machines, well, they probably wouldn't be playing that much music to begin with.
I'm not a MS shill, though I don't assume everything they do has evil intentions. We have to admit that they are great code writers, just not the best. Just because they do shady things here and there (mostly in business practices however) doesn't mean everything they do is evil. This was a problem they ran into and they made a workaround that would only affect a relatively small amount of their users. They were probably hoping no one would notice it at all until they either A) had a fix or B) just let it go because maybe no one would notice it.
Remember, this wouldn't really slow down your internet unless you have an *extremely* high bandwidth and even then, bottlenecks on the information before reaching you would probably still mask the problem. This is only an issue on system that have heavy network usage on some sort of intranet or other type of local area network, because these would account for the majority of networks that could even use a decent amount of your possible networking bandwidth.
Err...or was that something else?
My blog
Various flavors of Linux can take a flying leap. The mainline Linux kernel is generally in very strong shape, and I say this after spending years loathing many bad choices in Linux. Many mainstream distributions are doing very well too. Most of all, Linux does not compromise basic performance for "rights management", which Vista does.
Vista's worst engineering decision is to make a system optimized for restrictions and money-farming, not for user experience. The WGA breakdown is the best example. The legitimate users who paid a ridiculous sum to use Vista's 'ultimate' features (you know, the ones which are free in Linux and at least standard in MacOSX) had their systems crippled, and the pirates who bypassed WGA were not even affected. The whole feature does exactly the opposite of what it was supposed to do. That's failed engineering, any way you look at it.
Sam ty sig.
As a long-time Linux user (over 10 years) I was always in the "Windows Sucks" camp. Recently I decided to really understand windows at the level of my understanding of Linux. I just finished a 5 year stint doing Linux systems level programming with the latter 2 years doing more on BSD. After reading "Windows Systems Progamming" by Johnson Hart, I was astonished at the complexity of the windows api (win32). Things that are really straight forward with posix programming are a genuine mess with win32. The nubmer of synchronization mechanisms is overwhelming. But after a while you begin to appreciate the flexiblity that the system provides. I decided to move on and buy "Microsoft Windows Internals" by Russinovich and Solomon and am currently reading that. Again, they expose some nasty details of windows and again you'll be saying to yourself, "Oh my god, they over engineered the shit out of this thing." But they continually bring up what the design goals were and again you begin to appreciate what Microsoft has accomplished with windows. Of course you can't expect the system to be flawless. Linux certainly isn't. If you're a windows user, just be glad there are people like Russinovich who can actually understand the windows kernel enough so that Microsoft can continue to make improvements. If you couldn't care less about windows, then I'd still reccomend either book. If you're into Linux (or any posix-like) systems level programming, check out Johnson Hart's book. It's audience is unix converts. If you're just interested in the windows kernel or are a sys admin, check out Russinovich's book. It's really interesting.
it was an IMPOSED, HARDCODED limit WITHOUT ASKING the user. They could just add a registry entry of "maximum network packets per millisecond when playing multimedia files" or something.
Microsoft has a long history of hardcoding stuff without thinking of power users. Remember the 10-limit for open TCP connections per program? They did this because viruses and malware open many TCP connections. "Hey, what about P2P?" "What's P2P?".
- Multiple NICS
- Gigabit NICS
- Multiple CPUs/Cores
Those things just seem like glaring oversights, especially considering how many people have wifi in addition to the mobo's onboard NIC.One thing I don't get is how he managed 41.61% CPU utuilization while transferring a file. Did he have the ethernet equivalent of a winmodem?
[Fuck Beta]
o0t!
One thing I don't get is how he managed 41.61% CPU utuilization while transferring a file
4.4% to draw the moving file animation (it re-reads it every time the anim loops).
3.8% to report to MS about the file you're copying.
2.1% is wasted on old code that constantly scans memory for pictures of rabbits (Balmer is scared of them)
1% is needed for WGA.
2.5% because Vista constantly swaps all application code in and out of the first 640k. Bill still believes its enough.
1.7% to actually copy the file.
the rest is just wasted to make CPU graphs look pretty.
I am a free slashdotter. I will not be modded, blogged, DRM'd, patented, podcasted or RFID'd. My life is my own.
> Let's do some math
Okay. But, math doesn't match up with the numbers you typed.
1,500 Bytes is not the average packet, it's the maximum on most ethernet segments. But, the subject original subject is a stressful network environment effecting music playback. 10,000 packets per second is REALLY cranking the data.. so this isn't simple WWW browsing, etc. This is bulk file transfer. So, a large average packet size becomes more realistic in that environment.. say 1400 Bytes.
1,400 Bytes * 10,000 Packets per second = 14,000,000 BYTES / sec = 112,000,000 bits/sec = 112 Mbps
Obviously, that's not even possible on most common home networks, which are 100Mbps. But, an increasing number of people are doing Gig-E at home, in which case 112Mbps is well within the norms for bulk file transfer.
On modern fast multi-core systems, enforcing a pre-set cutoff for packet rate seems like a poor choice. As the linked article showed, the system had plenty of CPU left and didn't need to be throttled at that low a rate. There are also NIC and Driver factors in there.. others might be more or less efficient than the author's equipment -- offload of parts of packet processing and interrupt minimizing techniques can make a big difference.
In any case.. It's easy to say "that's what you get for using MS / Vista". But, really.. that's true in this case. Windows gives you the lowest common denominator. It's designed to be usable with any hardware, by users of any experience level, and to avoid problems by assuming a worst case scenario. So, that's the kind of solution you get given the assumptions MS uses. As we've seen in the Linux world, the solution is to take great pains to build a scheduler that holds up to ridiculous stresses.
1% to bring them all and in the darkness bind them. In the land of buffers, where the packets lie.
Dewey, what part of this looks like authorities should be involved?
When my old XP HD crashed I was forced to use Vista exclusively for several weeks. It was like my computer was sick and in the hospital. No TV from my ATI x800 All-in-Wonder (though I did get the FM radio working after a week or two), sucky video game frame rates, unstable network card and sound card drivers and crap multimedia playback. P2P kept crashing the network stack.
Some people say that this isn't Microsoft's fault, it's those third party driver writers to blame. I say fuck that, these folks can write good drivers for the exact same computer in several other operating systems. It's Vista's fault.
MS fanboys will all come out and say their systems all work perfectly. Horseshit. I've now had hands on with more than two dozen Vista machines ranging from laptops to upgrades and in every single case, that's 100% MS fanboys, not 99%, not 80%, all of them had stuttering media playback.
There is no excuse for this sort of crap. My goodness it was such a relief to get an XP install back. My computer was perkier and all of a sudden everything worked again.
If Microsoft does not fix this with the mother of all service pack releases rewriting Vista from the core out then my next post-XP os will not be Windows. My best guess is Vista SP1 will be lipstick on a pig rather than the thorough cleaning out that poor excuse for a beta release really needs though.
One thing I don't get is how he managed 41.61% CPU utuilization while transferring a file. Did he have the ethernet equivalent of a winmodem?
No, he had the OS equivalent of a Winmodem.