[PATCH i-g-t v4 00/41] VKMS configfs tests

José Expósito jose.exposito89 at gmail.com
Thu Aug 7 07:45:09 UTC 2025


Hi everyone,

This series add tests for the VKMS + configfs work Louis Chauvet and I are doing
in the kernel.

This new functionality allows to configure one or more VKMS instances without
having to reload the driver using configfs.

For more details, have a look to the kernel patchset and the documentation in
"vkms.rst" (not merged yet). [1]

There was a previous attempt to implement this tests [2] and I kept copyright
were required.

Massive thank you to Louis Chauvet who is doing a fenomenal work reviewing this
(very long) series of patches.

Best wishes,
José Expósito

[1] https://lore.kernel.org/dri-devel/20250507135431.53907-1-jose.exposito89@gmail.com/
[2] https://lists.freedesktop.org/archives/igt-dev/2023-September/060717.html

Changes in v4:

  - Rebased on the latest master branch
  - Added reviewed-by tags (Louis)
  - Added missing "static" to some consts (Kamil)
  - Updated copyright year (Kamil)
  - Using #include <limits.h> instead of <linux/limits.h> (Kamil)
  - Sorted alphabetically includes (Kamil)
  - Dropped VKMS tests from the testplan (Kamil and Karthik)
  - Link to v3: https://lore.kernel.org/igt-dev/20250715102513.5636-1-jose.exposito89@gmail.com/

Changes in v3:

  - Rebased on the latest master branch
  - Link to v2: https://lore.kernel.org/igt-dev/20250313173318.5818-1-jose.exposito89@gmail.com/

Changes in v2:
  - Applied review comments by Louis Chauvet:
    - Added missing references to DRIVER_VKMS in drmtest.c
    - Loading vkms with drm_load_module(DRIVER_VKMS) in igt_fixture 
    - Documented igt_is_mountpoint()
    - Checked the return value of snprintf() and fprintf()
    - Removed unnecessary empty items ({ {} }) in items in igt_vkms_config_t
    - Added new tests testing the valid values for planes, CRTCs and connectors
    - Remove code duplication generating configfs paths by adding helpers
  - Using udev instead of drmGetDevices() to find VKMS devices in a new patch
    "lib/igt_device_scan: Allow to find device by name". This change is required
    to support the faux bus. See:
    https://lists.freedesktop.org/archives/igt-dev/2025-February/086510.html
  - Rebased on the latest "master"
  - Link to v1: https://lists.freedesktop.org/archives/igt-dev/2025-February/086071.html

José Expósito (41):
  lib/drmtest: Add VKMS as a known driver type
  lib/vkms: Add minimal VKMS library and test device default files
  lib/vkms: Allow to enable/disable VKMS devices
  tests/vkms_configfs: Test device invalid values
  lib/vkms: Test plane default files
  lib/vkms: Test plane default values
  lib/vkms: Test plane invalid values
  tests/vkms_configfs: Test plane valid values
  lib/vkms: Test CRTC default files
  lib/vkms: Test CRTC default values
  lib/vkms: Test CRTC invalid values
  tests/vkms_configfs: Test CRTC valid values
  lib/vkms: Test encoder default files
  lib/vkms: Test connector default files
  lib/vkms: Test connector default values
  lib/vkms: Test connector invalid values
  tests/vkms_configfs: Test connector valid values
  lib/vkms: Test attaching planes to CRTCs
  lib/vkms: Test attaching encoders to CRTCs
  lib/vkms: Test attaching connectors to encoders
  lib/igt_device_scan: Allow to find device by sysname
  tests/vkms_configfs: Test enablement without pipeline items
  lib/vkms: Create VKMS device from static config
  tests/vkms_configfs: Test adding too many planes
  tests/vkms_configfs: Test not adding a primary plane
  tests/vkms_configfs: Test adding multiple primary planes
  tests/vkms_configfs: Test adding multiple cursor planes
  tests/vkms_configfs: Test adding a plane without possible CRTCs
  tests/vkms_configfs: Test enabling a device without CRTCs
  tests/vkms_configfs: Test enabling a device with too many CRTCs
  tests/vkms_configfs: Test enabling a device without encoders
  tests/vkms_configfs: Test enabling a device with too many encoders
  tests/vkms_configfs: Test adding an encoder without possible CRTCs
  tests/vkms_configfs: Test adding a CRTC without encoders
  tests/vkms_configfs: Test enabling a device without connectors
  tests/vkms_configfs: Test enabling a device with too many connectors
  lib/vkms: Test changing enabled device planes
  lib/vkms: Test changing enabled device CRTCs
  lib/vkms: Test changing enabled device encoders
  lib/vkms: Test changing enabled device connectors
  tests/vkms_configfs: Test connector hot-plug

 lib/drmtest.c              |   21 +
 lib/drmtest.h              |    6 +-
 lib/igt_device_scan.c      |   22 +
 lib/igt_device_scan.h      |    2 +
 lib/igt_vkms.c             | 1003 ++++++++++++++++++
 lib/igt_vkms.h             |  132 +++
 lib/meson.build            |    1 +
 meson.build                |    8 +
 tests/meson.build          |    2 +
 tests/vkms/meson.build     |   13 +
 tests/vkms/vkms_configfs.c | 1962 ++++++++++++++++++++++++++++++++++++
 11 files changed, 3171 insertions(+), 1 deletion(-)
 create mode 100644 lib/igt_vkms.c
 create mode 100644 lib/igt_vkms.h
 create mode 100644 tests/vkms/meson.build
 create mode 100644 tests/vkms/vkms_configfs.c


base-commit: dfce662f38d1e272363d37a9cfbcbfee379fa851
-- 
2.50.1



More information about the igt-dev mailing list