Augmentation du temps d’interruption & données Isoch de flux DPC vers ou à partir d’un appareil IEEE 1394

Cet article vous aide à contourner le problème où une augmentation significative de l’utilisation du processeur (interruption & temps DPC) lors de la diffusion en continu de données isochrones vers ou à partir d’un appareil IEEE 1394.

Version du produit d’origine :   Windows 7, Windows Server 2008
Numéro de la base de connaissances initiale :   2450963

Symptômes

Vous pouvez observer une augmentation significative de l’utilisation du processeur (temps d’interruption et de DPC) lors de la diffusion en continu de données isochrones vers ou à partir d’un appareil IEEE 1394 avec un pilote de bus Windows 7 IEEE 1394, comparé aux versions précédentes du pilote de bus Windows IEEE 1394.

Cause

Dans certaines conditions, le pilote de bus IEEE 1394 Windows 7 (1394ohci.sys) programme le contrôleur d’hôte IEEE 1394 pour générer une interruption et un DPC (appel de procédure différé) résultant pour chaque paquet isochrones envoyé ou reçu. Dans des conditions similaires, le pilote de bus Windows IEEE 1394 hérité (ohci1394.sys et 1394bus.sys) programme le contrôleur d’hôte IEEE 1394 pour générer uniquement une interruption et un DPC à la fin de chaque transfert isochrones (cadre) désigné par le pilote de périphérique IEEE 1394 qui initie les transferts isochrones.

Un transfert de données isochrones nécessite généralement plusieurs paquets de données isochrones pour transférer une unité de données significative, telle qu’une image vidéo ou un échantillon audio. Un pilote de périphérique IEEE 1394 peut être averti lorsqu’une telle unité de données significative a été transférée en spécifiant une routine de rappel dans la structure de descripteur Isoch utilisée pour décrire la mémoire tampon utilisée pour ce transfert. Cette structure de descripteur Isoch est soumise au pilote de bus Microsoft Windows IEEE 1394 via une REQUEST_ISOCH_ATTACH_BUFFERS demande d’e/s et est utilisée pour programmer le contrôleur d’hôte ieee 1394 afin d’effectuer le transfert isochrones demandé.

Le problème décrit dans cet article se produit lorsqu’un pilote de périphérique IEEE 1394 soumet des descripteurs Isoch qui décrivent chacun un seul paquet de données, au lieu de descripteurs Isoch qui décrivent plusieurs paquets de données, tels qu’une image vidéo complète ou un échantillon audio. Dans ce scénario, plusieurs descripteurs Isoch sont attachés par le pilote de périphérique IEEE 1394, un par paquet et une routine de rappel est uniquement spécifiée dans le dernier descripteur Isoch.

Par conséquent, le pilote de bus IEEE 1394 Windows 7 appelle uniquement la routine de rappel spécifiée lorsque le dernier paquet de données a été transféré, mais les programmes que le contrôleur d’hôte IEEE 1394 génère une interruption une fois que les données décrites par chaque descripteur Isoch ont été transférées. Chaque interruption entraîne l’appel du gestionnaire d’interruption et des routines DPC dans le pilote de bus IEEE 1394 de Microsoft Windows 7, ce qui entraîne une augmentation du temps d’interruption et de DPC, qui peut être observé dans les outils de surveillance des performances et peut avoir un impact sur les performances globales du système.

Solution de contournement

Il est possible de contourner ce problème en modifiant le comportement du pilote de périphérique IEEE 1394 affecté afin de soumettre un seul descripteur Isoch pour chaque unité de données significative, comme une image vidéo ou un échantillon audio, au lieu de soumettre un descripteur Isoch pour chaque paquet de données. Cela réduirait également le nombre total de descripteurs Isoch nécessaires pour transférer la même quantité de données isochrones, ce qui devrait généralement réduire la charge de traitement associée à chaque REQUEST_ISOCH_ATTACH_BUFFERS demande d’e/s.

Informations supplémentaires

Pour plus d’informations sur la façon dont les pilotes client IEEE 1394 soumettent des transferts isochrones au pilote de bus Microsoft IEEE 1394, consultez les articles suivants :

S’applique à

  • Windows 7 édition intégrale
  • Windows 7 Entreprise
  • Windows 7 professionnel
  • Windows 7 Édition familiale Premium
  • Windows 7 Édition familiale basique
  • Windows 7 Édition Starter
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter