[igt-dev] [PATCH i-g-t v9 0/1] tests: Add a new test for device hot unplug
Janusz Krzysztofik
janusz.krzysztofik at linux.intel.com
Thu May 9 08:09:13 UTC 2019
The test should help resolving driver bugs which exhibit themselves
when a device is unplugged / driver unbind from a device while the
device is busy (different from simple module unload which requires
device references being put first).
Janusz Krzysztofik (1):
tests: Add a new test for device hot unplug
tests/Makefile.sources | 1 +
tests/core_hotunplug.c | 462 +++++++++++++++++++++++++++++++++++++++++
tests/meson.build | 1 +
3 files changed, 464 insertions(+)
create mode 100644 tests/core_hotunplug.c
Changelog:
v8->v9:
All changes after Daniel's comments - thanks!
- flatten the code, don't try to create a midlayer,
- provide mimimal subtests that even don't keep device open,
- don't use driver unbind in more advanced subtests,
- provide subtests with different level of resources allocated
during device unplug,
- provide subtests which check driver behavior after device hot
unplug.
v7->v8:
- move workload functions back from fixture to subtests,
- register different actions and different workloads in respective
tables and iterate over those tables while enumerating subtests,
- introduce new subtest flavors by simply omiting module unload step,
- instead of simply requesting bus rescan or not, introduce action
specific device recovery helpers, required specifically with those
new subtests not touching the module,
- split workload functions in two parts, one spawning the workload,
the other waiting for its completion,
- for the new subtests not requiring module unload, run workload
functions directly from the test process and use new workload
completion wait functions in place of subprocess completion wait,
- take more control over logging, longjumps and exit codes in
workload subprocesses,
- add some debug messages for easy progress watching,
- move function API descriptions on top of respective typedefs,
- drop patch 2/2 with external workload command again, still nobody
likes it.
v6->v7:
- add missing igt_exit() needed with the second patch.
v5->v6 (third public submission, incorrectly marked as v5, sorry):
- run workload inside an igt helper subprocess so resources consumed
by the workload are cleaned up automatically on workload subprocess
crash, without affecting test results,
- move the igt helper with workload back from subtests to initial
fixture so workload crash also does not affect test results,
- re-add the second patch which extends the test with an option for
using an external command as a workload,
- other cleanups suggested by Kasia and Chris.
v4->v5 (second public submission, marked as v2):
- try to restore the device to a working state after each subtest
(Petri, Daniel).
v3->v4 (first public submission, not marked with any version number):
- run dummy_load from inside subtests (Antonio).
v2->v3 (internal submission):
- run dummy_load from the test process directly (Antonio),
- drop the patch for running external workload (Antonio).
v1->v2 (internal submission):
- run a subprocess with dummy_load instead of external command
(Antonio),
- keep use of external workload command as an option, move that to a
separate patch.
--
2.20.1
More information about the igt-dev
mailing list