Problems with QueryPerformanceCounter on Windows Server 2003 Multi-Processor Hyper-V guests? Problèmes avec QueryPerformanceCounter sur Windows Server 2003 multi-processeur Hyper-V invités? Here’s why. Voici pourquoi.
A friend of mine from another group came to me with a problem he’s been having on some Windows Server 2003 guests. Un de mes amis à partir d'un autre groupe est venu vers moi avec un problème qu'il a eu sur certains Windows Server 2003 invités.
They’re doing some nifty stuff with the .NET Ils font des trucs astucieux avec. NET Stopwatch() Chronomètre () class, and some WPF animations, which uses the classe, et certaines animations WPF, qui fait appel à la QueryPerformanceCounter Win32 API to figure out the timing during the animations. Apparently, when they run their code in Hyper-V, the animations look sort of… not good. API Win32 de déterminer le calendrier pendant les animations. Apparemment, quand ils dirigent leur code dans Hyper-V, les animations Rechercher sorte de ... pas bon.
They’re using Windows Server 2003 SP2 x86, which has been allocated two virtual processors. Ils sont l'aide de Windows Server 2003 SP2 x86, qui a été consacré deux processeurs virtuels.
It turns out that our performance guru, Tony Voellm, has already encountered something like this. From Tony’s Il s'avère que notre guru de la performance, Tony Voellm, a déjà rencontré quelque chose de ce genre. De Tony's blog post blog :
The root issue comes about from the Win32 QueryPerformanceCounter function. By default it uses a time source called the TSC. This is a CPU time source that essentially counts CPU cycles. The TSC for each (virtual) processor can be different so there is no guarantee that reading TSC on one processor has anything to do with reading TSC on another processor. This means back to back reads of TSC on different VP's can actually go backwards. La racine est fondé sur la question de la fonction Win32 QueryPerformanceCounter. Par défaut, elle a recours à une source de temps appelé le TSC. C'est une source de temps CPU qui compte essentiellement les cycles de l'UC. Le TSC de chaque (virtuel) processeur peut être différente si il n'y a aucune garantie TSC que la lecture sur un seul processeur a quelque chose à voir avec TSC lecture sur un autre processeur. Cela signifie dos à dos de lectures sur les différents TSC VP peuvent effectivement revenir en arrière. Hyper-V guarantees that TSC will not go backwards on a single VP. Hyper-V garantit que TSC ne sera pas revenir en arrière sur un seul vice-président.
The fix for this is to modify the guest’s BOOT.INI file by adding the Les correctif pour ce est de modifier l'invité du fichier BOOT.INI en ajoutant la /USEPMTIMER / Usepmtimer switch to your operating system’s boot entry. This tells the system to use a different timer for QueryPerformanceCounter-related tasks, and should alleviate the problem. passer à votre système d'exploitation de l'entrée de démarrage. Cela signifie que le système d'utiliser une minuterie pour les différents QueryPerformanceCounter-tâches connexes, et devrait atténuer le problème.
Written by mikekol. Ecrit par mikekol. Read more great feeds at is source Lire plus grand flux à la source est WEBSITE SITE WEB
no comments Pas de commentaires . .
Read more articles on Lire d'autres articles sur Hyper-V RTM Hyper-V RTM and et otherSoftware otherSoftware and et Miscellaneous V Divers V . .
- [+] Digg [+] Digg : Feature this article : Feature cet article
- [+] Del.icio.us [+] Del.icio.us : Bookmark this article : Bookmark cet article
- [+] Furl [+] Furl : Bookmark this article : Bookmark cet article















