Compartir a través de


Uso del Kit de herramientas de rendimiento de Windows (WPT) con WDF

A partir de Windows 10, puedes usar Windows Performance Toolkit (WPT) para ver los datos de rendimiento de un determinado controlador del marco de controladores del modo kernel (KMDF) o del marco de controladores del modo de usuario (UMDF) 2.

¿Cómo pueden ayudar las extensiones de Windows Driver Frameworks (WDF) para WPT?

Puede usar WPT para obtener información de rendimiento o solucionar problemas de rendimiento. Por ejemplo:

  • Examine la tasa de finalización de solicitudes de E/S de WDF del controlador, el uso de CPU y el tiempo invertido en PnP y devoluciones de llamada de energía.
  • Compare un controlador UMDF 2 con un controlador KMDF similar y determine si UMDF cumple los requisitos de rendimiento.
  • Identifique los problemas de rendimiento en la ruta de acceso de E/S de WDF.
  • Determine qué instancia de una devolución de llamada determinada tarda mucho tiempo. A continuación, examine el uso de CPU muestreado para comprender por qué.
  • Compruebe si el dispositivo está realizando transiciones de energía dentro y fuera del estado de alimentación D0 con demasiada frecuencia.

Introducción

WPT forma parte del Kit de evaluación e implementación de Windows (ADK). Puede instalar el ADK desde Descargar e instalar Windows ADK.

WPT consta de dos herramientas independientes: Windows Performance Recorder y Windows Analizador de rendimiento (WPA). En este tema, usamos WPR para registrar un seguimiento y, a continuación, WPA para ver el seguimiento en un formato de GUI configurable.

Para obtener información sobre cómo usar Windows Performance Toolkit para medir el rendimiento de un controlador WDF, vea el vídeo siguiente o lea los pasos que se indican debajo del vídeo. El vídeo y los pasos cubren el mismo procedimiento.

Grabación y visualización de un registro de eventos para un controlador WDF

  1. Instale el controlador, si aún no está instalado.

  2. En un símbolo del sistema con privilegios elevados, escriba el siguiente comando.

    <WdfPerfEnhancedVerifier.cmd ServiceName><UMDF o KMDF>

    Nota WdfPerfEnhancedVerifier.cmd debe copiarse desde la ubicación en la que instaló WPT. Si instaló WPT en una máquina de desarrollo, deberá copiar el script desde el directorio de instalación de WPT en la máquina de destino.

Este script establece las entradas del Registro para el controlador especificado para que el marco registre los eventos necesarios para habilitar el análisis de rendimiento cuando el proveedor ETW esté habilitado en el paso 4.

  1. Reinicie el equipo.

  2. En un símbolo del sistema con privilegios elevados, escriba el siguiente comando.

    Wpr.exe -Start WdfTraceLoggingProvider -filemode

    Este comando habilita el proveedor ETW para WDF. El equipo inicia la grabación de un seguimiento.

    Nota Como en el paso 2, Wpr.exe debe copiarse desde la ubicación en la que instaló WPT. Si instaló WPT en una máquina de desarrollo, copie estos archivos desde el directorio de instalación de WPT en la máquina de destino.

    En Windows 10 para ediciones de escritorio (Home, Pro, Enterprise y Education), también puedes iniciar el seguimiento con Wprui.exe, que proporciona una GUI para grabar seguimientos. En más opciones, expanda Análisis de recursos y seleccione Actividad del controlador de WDF.

  3. Ejercicio de su escenario de interés.

  4. Detenga la sesión de seguimiento de ETW: Wpr.exe -Stop MyPerfTrace.etl

  5. Abra el registro de seguimiento de eventos en el visor de Windows Analizador de rendimiento:

    Wpa.exe MyPerfTrace.etl

Para capturar otro seguimiento para el mismo controlador, use Wpr.exe para iniciar y detener un nuevo seguimiento. Para capturar un seguimiento de un controlador diferente, vuelva a ejecutar primero WdfPerfEnhancedVerifier.cmd para el nuevo controlador.

Análisis del seguimiento

Para empezar a analizar el rendimiento del controlador, busque el Explorador de Graph a la izquierda, abra la categoría Cálculo y, a continuación, arrastre el gráfico UMDF o KMDF al área de trabajo principal, en la pestaña Análisis. En esta captura de pantalla se muestra el panel Explorador de Graph:

Captura de pantalla del panel Explorador de Graph en Windows Analizador de rendimiento.

Hay una tabla dedicada para UMDF y otra para controladores KMDF.

Gráfico de solicitudes de E/S de UMDF y tabla de resumen

WPT puede mostrar el rendimiento de finalización de solicitudes de E/S de WDF de dos maneras:

  • Número de solicitudes de E/S completadas por segundo
  • Duración de la hora de cada solicitud de E/S (con formato de diagrama de Gantt)

En la captura de pantalla siguiente se muestran gráficos y tablas de resumen de ejemplo para el rendimiento de las solicitudes de E/S de CPU y UMDF. En el gráfico Tasa de finalización de solicitudes de E/S de UMDF, el número de solicitudes por segundo se muestra en el eje Y.

Captura de pantalla de gráficos de resumen de ejemplo para solicitudes de E/S de UMDF y uso de CPU (muestreado).

En la tabla de resumen, la mayoría de las columnas se explican automáticamente, pero hay un par de cosas que se deben tener en cuenta. La columna WdfDevice contiene el identificador WDFDEVICE asociado a la solicitud de E/S. ActivityID contiene un identificador único para la solicitud de E/S. El marco crea este identificador cuando entrega una solicitud de E/S al controlador. Si un identificador de actividad ya está asociado con el IRP correspondiente, el marco usa ese identificador. Para obtener más información, consulte Uso de identificadores de actividad.

La hora de entrada es la marca de tiempo de seguimiento cuando el marco entregó la solicitud al controlador y la hora de salida es la marca de tiempo cuando el controlador llamó a WdfRequestComplete o un método relacionado para completar la solicitud.

Gráfico de solicitudes de E/S de KMDF y tabla de resumen

Esta es una captura de pantalla similar que muestra información de solicitud de E/S para un controlador KMDF.

Captura de pantalla de un gráfico para el rendimiento de la solicitud de E/S de KMDF.

Gráfico de devolución de llamada y tabla de resumen de PnP Power

WPT también puede mostrar el tiempo de procesamiento de cada PnP y la devolución de llamada de energía. En la captura de pantalla siguiente se muestra la duración de la devolución de llamada EvtDeviceD0Entry, EvtDeviceD0Exit y EvtDevicePrepareHardware para un controlador KMDF de ejemplo y un controlador UMDF de ejemplo.

La columna WdfDevice contiene el identificador WDFDEVICE asociado a la devolución de llamada. ActivityID contiene un identificador único para la instancia de devolución de llamada.

Captura de pantalla de un gráfico de devolución de llamada de PnP Power para controladores KMDF y UMDF.

¿Qué llamadas se instrumentan?

En esta sección se describen los eventos que se usan para compilar los gráficos y las tablas que se muestran anteriormente.

Después de ejecutar WdfPerfEnhancedVerifier.cmd para un controlador específico, el marco registra eventos en el registro de seguimiento de ETL cuando el sistema llama a algunas de las devoluciones de llamada del controlador especificadas y también cuando el controlador especificado llama a algunos métodos de marco.

Para determinar cuándo se inician las solicitudes de E/S, el marco registra eventos cuando llama a las siguientes devoluciones de llamada:

El marco también registra eventos de inicio de solicitud de E/S cuando el controlador llama a los métodos siguientes:

Para determinar cuándo se completan las solicitudes de E/S, el marco realiza un seguimiento cuando el controlador llama a:

Por último, para determinar la duración de la devolución de llamada de PnP/Power, el marco registra cuando llama a las siguientes rutinas de devolución de llamada proporcionadas por el controlador y cuando finalizan:

Recursos y solución de problemas

  • Asegúrese de reiniciar después de ejecutar el script de WdfPerfEnhancedVerifier.cmd.

  • Para determinar si el controlador está configurado para registrar un registro de eventos, use ! Comando del depurador de kernel WdfKd.wdfdriverinfo . Si el controlador está configurado para el seguimiento de rendimiento, verá un resultado similar al siguiente:

    !WdfKd.WdfDriverInfo Echo.sys
    …
    …
    ----------------------------------
    
    WDF Verifier settings for echo.sys is ON
      Enhanced verifier: performance analysis hooking ON
    ----------------------------------
    
  • Solo para fines de desarrollo y pruebas, la aplicación de la directiva de firma de código de controlador se puede deshabilitar temporalmente. Para obtener más información, consulte Instalación de un paquete de controladores sin firmar durante el desarrollo y la prueba.

Windows Performance Analyzer