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
Once again, over-complication and stupid engineering lead to a humiliatingly bad operating system. It's obvious it didn't receive a modicum of real testing.
Sam ty sig.
So why can my Windows 98/95/2000/ME/XP computers play mp3s without this happening?
Not a Twitter sockpuppet... but I wish I was.
10,000 packets/second ought to be enough for anyone.
"No one likes working in a hamster wheel, and your shop smells of cedar shavings from here." - TaleSpinner
I have [Cancel][Allow] no idea [Cancel][Allow] what slowdowns they [Cancel][Allow] could possibly be [Cancel][Allow] talking about!
I read many posts on this very forum explaining that it was due to calling home and DRM. Clearly this article is nothing more than a smokescreen.
Sounds like Linux isn't the only OS that could benefit from network channels ..
lol microsoft
Can't wait until the "glitch-resistant mechanisms" migrate throughout the rest of the Vista. It's gonna be awesome!
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.
What I took away from that was "Windows has to go slow to work." Shocker.
While I'm pretty sure his explanation is correct, does anyone else find themselves reading Mark Russinovich's explanations with a healthy-sized grain of salt ever since he went on MS's payroll?
This guy's the limit!
Why should Vista have any problems playing audio and videos?! I have an ancient 550Mhz PIII with only 256 megs of ram running W2K and it plays MP3s and video (divx and xvid) much more smoothly than my wife's Vista system (2600+ AMD, GeForce 6800XT 512MB 256-bit GDDR2, 1.5 gigs Ram). My wife's system used to run XP Pro and it rocked for everything, including games. Now even old games such as Sonic Heroes will barely run on Vista.
I gave it an honest chance, but Vista is a turd. If it can't play decades old MP3 technology MS should really give it up.
If someone says he and his monkey have nothing to hide, they almost certainly do.
This reminds me of the classic way program managers attack problems; they don't think about what the problem really is, nor do they care. They were given a problem to solve, and they take the shortest (easiest/cheapest) path to fix it.
The *symptom* is that Vista will glitch multimedia playback under certain circumstances.
The *issue* is that multimedia is too costly on system resources.
The *answer* is to streamline the way that Vista processes multimedia. A dual core Intel processor with 2 gig of memory should handle gig ethernet file copying, playing blu-ray disks, serve as a network router, and render video all at the same time. The idea that handling interrupts from a network card causes MP3's to glitch should be a cause of concern to both Microsoft and it's customers.
Perversely though, Microsoft took exactly the opposite approach... since multimedia is so slow, they handled it by starving everything else and giving even more CPU time to multimedia. Which solves the symptom, but doesn't actually touch on the issue. I think the real fear is the DRM layers that are built into Vista are at the root of this problem. If so, it's going to take a helluva service pack to make Vista as good as promised.
You were mistaken. Which is odd, since memory shouldn't be a problem for you
Microsoft should hire Con Kolivas to fix their Completely Unfair Scheduler :)
http://www.ubuntu.com/getubuntu/download
Laughable...
Do they have 15 year olds designing their operating system?
Deleted
If this isn't "defective by design", I don't know what is.
As goes without saying, arbitrarily throttling one particular task, at some arbitrary level, is the wrong thing.
Perhaps this could go in Wikipedia under "Kludge"?
....it's got to be the biggest let-down of all time.
:D
The shut-down menu, that is...
"Bill, Bill! I'm sorry! I didn't mean it! Come back!"
*repents*
throw new NoSignatureException();
Have you heard anyone under the age of 40 who uses the word 'glitch' to describe undesirable behavior in machinery? Everyone over 40 remembers the modem days so bandwidth issues aren't a big surprise, either. Just another sign that Microsoft is truly the proverbial dinosaur.
(says the guy who just turned forty)
[
while still delivering a glitch-resistant experience
The brain implant seems to work - welcome to MSWorld.
Well, I use and love some MS software like the next guy.
You mean, not at all?
There's good reasons to attack Microsoft. Its business practices, internal workings, and products have a history of abuse, contradiction, and stupidity behind them. I wave no flag for Microsoft and Vista is a pain in the ass that's priced itself out of the market but the look and feel of Slashdot is heading for the basement. I'd be careful of this because when Microsoft sort themselves out the only thing you'll be left with is hate. As that has nothing to grip on people will see it for what it is and walk away.
Microsoft is focused on improving its products and reaching out to new markets. Meanwile, the comments on Slashdot continue to get less informative and relevent to people outside its core audience. From being some great visionary power that could tear down someone's server with the mere waving of a hand it's become the problem. It has no clear forward vision and most servers just shrug off the famed Slashdotting. Microsoft has changed. The world has changed. Meanwhile, Slashdot just tears itself up in frustration.
Wake up.
I think this is a great example of why the open source development model will lead to better outcomes. Microsoft apparently tweaked Windows for profit instead of to improve efficiency or user experience. This design flaw would have been identified immediately in the open source world and would have been rightly discarded.
you polluting whores! When a coin in Al Gore's coffer rings, a soul from environmental purgatory springs. Every knee must bow to the church of Gaea!
I know I'm old, but really, squashing network performance so the user gets to hear their mp3. Maybe for a user who is a musician the music aspect is the most important use of the machine. I think it shows the real roots of windows is for home use, not biz use. You'd think the PHB's woulda figured that out by now. If employees really want to listen to music while working, get their own ipod or other music player.
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.
Oh noes, don't let this guy get his hands on it!
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.
In the interest of getting a fix out quickly, I have carefully considered the problem and suggest changing 10 to 11 or maybe 12.
Oh, I see now. Lovely. This is like turning on your headlights and dropping down to 30 mph.
OK - well that was how those old 6v Beetles worked...
"Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
It's incorrect. Did no one even bother to calculate the drop-off? Was there not one single engineer amongst them who ever said "Hey, you know, Gigabit is pretty popular these days."?
10Gb is starting to get out there too. Granted, it's not likely to be hitting end-user boxes for a while, but you'd think somebody at Microsoft might've stopped to do the math on that one.
"It is a miracle that curiosity survives formal education." -Albert Einstein
Fix for increasingly lame 'LOL FIX M$ VI$TA BY DOWNLOADING LINUX' posts can be found here.
"It does not do to leave a live dragon out of your calculations, if you live near him." - Tolkien
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?".
My pocket watch plays MP3s while keeping time, as well as keeping track of my schedule, so why is it my top of the line dual-core machine with 4gb of ram, the fastest disks on the planet, and the newest, most innovative, most secure, and best operating system there ever was can't do the same? OMG... It's a virus... "format c:"... all better... *wry sarcasm*
I'd had two CPU's and Gigabit Ethernet for three years by the time that Vista was on sale to the public. That's not simply "short-sighted with respect to today's systems", that's a total let down to businesses who have high-performance workstations.
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)...
So... could this be used as another attack vector for denial of service?
It's called a "power switch".
While I was a consultant years ago during college, a co-worker had an old 486 machine and had Winamp playing a file off of a 3.5" floppy disc and it worked perfectly.
Sure, video (especially HD content) has much higher bandwidth demands, but local video playback has NEVER been a problem on any machine I've owned in the last 10 years. I remember IBM thinkpads with PII 266 processors that could easily play DVDs.
The only explanation for Vista's media playback design decision must be to compensate for the huge processing overhead that Vista creates. Poor fundamental design decisions necessitated hacks like this prioritization scheme.
-ted
What happens if the user stores their multimedia content on a file server, and then tries to play them on a laptop by streaming the data across the local network ?
On our home network we have a file server with a large RAID array connected to a GigaBit ethernet switch. All our images, audio and video files on the server, and we view them on our desktop or laptop machines. None of this is specialist equipment.
No, not at all: http://en.wikipedia.org/wiki/X11.app And this really isn't the first time that MS fucked up. Not by a long shot.
i do understand their idea. media that stutters (espencially audio) can be terrible (espencially, as i'm a dj using computer hardware for music). but what i'm sad is, their new system doesn't even work in those cases. every singlecore system i ran vista has stuttering in it's audio. dualcores have no such issue. my mom bought a notebook wich runs pretty well, but is singlecore. she can't even watch youtube or listen to something in itunes without stuttering. so much for their glitchfree system. poor networking performance? okay, but i don't even get glitchfree audio for that price.
I guess we see now why Vista was delayed as long as it was. How many more over engineered "features" were included with the OS?
In general this sort of feature needs to be configureable. You can't just go around arbitrarily knee capping peoples performance because of some scenario that only 15% of your user base is going to experience. I wonder if Microsoft even bothered to test this feature to find out which configurations it *was* really needed.
I have a Quad Core FX-70 with GbE. I get 107 MByte/s (peak) and 95 MByte/s (average) between one of our servers and my workstation. With audio playing, that goes down to about 12 MByte/s. My question is really, why on earth would Vista throttle anything on a machine like mine!? It just doesn't make any sense.
Or so they'd like us to think!
This "design" makes absolutely no sense and I find this explanation hardly credible. Either this is deliberate obfuscation of some underlying DRM nonsense that vista is doing (sending your media streams straight to MS servers?) or this is a very very very bad engineering design decision without any sort of performance studies, or vista's kernel is so hugely bloated that it shits itself when trying to network and play music at the same time.
Whatever the case, my old Win2K machine with 256megs of RAM and a gig-E card runs rings around this big fat mother being able to play media, video and give me great network performance at the same time.
Although I think some kind of multimedia-aware scheduler is absolutely necessary, it simply looks insane to hard code the network device to drop the rate to 10k packets/sec. This makes me sort of feel like they added MMCSS on the last moment of vista design, or they simply didn't think hard enough.
There can be two possible solutions
1) dynamically change the packet rate depending on the multimedia workload/processor/whatsoever
2) dropping network packets not on the NDIS, but on the TCP/IP driver, which starts dropping packets when multimedia processes runs out of processing power
Yes, I understand that your PC plays mp3s without any problem even on a GB ethernet connection. However, I don't think the MMCSS is a flawed concept/unneeded feature/whatsoever. The MMCSS is for improving multimedia performance on EXTREMELY heavily-loaded processors. I use XP, and my PC is occasionally heavily loaded with a dozen threads, and in those cases I occasionally experience glitches. Thus, I have to manually adjust thread priorities, but it's annoying anyway.
The problem is a flawed implementation - nothing else.
ps : I wish there was some method to reserve some processing power for launching taskmgr, so that I can kill problematic processes with ease. Any suggestions?
Fan noise of Vista machines should be enough music for anybody.
The best part is that the MMCSS service claims to depend on the Windows Audio service, so you can't turn off this "feature" without disabling the audio stack. Of course if you dig into the registry and remove this dependency you can then turn off the service and still have normal audio, so they say.
I promise this is the only braindead hardcoded constant in Vista.
See, it's not a bug -- it's a design tradeoff.
Who uses gigabit anyway?
We spent seven man-years on that Vista sound -- it has to play smoothly.
10k packets/second ought to be enough for anybody.
Thanks! I'll be here all week. Tip your waitress.
Help stamp out iliturcy.
Just what is a "glitch-resistant experience" ? Before he was in M$ payroll, Mark would have called this something else. Sorry, but his "technical authority" value, that Microsoft are hoping to use to explain away their bugs, has lost all value now he's making their excuses for them.
It's cute that you were expecting any different. Is this your first new MS OS? It can't (13249) be.
Over engineered is not one of the ways I would describe this feature.
Help stamp out iliturcy.
Now I understand that when Gates said "640k should to be enough for anybody" he meant the network throughput!
If there any other limits in the networking stack at VERY high speeds.
..... -- fill in your standard rant about closed source drivers here..
One thing i notice here is that the number of packets is limited in the kernel. On high speed connections on the internet i have been testing with, there also seem some limits on XP SP2. i.e. it seem to misbehave when setting a large socketbuffer size.
I wonder what limits more there are since SP2 to protect users.
Also mark thinks that you can never reach high speeds over 100Mbit over the internet. This is of course a bad assumption since servers with 1 Gbit connection and faster are connected to the internet nowadays. Not typical machines where you would play sound, but again a bad assumption.
Ok, that is a sending limit, and it seems this was a receiving limit. But if the receiving is limited there is no point in optimizing the sending limit.
I don't think that you could convince Microsoft to change their code to allow software who's primary usage is piracy, including that of Microsoft products. In fact, I think this particular behavior was indeed by design.
Well.. maybe. Or Maybe not. But Definitely not sort of.
I wonder if this 'fix' that they created has ever worked at all, or that the author worded it badly. He states that the throttle would not be noticeable with a 100Mb connection. If the user does not notice, how would the computer notice? Would the sending party start putting more data in the packets to compensate for the throttling?
Anyhay, is is bad engineering and SteveB should be publically flogged for it (oh nos, SteveChairMans blubber on display! Oh the huge manatee!)
This space is intentionally staring blankly at you
1.) Poll all your executives for their pet peeves concerning email clients
2.) Poll all your Fortune 100 client executives for theirs.
3.) Assign every single feature request, no matter how silly, to a different programmer
4.) Cobble it all together and ship it as Outlook.
I suspect they do the same thing with Windows only they use grandmothers, teenagers, & copyright holders instead of executives.
On my old Mac running MacOS 9 (Classic Mac to you OS X weenies), glitches playing MP3s while networking? Don't get 'em. Transfer slowdowns? Never happens (do you notice when a turtle is having a slow day? I think NOT!) Good thing my Mac does not have a floppy though, because on a Mac if you save something to the floppy, ZOMG, hold the presses! The world has to come to a screeching halt while we access the almighty floppy drive. The floppy is so glorious I guess it deserves the Mac's entire attention! That's not so much a bug as it is Apple's telling you to stop using antiquated unreliable floppies in the first place; consider it a feature.
Seriously though: When was the last time you saw listening to an MP3 slow down network transfers in either OS X or Linux by 80%-90%? Oh, sure, OS X and Linux both have their warts (especially Linux) but cooperative multitasking-like performance is not one of them.
Dual core processors are ENTRY LEVEL now, folks, and DMA transfers are old hat! There is no reasonable excuse for audio playing to bring a modern PC to its knees.
This is patently ridiculous. If Microsoft has a problem with their a/v sub-systems, they should fix them, not slow another part of the system's performance.
In fact, if you want "smooth playback" and have the bandwidth, you can ditch compression entirely and your CPU utilization will improve dramatically. Apparently they've never even heard of DVTS, VideoLAN, or any other types of high-performance, high-bandwidth A/V.
You mean like how a MediaCenter PC works? I think the short answer is that MSFT is saying F U! I am usually up for defending MS decisions, but this feels a lot like some of the things I've seen R&D teams come up with when left to their own devices with no true reality check. It rubs me way the wrong way.
Summary notes in italic. Comments in normal text.
The network throughput can cause latencies in multimedia playback. (he shows the CPU going to ~40% "while copying a large file" O_O) So the multimedia scheduler (MMCSS) throttles network throughput. By default, this shouldn't be visible on 100Mbit connections. It *is* visible on gigabit connections, by throttling down 15% of max bandwidth.
I've never seen anybody use max Gigabit bandwidth, but I only observe casual-moderate usage.
HOWEVER, there's a bug that makes throttling much worse when there are multiple NICs (just present or in use isn't specified). I suppose this is common today, with people having both wired and wireless connections.
He shows us a nice graph of network usage going from 20% to 6% upon starting a multimedia application, on a 1gb connection on a laptop with 3 NICs.
The hard-coded throttling values were shortsighted, established for slower single-cpu, 100Mbit systems.
People are all chiming in with examples of old PCs doing the same job without throttling. Without the scheduler bug, Vista should only show problems with heavy Gigabit throughputs. Anybody try that out? I'm especially curious as Russinovitch only got to 20% usage on a Gigabit connection. I don't mean any judgment either way.
Misleading titles? Inflammatory blurbs? Keep in mind that Slashdot is a tabloid.
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.
Some reasonable person with diverse real-world experience and generally balanced opinions.
What a refreshing change.
What happens if the user stores their multimedia content on a file server, and then tries to play them on a laptop by streaming the data across the local network ?
Unless we're talking uncompressed content, chances are the 12MB/s (96Mb/s) that is the limited speed most people have been reporting will be adequate. Assuming you're not trying to do anything else at the same time.
E.g., I regularly stream both audio and backup images from a remote file server to my workstation, so I can listen to music while waiting for the backup disk to fill up so I can switch it to the next one... glad I'm still on XP, here.
"I cannot play mp3s or video without stuttering on Vista with a dual core 2.4 GHz CPU, 4 GB RAM, 500 GB SATA drive"
Have you considered the possibility some/one of your drivers/codecs may be at fault here?
Vista runs sweet for me. It's snappier than XP was in fact.
throw new NoSignatureException();
As written in the article...
Besides activity by other threads, media playback can also be affected by network activity. When a network packet arrives at system, it triggers a CPU interrupt, which causes the device driver for the device at which the packet arrived to execute an Interrupt Service Routine (ISR). Other device interrupts are blocked while ISRs run, so ISRs typically do some device book-keeping and then perform the more lengthy transfer of data to or from their device in a Deferred Procedure Call (DPC) that runs with device interrupts enabled. While DPCs execute with interrupts enabled, they take precedence over all thread execution, regardless of priority, on the processor on which they run, and can therefore impede media playback threads. They're saying that every packet received causes an interrupt request, which causes the CPU to get loaded at high transfer speeds.
Apparently they haven't heard of interrupt moderation or polling, technologies that are used by network cards to offload the CPU.
Even my Marvell semi-hardware (I think) Gigabit on-board network card used about 14% CPU (Barton 1833Mhz) when transferring files at about 45Mbps.
I don't know, everything seems really stupid, and I'm not sure it's just a "bug", or their description is just a part of what really happens behind the scene.
How is Vista an improvement if the OS can't multitask network connections and media playback?
Linux has had this feature for quite some time, and even XP has this ability.
It's You and I against the World... When do we attack?
I'm still laughing at how poorly this is implemented and it is what year? 2007! What idiot at Microsoft gave this 'fix' the OK for a shipping operating system and one they charge money for? And a laugh goes out to the suckers who are buying this crapware called Windows Vista.
nice work on the investigations Mark.
LoB
"Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
If it's so "overengineered" then why did this crap happen? With all their wonderful "synchronization mechanisms", etc, surely they just need to put the sound at a higher priority than the networking and let the task scheduler sort it out.
Sound only needs about 1% of a single CPU...yet this problem is still happening on quad core machines.
No sig today...
Back when sysinternals was still independent, Mark provided real information with real criticism when things were wrong. Apparently, things have changed.
His "analysis" here is not much more than a series of rationalizations and excuses:
"Network DPC receive processing is among the most expensive, because it includes handing packets to the TCP/IP driver, which can result in lengthy computation. The TCP/IP driver verifies each packet, determines the packet's protocol, updates the connection state, finds the receiving application, and copies the received data into the application's buffers." (emphasis mine)
The issue at hand is related to gigE NICs. Please find me a single gigE NIC that does not support TCP/IP checksum offload (even the lowly Realtek does).
His graph showing 40% CPU utilization during a file copy must be a joke or an admission of a dismally performing network stack. There are only 2 possible explanations for that number:
1. His file copy was saturating a 1gigE link - if you've saturated the link, 40% is not great but is decent. However, the test is not applicable to most people who've seen the issue. It also means there is another 60% of the CPU for processing audio - that should be plenty.
2. His file copy was nowhere near saturating the link and Vista's network stack is horribly inefficient. My experience with pervious incarnations of Windows (2K, 2K3 and XP) has shown that under ideal conditions a single file copy will max out (because of inefficiencies in CIFS but that's another story) at ~35MB/s (roughly 1/3 of a gigE link in one direction). If Vista performs at roughly the same rate, then 40% CPU for 35MB/s is terrible. No wonder there is a degradation problem that required network throttling.
Looking down further to the NDIS packet graph, it appears that it is indeed explanation 2 that is correct. Peak throughput through the system was 24.6MB/s (17215*1500). If this test was similar to the CPU test for the previous screenshot, we are seeing 40% for 24.6MB/s. It appears the system will saturate its CPU at 50MB/s half-duplex?!? That's horrible. Or Mark is showing different numbers from different tests. I'm not sure which I want to believe.
Something appears to be very wrong with the network stack in these experiments. I don't have Vista. Can anyone test this?
Wouldn't it have been easier to say that if dual processors or more are present, one processor is dedicated to playing the music, while the other processors continue handling all other functions? That's a better division of labor than we see in Windows now, and even the lowest end dual processor systems have enough oomph in any single processor to handle this well.
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
P2P is also widely used to dowload free software! Mainly Linux distros! Oh... Nevermind.
Rethinking email
And 1% to rule them all, and in the darkness bind them.
404555974007725459910684486621289147856453481154 in hex is "You sank my Battleship?"
[GPG key in journal]
We're not running on 75Mhz Pentiums anymore.
All goes to show what a load of junk Vista is, bad design, bad execution.
I can churn out 12 96Khz 24-bit audio channels on Firewire and still download things from the net, but then I'm using Mac OSX.
[100% ISO 646 Compliant]
SVM, ERGO MONSTRO.
http://courtneymalone.com/2007/08/28/a-note-on-vis ta-network-speed/
So, basically the GP poster was right: 1% goes to WGA.
GPG 0x1B479C78
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.
Assuming all packets are maximum size (eg, bulk file transfer). Some workloads have average packet size well below that. I've found Microsoft estimates for streaming audio packet size below 1000 bytes.
When a multimedia application begins playback, the multimedia APIs it uses call the MMCSS service to boost the priority of the playback thread into the realtime range, which covers priorities 16-31, for up to 8ms of every 10ms interval of the time, depending on how much CPU the playback thread requires. Because other threads run at priorities in the dynamic priority range below 15, even very CPU intensive applications won't interfere with the playback.
An audio playback thread should require negligable CPU time. All it should be doing is queueing up buffers for the I/O device. Unless the audio buffer size is fixed and ludicrously small, the playback thread shouldn't even need to wake up at all in any given 10ms interval, nore require a fraction of that time when it does wake up.
While DPCs execute with interrupts enabled, they take precedence over all thread execution, regardless of priority, on the processor on which they run, and can therefore impede media playback threads.
This seems like an odd design. The whole point of a multithreaded kernel is to avoid this kind of thing. Standard UNIX TCP processing operates in this kind of regime, sure, but it was designed for a monolithic kernel. The Windows TCP stack started out that way, but people from Microsoft have claimed that the BSD networking code was turfed from Windows NT back in the '90s.
As far as I understand the issue, any application can register a thread with MMCSS (or whatever it's called) and, possibly with the provision of issuing some silence to the audio mixer / driver in order to avoid being caught, it can then be sure that the thread gets most of the CPU time.
Vista Viruses will have a multimedia angle, I presume.
I speak England very best
That was the sound of the hypersonic trans-atmospheric sarcasm bomber leaving you smouldering under a mushroom cloud.
"Copy a file over a gigabit network on a 2ghz P4 and tell me with a straight face that the processor was able to keep up..."
Depends which OS. If we're talking Vista, then you're right.
It took 15+ minutes to copy a 2GB SD card to my dads Dell Laptop with Vista, using the built in SD card reader. It only takes 1-2 minutes on my XP machine. As far as I am concerned Vista is nothing but very bloated POS that gives me nothing more than eye candy.
If you could reason with religious people, there would be no religious people
LIFO? FIFO? It's a scheduler, it doesn't matter which one you use, right?
2. Because it's had a monopoly for a long enough time to develop a HUGE base of 3rd party apps that run on it exclusively.
3. Because people don't realize that it's not "them vs. Microsoft", it is "them and everyone else that dissents", and thus - they don't dissent.
Thank God for Vista. It's finally become uncomfortable enough that the cattle notice. Thank God for Ubuntu. It's finally become comfortable enough to switch that most people are really glad once they do. Linux (and not just Ubuntu) - Thanks.
Well according to Adrian Kingsley-Hughes at zdnet http://blogs.zdnet.com/hardware/?p=702 the network even goes down for system sounds. That means every single ping and whatnot will slowdown the network transfers. The next thing is he mentions that every time the sound stops the network stops for a short moment as well. How can you play games like this. Wouldn't this be a huge problem? The whole design of this seems like big ass fuckup.
We've been over this already a 1M (10e6) times already. KB stands for kilobyte, and it means 1000 bytes. KiB stands for kibibyte, and it means 1024 bytes.
Thus, 1.5KiB = 1536 bytes, but 1.5KB = 1500 bytes
fsck. I meant 10^6, not 10e6. :(
Slow Down Cowboy!
Slashdot requires you to wait between each successful posting of a comment to allow everyone a fair chance at posting a comment.
It's been 24 minutes since you last successfully posted a comment.
How's this flamebait?
The reason I mention drivers/codecs is because I had to replace both to get decent dvd playback. It's not flamebait; the fact is Vista is perfectly capable of smooth video/dvd playback.
throw new NoSignatureException();
Um, this was comment number FIVE and none of the previous four even remotely say anything similar. There's always one incompetent mod in every crowd, I guess.
Put taskmgr in the Startup folder as previously mentioned, but do the following instead:
1. In Windows NT Task Manager, click Options - Hide When Minimized.
2. On the shortcut you placed in the Startup folder, right click it and click Properties, then click the Shortcut tab. See where it says Run - Normal Window? Change that to Minimized.
Now it's always in the systray, and at any given moment, you get the benefit of seeing how much CPU is in use, without taking up a minimized window icon on the taskbar. Double-click when you need it, or press Control-Shift-Escape.
This works on all versions of Windows NT since 4.0.
Other device interrupts are blocked while ISRs run, so ISRs typically do some device book-keeping and then perform the more lengthy transfer of data to or from their device in a Deferred Procedure Call (DPC) that runs with device interrupts enabled. While DPCs execute with interrupts enabled, they take precedence over all thread execution, regardless of priority, on the processor on which they run, and can therefore impede media playback threads.
OK, we're making some progress. At least the kernel isn't actually doing much at interrupt level any more. But apparently the "DPC" mechanism in Windows doesn't go through the regular dispatch mechanism, so it's not subject to normal priority control. Not so good.
In QNX, where everything that takes any significant time is in user threads, you can get stuff like this to work right by adjusting priorities. You can run your real time code at a higher priority than some drivers, and that's routinely done in demanding applications. But QNX users are forever fussing over thread priorities. You see QNX bug reports like "We did 100 million thread activations from interrupts and two of them took more than 100us before a response. What's wrong?" That sort of complaint gets taken seriously, too. So that's how it's done in the hard real time world.
What's really needed to make this user-friendly is explicit sporadic scheduling. A "sporadic scheduler" lets a thread request NN ms of CPU time every NNN ms. Sporadic scheduling requests are rejected if there are insufficient resources currently uncommitted. If the request is accepted, the thread is guaranteed its slot. Threads that overrun their slots drop in priority and may be preempted. Applications like games and media players have to calculate how much resources they need and request them, or tell the user "Can't open another media window - computer too busy". If the app overruns its time slot, the app mis-estimated, and it's the app's fault. This requires designing media apps for predictable CPU consumption, which is standard hard real time program design.
QNX has sporadic scheduling, although it's not used much. It's most useful when the load is somewhat unknown, as on the desktop, rather than in embedded systems. Something to think about for Linux. I wonder if Apple's OSs have sporadic scheduling; I'll have to ask some people I know there. They hired some QNX people for the iPhone, because they needed hard real time expertise.
If I copy a 600 MB file from HD to external USB2 drive, I noticed that I cannot do any networking until the file copy is finished.
DNS queries, telnet, web all stop.
When file copy has ended, they suddenly all start working.
Anyone else have that ?
(XP SP2)
But seriously, regardless of what the actual mechanism is, what impact does this have in the business arena? Most of my work is done on network attach storage. Does this mean that while the system is playing a system noise or voicemail, access to my data is severely reduced? What if I don't *care* whether voicemail is of the highest fidelity, while I very emphatically care that access to NAS shares is unhindered?
Moreover, it seems to me that there is the potential of a deadly embrace if the sound being played is originating on the network, and the audio driver throttles back the network to preserve sound quality, which starves the driver, which throttles the network further, in a feedback loop. How does this issue manifest itself in netmeeting-like situations?
My place of employment has been avoiding Vista, so I don't have an opportunity to experiment with the above. What have others seen?
Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
I know it's probably not possible now, but I just want to put the idea in your head...
KDE is not ported to Windows. But, if all they do is office, and you've already got them using Openoffice... if Outlook is the only other thing holding them back, they could move to Linux in order to use the KDE suite. Including, maybe, KOffice.
But maybe I'm just overly optimistic because I just managed to get my favorite MMO to run on vanilla Wine, instead of Cedega, for an absolutely amazing improvement. It now Just Works, every bit as well as on Windows. It's rock solid, reliable... and ancedotal. Still, it's something to be optimistic about!
Don't thank God, thank a doctor!