Ejercicio 4: Uso de MXA para analizar problemas de audio
En este laboratorio, analizará los problemas de audio. Los problemas de audio suelen deberse a uno de los siguientes problemas:
Una llamada a procedimiento diferido (DPC) o una rutina de servicio de interrupción (ISR) que se ejecuta durante más de 1 milisegundos.
Un controlador o subproceso de kernel que se ejecuta en el nivel de distribución durante 1 milisegundos o más.
Los datos no se pueden leer desde el disco o la red no es lo suficientemente rápido debido a un uso elevado de disco o red.
El descodificador de hardware o software no puede descodificar y procesar la secuencia más rápido que en tiempo real.
Paso 1: Abra el seguimiento en MXA y arrastre los conjuntos de datos pertinentes a los paneles
Instale media eXperience Analyzer (MXA) que forma parte de Windows ADK.
Haga clic con el botón derecho en el menú Inicio y haga clic en símbolo del sistema (Administración) .
Vaya a la carpeta donde instaló MXA.
Establezca las rutas de acceso de símbolos MXA en el equipo.
Descargue AudioGlitches_ThreadsAtDispatchLevel.etldesde aquí.
Escriba el siguiente comando para abrir el archivo de seguimiento AudioGlitches_ThreadsAtDispatchLevel.etl :
xa.exe -i <AudioGlitches_ThreadsAtDispatchLevel.etl location>\AudioGlitches_ThreadsAtDispatchLevel.etl
Por ejemplo, si descargó AudioGlitches_ThreadsAtDispatchLevel.etl en C:\Performance\Media, escribiría el siguiente comando:
xa.exe -i C:\Performance\Media\AudioGlitches_ThreadsAtDispatchLevel.etl
En la pantalla de presentación de MXA , presione el botón Desactivar símbolos para desactivar la búsqueda de símbolos.
Una vez cargado el seguimiento, cierre los paneles abiertos que aparecen en el centro de la aplicación presionando la pequeña X junto al nombre de cada panel.
Agregue 3 nuevos paneles. Haga clic en Ver>nuevo panel o presione CTRL+N.
Arrastre y coloque el conjunto de datos Audio Glitches Classic en el nodo Multimedia en el panel superior.
Arrastre y coloque el conjunto de datos scheduler debajo del nodo cpu en el panel 2º desde la parte superior.
Arrastre y coloque el conjunto de datos Perfiles muestreados debajo del nodo CPU en el panel 3º desde la parte superior.
Filtre los procesos inactivos fuera de la vista para que pueda ver la otra actividad de subproceso con mayor claridad. En el árbol del conjunto de datos, expanda el conjunto de datos scheduler en el nodo CPU y haga clic en la casilla Subprocesos inactivos dos veces para anular la selección. Al hacer clic en la casilla una vez resaltan los datos del gráfico; Al hacer clic en él dos veces, se anula la selección.
Paso 2: Identificar la región del seguimiento donde se produjo un error de audio
Puede ver los datos del motor de audio de los archivos del registro de seguimiento de eventos (.etl) para ver una escala de tiempo visual de cuándo se produjeron estos problemas y comparar la escala de tiempo con otros conjuntos de datos para buscar patrones.
Acercar un problema de audio haciendo clic y arrastrando el mouse sobre una de las barras del panel Audio Glitches Classic en la parte superior.
Tenga en cuenta que el proceso deiexplore.exe en el conjunto de datos scheduler del panel 2 se estaba ejecutando durante mucho tiempo (~20-35 ms) justo antes del error de audio.
Presione escape para alejar el 100 % y repita los dos pasos anteriores para comprobar el patrón en el que se estaba ejecutando el proceso deiexplore.exe durante largas duraciones (~20-35 ms) antes de cada error de audio.
Para medir el tiempo dentro del panel, presione la tecla MAYÚS mientras arrastra el mouse desde un extremo de la barra de proceso deiexplore.exe hacia la otra. La información sobre herramientas sobre el cursor del mouse muestra cuántos milisegundos se miden en la escala de tiempo. En la captura de pantalla de MXA siguiente, el proceso se estaba ejecutando durante unos 35 milisegundos.
Paso 3: Identificar la causa de los retrasos en la canalización
Antes de este error de audio, el proceso deiexplore.exe de ejecución prolongada se estaba ejecutando en uno de los núcleos. Para averiguar cómo el subproceso deiexplore.exe detiene la canalización de audio, puede ver el conjunto de datos de perfiles muestreados correspondiente en el nodo de CPU .
Si el visor de datos CallStack no está visible en la ventana MXA, haga clic en Ver>visores> de datosCallStack para abrirlo.
En el panel Perfiles muestreados (3rd de la parte superior), mantenga el puntero sobre los eventos de perfil de ejemplo que coincidan con el mismo color del subproceso deiexplore.exe de larga duración.
La ventana CallStack muestra la pila de llamadas de cada ejemplo. Tenga en cuenta que un controlador específico, ImageRAMONA.sys, está en la parte superior de CallStack al mantener el puntero sobre la mayoría de los ejemplos del núcleo en el que se ejecutaiexplore.exe .
Aunque el subproceso deaudiodg.exe se ejecuta con una prioridad más alta (prioridad 22) que el subproceso deiexplore.exe (prioridad 19), el subproceso deiexplore.exe llama a un controlador (ImageRAMONA.sys), que eleva el nivel IRQL del procesador. Como resultado, audiodg.exe, que está esperando un DPC retenido por el distribuidor no tiene la oportunidad de ejecutarse en su cadencia normal de 10 ms, lo que da lugar a problemas de audio.
Mantenga presionada la tecla MAYÚS para inmovilizar callStack y los visores de datos de propiedades y mover el mouse a CallStack. Presione Copiar.