[PATCH 0/2] drm/vkms: Add Virtual hardware module option

From: Gabriela Bittencourt
Date: Wed Apr 08 2020 - 02:05:45 EST


Hi,

I'm trying to implement the virtual hardware (virtual_hw) module option on
VKMS module.

The virtual hardware module option is implemented as an option to skip the
timing and vblank subtests. The main idea of virtual_hw is shorten the time
used on each period of operation. For this, the timer for counting the
period is eliminated and the KMS configurations are implemented along with
the standard atomic operations.

During the 'atomic_enable' and 'atomic_disable' the vblank is initialized
only if the virtual_hw is disabled (and therefore, the vblank is enabled).
A kick of crc/vblank is decoupled from vblank_simulate. Case the vblank
is disabled (that is, the vblank_simulate will never execute) a
vkms_composer_work routine is added to the end of the atomic_flush.

The IGT tests used to check the patch were the kms-flip, which kept the
same results, with and without my alterations, with the exceptions of the
tests that required vblank. The warning message and the related tests are
presented below:

Test requirement not met in function run_test_on_crtc_set, file ../tests/kms_flip.c:1285:
Test requirement: vblank
There is no VBlank
Last errno: 95, Operation not supported
- wf_vblank-ts-check
- blocking-wf_vblank
- absolute-wf_vblank
- blocking-absolute-wf_vblank
- busy-flip
- plain-flip-ts-check
- plain-flip-fb-recreate
- flip-vs-expired-vblank
- flip-vs-absolute-wf_vblank
- basic-flip-vs-wf_vblank
- flip-vs-blocking-wf-vblank
- dpms-vs-vblank-race
- modeset-vs-vblank-race
- wf_vblank-ts-check-interruptible
- absolute-wf_vblank-interruptible
- blocking-absolute-wf_vblank-interruptible
- plain-flip-ts-check-interruptible
- plain-flip-fb-recreate-interruptible
- flip-vs-expired-vblank-interruptible
- flip-vs-absolute-wf_vblank-interruptible
- flip-vs-wf_vblank-interruptible
- dpms-vs-vblank-race-interruptible
- modeset-vs-vblank-race-interruptible

Any suggestions are very welcome :)

Gabriela Bittencourt (2):
drm/vkms: Rework vkms_vblank_simulate
drm/vkms: Add 'virtual_hw' module option

drivers/gpu/drm/vkms/vkms_crtc.c | 42 +++++++++++++++++++++++++++-----
drivers/gpu/drm/vkms/vkms_drv.c | 13 ++++++++--
drivers/gpu/drm/vkms/vkms_drv.h | 2 ++
3 files changed, 49 insertions(+), 8 deletions(-)

--
2.25.1