Last week there was a small storm on the internet when it was discovered that playing music on Windows Vista caused networking to slow down. Mind you, the slowdown had little practical effect for most users. It was most pronounced on gigabit ethernet connections under load. Still, it was definitely and issue and the blogosphere was talking about it. Yesterday Larry Osterman of the Windows Sound team and Mark Russinovich formerly of SysInternals and now at Microsoft posted about what happened.
The basic explanation is this. Media playback is isochronous. That means it has to be fed data every few milliseconds or it will glitch. Anyone playing sound on Windows XP has probably noticed the sound crackling when the system was doing something intensive. The audio device isn’t being fed for a period of time and runs out of audio to play. Vista doesn’t have that problem. For Vista there is a component which gives priority to the multimedia threads every 10 milliseconds so they can wake up and provide more data to the audio (and video) devices. Unfortunately, this scheduler is implemented in such a way that drivers can still pre-empt it. Some networking drivers were doing too much work all at once which caused audio to glitch. To avert this, the networking system was throttled. This didn’t cause much of an issue for ordinary (100 megabit) networking cards and no issue at all for internet usage (which is usually <= 5 mbps) but did cause a noticeable drop in performance for gigabit networking cards. Mark says the throttling limited the network card to 15 MB/s whereas a 100 megabit connection can only handle 12 MB/s.
Go read the posts from Larry and Mark if you want all the gory details.