- Aug 21, 2024
-
-
In an upcoming change, we will be adding the option to forward the --hook option to the test cases, which will require updating execute_test_process() to add the option when asked by the user. The current implementation makes that task not quite straightforward: filling of argv is already dependent on stuff like entry->subtest_count and dynbegin; if we want to keep on using constant indices, we would need several conditional branches for adding arguments for --hook. Let us change the current implementation to use a dynamic vector, to make it easier to extend argv with more stuff as needed. v2: - Squash the logic from patch "runner: Use dynamic vector for test argv" directly instead of using the original logic, which used a statically sized array. (Lucas) Reviewed-by:
Lucas De Marchi <lucas.demarchi@intel.com> Signed-off-by:
Gustavo Sousa <gustavo.sousa@intel.com> Link: https://lore.kernel.org/r/20240814204822.95283-3-gustavo.sousa@intel.com Signed-off-by:
Matt Roper <matthew.d.roper@intel.com>
-
For development purposes, sometimes it is useful to have a way of running custom scripts at certain points of test executions. A real-world example I bumped into recently is to collect information from sysfs before and after running each entry of a testlist. While it is possible for the user to handcraft a script that calls each test with the correct actions before and after execution, we can provide a better experience by adding built-in support for running hooks during test execution. That would be even better when adding the same kind of support for igt_runner (which is done in an upcoming change), since the user can also nicely resume with igt_resume with the hook already setup in case a crash happens during execution of the test list. As such provide implement support for hooks, integrate it into igt_core and expose the functionality via --hook CLI option on test executables. v2: - s/igt_hook_init/igt_hook_create/ (Lucas) - Use SPDX License Identifier instead of license text. (Lucas) - Do not rely on hard-coded length 3 when generating full test name. (Lucas) - Do not pollute current environment variables when running hooks. (Lucas) - Change hook string in run_tests_and_match_env() to use "printf" instead of "echo" to be compatible with CI environment. v3: - igt_hook_create() only errors out for invalid input. - Use igt_hook_free() instead of simply free() in the error path for common_init(). - Go back to the simpler logic for calling hooks instead of using fork: setenv() calls followed by system(). - Change igt_hook_create() to return error number and receive reference to destination pointer instead of the opposite. (Lucas) - Remove checks for non-existing negative return of igt_hook_create(). (Lucas) - s/igt_hook_push_evt/igt_hook_event_notify/. (Lucas) - Simplify call sites for igt_hook_event_notify() by allowing argument to igt_hook to be NULL and using compount literals for the event struct. (Lucas) - Fix style for igt_hook_calc_test_fullname_size(). (Lucas) v4: - Remove needless parentheses. (Lucas) Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> # v3 Signed-off-by:
Gustavo Sousa <gustavo.sousa@intel.com> Link: https://lore.kernel.org/r/20240814204822.95283-2-gustavo.sousa@intel.com Signed-off-by:
Matt Roper <matthew.d.roper@intel.com>
-
- Aug 20, 2024
-
-
Karthik Poosa authored
After reset min and max takes sometime to get set. So add a wait of 100ms after gt reset before reading min and max frequencies. Signed-off-by:
Karthik Poosa <karthik.poosa@intel.com> Reviewed-by:
Riana Tauro <riana.tauro@intel.com> Link: https://lore.kernel.org/r/20240820182324.3206155-3-karthik.poosa@intel.com Signed-off-by:
Rodrigo Vivi <rodrigo.vivi@intel.com>
-
Karthik Poosa authored
Rename ACT_FREQ_LATENCY_US to SLPC_FREQ_LATENCY_US as this delay is not specific to actual frequency. This will be used in a later patch, after gt reset, to wait for this time before reading min and max frequencies. Signed-off-by:
Karthik Poosa <karthik.poosa@intel.com> Reviewed-by:
Riana Tauro <riana.tauro@intel.com> Link: https://lore.kernel.org/r/20240820182324.3206155-2-karthik.poosa@intel.com Signed-off-by:
Rodrigo Vivi <rodrigo.vivi@intel.com>
-
Rob Clark authored
Too much baked in assumptions that the drm device is a PCI device. Signed-off-by:
Rob Clark <robdclark@chromium.org> Reviewed-by:
Kamil Konieczny <kamil.konieczny@linux.intel.com>
-
Rob Clark authored
Only zero is actually considered an invalid value by the kernel. Signed-off-by:
Rob Clark <robdclark@chromium.org> Reviewed-by:
Kamil Konieczny <kamil.konieczny@linux.intel.com>
-
Rob Clark authored
This may undercount number of scalars on hw with rgb pipes, but the scaling on yuv and rgb pipes is functionally equivalent, so for test coverage this is a good enough approximation. Signed-off-by:
Rob Clark <robdclark@chromium.org> Acked-by:
Kamil Konieczny <kamil.konieczny@linux.intel.com>
-
Rob Clark authored
Prep for next patch. The next commit will need the display to figure out the number of scalers. This commit has no functional change, just plumbing the extra parameter everywhere. Signed-off-by:
Rob Clark <robdclark@chromium.org> Reviewed-by:
Kamil Konieczny <kamil.konieczny@linux.intel.com>
-
- Aug 19, 2024
-
-
Much like MTL, there's a w/a on DG2 that prevent the execution of multiple non-preemptible processes on RCS and CCS. So, prevent the running of CCS engines in the 'spin-all-new' test, extending the MTL solution to DG2. Suggested-by:
John Harrison <john.c.harrison@intel.com> Signed-off-by:
Jonathan-Cavitt <jonathan.cavitt@intel.com> CC: Nirmoy Das <nirmoy.das@intel.com> CC: Chris Wilson <chris.p.wilson@linux.intel.com> Reviewed-by:
Nirmoy Das <nirmoy.das@intel.com>
-
Add simple tests that submit work to one engine and measure utilization per class. v2: - Drop measured_usleep since return value is not used - s/parallel engines/parallel submission/ in comment - Use NSEC_PER_SEC for batch_duration_ns - Percent should not be > 100 - Check utilization for both clients for isolation case v3 (Lucas): - Squash some patches to avoid warnings - Remove traces of parallel/virtual execution, to be added separately Signed-off-by:
Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com> Reviewed-by:
Lucas De Marchi <lucas.demarchi@intel.com> Link: https://lore.kernel.org/r/20240816222140.22577-1-lucas.demarchi@intel.com Signed-off-by:
Lucas De Marchi <lucas.demarchi@intel.com>
-
When no command is passed, the default operation for dpcd_reg is to dump DPCD data. However, passing "dump" explicitly is also supported. Improve the help message to let the user know about the "dump" command and that it is the default operation. Signed-off-by:
Gustavo Sousa <gustavo.sousa@intel.com> Reviewed-by:
Jagmeet Randhawa <jagmeet.randhawa@intel.com>
-
- Aug 16, 2024
-
-
Lucas De Marchi authored
Add 2 new functions, xe_gt_count_engines_by_class and xe_gt_fill_engines_by_class, that can be used as helpers to setup parallel/virtual exec queue. All the tests were basically looping and filtering engines that match gt and class. Place these new functions in xe_util.c as currently we lack a better placement. xe_query.c and xe_gt.c could probably be other candidates, but they all mix all kind of namespaces too. Reviewed-by:
Matthew Brost <matthew.brost@intel.com> Link: https://lore.kernel.org/r/20240814175013.3679997-2-lucas.demarchi@intel.com Signed-off-by:
Lucas De Marchi <lucas.demarchi@intel.com>
-
Lucas De Marchi authored
Replace all the duplicate defines of MAX_INSTANCE with a better one in xe_query.h. Reviewed-by:
Matthew Brost <matthew.brost@intel.com> Link: https://lore.kernel.org/r/20240814175013.3679997-1-lucas.demarchi@intel.com Signed-off-by:
Lucas De Marchi <lucas.demarchi@intel.com>
-
1. If the test case cannot trigger any reset on some ASIC, It should be considered a failure. 2. Fix code style V2: Fix some comments (Vitaly) Replace timeout failures with warnings. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Christian Koenig <christian.koenig@amd.com> Cc: Vitaly Prosyak <vitaly.prosyak@amd.com> Signed-off-by:
Jesse Zhang <jesse.zhang@amd.com> Reviewed-by:
Vitaly Prosyak <vitaly.prosyak@amd.com>
-
Vitaly Prosyak authored
This refactoring includes the following changes: - For each declared error, submit the appropriate good job to ring 0 and the bad job to ring 1 for COMPUTE IP. - After a successful queue_reset on ring 1, submit a good job to ring 1 to validate successful queue/pipe recovery, then submit a bad job to ring 2, and repeat the process. - For cases with a single ring, such as GFX, submit a bad packet or shader to GFX. Simultaneously, submit good jobs to a different IP, like COMPUTE, from another background process. These changes ensure a more structured and reliable approach to testing queue resets and validating the recovery process using next step. Cc: Jesse Zhang <jesse.zhang@amd.com> Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Christian Koenig <christian.koenig@amd.com> Signed-off-by:
Vitaly Prosyak <vitaly.prosyak@amd.com> Reviewed-by:
Jesse Zhang <jesse.zhang@amd.com>
-
Adding preempt_timeout test in xe similar to i915 to check preemption for different preemption_timeout like 50 ms, 100 ms v7: correcting allignment and argument for subtest as per IGT documentation Cc: Sai Gowtham Ch <sai.gowtham.ch@intel.com> Cc: Kamil Konieczny <kamil.konieczny@intel.com> Cc: Riana Tauro <riana.tauro@intel.com> Signed-off-by:
Nakshtra Goyal <nakshtra.goyal@intel.com> Reviewed-by:
Sai Gowtham Ch <sai.gowtham.ch@intel.com>
-
Some APUs have address tweak secure mechanisms that encrypt destination data preventing it from matching the original data. Rework the test case to ensure compatibility with these APUs. Signed-off-by:
Tim Huang <tim.huang@amd.com> Reviewed-by:
Vitaly Prosyak <vitaly.prosyak@amd.com>
-
- Aug 15, 2024
-
-
Lucas De Marchi authored
This was added in lib/xe/xe_query.h to quickly convert the kernel interface to use nsec rather than msec. However it's misplaced and doesn't follow the same style as for other time-conversion macros. Worth noting that the "#define ONE_SEC" and the like are error-prone if we are using other interfaces with different units. Example: `usleep(ONE_SEC)` could go unnoticed since there's no unit in the define. Use the common way of doing time-conversion via the NSEC_PER_SEC macros. Reviewed-by:
Gustavo Sousa <gustavo.sousa@intel.com> Link: https://lore.kernel.org/r/20240814214705.3718355-3-lucas.demarchi@intel.com Signed-off-by:
Lucas De Marchi <lucas.demarchi@intel.com>
-
Lucas De Marchi authored
NSEC_PER_MSEC is defined in a few places: move it to a shared place and make it build on top of USEC_PER_MSEC. Reviewed-by:
Gustavo Sousa <gustavo.sousa@intel.com> Link: https://lore.kernel.org/r/20240814214705.3718355-2-lucas.demarchi@intel.com Signed-off-by:
Lucas De Marchi <lucas.demarchi@intel.com>
-
Lucas De Marchi authored
Time conversion is usually done with unsigned constant as it could otherwise give warnings on signed/unsigned comparisons. Reviewed-by:
Gustavo Sousa <gustavo.sousa@intel.com> Link: https://lore.kernel.org/r/20240814214705.3718355-1-lucas.demarchi@intel.com Signed-off-by:
Lucas De Marchi <lucas.demarchi@intel.com>
-
- Aug 14, 2024
-
-
Lucas De Marchi authored
enable_display is being renamed in the kernel since it's ambiguous: https://lore.kernel.org/all/20240808180154.2495634-1-lucas.demarchi@intel.com/ Reviewed-by:
Matt Roper <matthew.d.roper@intel.com> Link: https://lore.kernel.org/r/20240809172936.2718506-1-lucas.demarchi@intel.com Signed-off-by:
Lucas De Marchi <lucas.demarchi@intel.com>
-
Lucas De Marchi authored
Choose a checksum algo and use it to print when parsing a firmware. This may be useful in CI to dump what is the exact firmware used and may also be useful when inspecting the firmware repo and making sure mistakes are not introduced. Configuring intel-gfx-fw-info a diff driver: firmware $ echo "*.bin diff=intelfw" >> .git/info/attributes firmware $ git config --local \ diff.intelfw.textconv \ "<path-to-igt>/tools/intel-gfx-fw-info -c" Example for the LNL update that happened recently: firmware $ git diff --text bc42cdc34bd8 b5bef5bdbab1 -- xe/lnl_guc_70.bin diff --git a/xe/lnl_guc_70.bin b/xe/lnl_guc_70.bin index 785763163..75a1958f7 100644 --- a/xe/lnl_guc_70.bin +++ b/xe/lnl_guc_70.bin @@ -1,3 +1,3 @@ -version: 70.20.0 -date: 2024-02-09 -checksum: 0809f459048a23716fd3019074f36812163e027835cbb43acfcfe72cd83fb0cc +version: 70.29.2 +date: 2024-07-26 +checksum: e7ceae28b06bd71c53fe177f4f6787aac88956d8944fa02b1ab2ec53b1e961e4 If for some reason there's only a checksum change, something went wrong, and without it we wouldn't notice when using this tool as a diff driver. Reviewed-by:
Gustavo Sousa <gustavo.sousa@intel.com> Link: https://lore.kernel.org/r/20240813152141.3151865-2-lucas.demarchi@intel.com Signed-off-by:
Lucas De Marchi <lucas.demarchi@intel.com>
-
Lucas De Marchi authored
Usually the decoded part is the useful one. Hide the raw dump. Reviewed-by:
Gustavo Sousa <gustavo.sousa@intel.com> Link: https://lore.kernel.org/r/20240813152141.3151865-1-lucas.demarchi@intel.com Signed-off-by:
Lucas De Marchi <lucas.demarchi@intel.com>
-
Marcin Bernatowicz authored
Extend the is_huc_running function to check for both 'RUNNING' and 'PRELOADED' statuses. This adjustment ensures that firmware loading by the PF driver is accurately recognized when operating in Virtual Function (VF) mode. Closes: drm/xe/kernel#2466 Signed-off-by:
Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com> Acked-by:
Adam Miszczak <adam.miszczak@linux.intel.com> Cc: Michal Wajdeczko <Michal.Wajdeczko@intel.com> Cc: Michał Winiarski <michal.winiarski@intel.com> Cc: Lukasz Laguna <lukasz.laguna@intel.com> Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
-
Correlate updates in sysfs engines queried and the work load submitted to a engine, enhancing igt_sysfs_engines so that each update in sysfs engine will corelates to it corresponding engine class. Signed-off-by:
Sai Gowtham Ch <sai.gowtham.ch@intel.com> Reviewed-by:
Janga Rahul Kumar <janga.rahul.kumar@intel.com>
-
Zbigniew Kempczyński authored
Engine used inside for_each_ctx_engine() macro is valid only inside its block as it is accessing local stack memory. Using outside the block works by an accident if luckily nothing will overwrite this stack before use. Fix found risky usages by using engine only inside the block or do its copy. Cc: Andi Shyti <andi.shyti@linux.intel.com> Reviewed-by:
Peter Senna Tschudin <peter.senna@linux.intel.com> Link: https://lore.kernel.org/r/20240813124536.66551-1-zbigniew.kempczynski@intel.com Signed-off-by:
Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
-
- Aug 13, 2024
-
-
Correct the usage of igt_dynamic_f or it will always print SUCCESS, like this: Starting subtest: amdgpu-gfx-CMD_STREAM_EXEC_INVALID_OPCODE Starting dynamic subtest: amdgpu-CMD_STREAM_EXEC_INVALID_OPCODE-1 Dynamic subtest amdgpu-CMD_STREAM_EXEC_INVALID_OPCODE-1: SUCCESS (0.000s) Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Christian Koenig <christian.koenig@amd.com> Cc: Vitaly Prosyak <vitaly.prosyak@amd.com> Signed-off-by:
Jesse Zhang <jesse.zhang@amd.com> Reviewed-by:
Vitaly Prosyak <vitaly.prosyak@amd.com>
-
- Aug 11, 2024
-
-
Enhance the queue reset, add KGQ test. V2: Some improvements regarding the selection of testing ring (Vitaly) V3: Fix calculation of number of constant tests. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Christian Koenig <christian.koenig@amd.com> Cc: Vitaly Prosyak <vitaly.prosyak@amd.com> Signed-off-by:
Jesse Zhang <jesse.zhang@amd.com> Reviewed-by:
Vitaly Prosyak <vitaly.prosyak@amd.com>
-
- Aug 09, 2024
-
-
Lucas De Marchi authored
Be explicit on what we are parsing: key-values for the current process, likely to be used by the same process causing workloads, or by key-values for a random process, likely to be used when analyzing all the clients. Reviewed-by:
Jonathan Cavitt <jonathan.cavitt@intel.com> Link: https://lore.kernel.org/r/20240731033504.1426640-2-lucas.demarchi@intel.com Signed-off-by:
Lucas De Marchi <lucas.demarchi@intel.com>
-
'Run type' is not used in IGT test documentation for some time already. Let's remove it from the only test that has it. Signed-off-by:
Katarzyna Piecielska <katarzyna.piecielska@intel.com> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Cc: Jari Tahvanainen <jari.tahvanainen@intel.com> Acked-by:
Kamil Konieczny <kamil.konieczny@linux.intel.com>
-
- Aug 08, 2024
-
-
Set specific error type for KGQ hang test. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Christian Koenig <christian.koenig@amd.com> Cc: Vitaly Prosyak <vitaly.prosyak@amd.com> Signed-off-by:
Jesse Zhang <jesse.zhang@amd.com> Reviewed-by:
Vitaly Prosyak <vitaly.prosyak@amd.com>
-
- Aug 07, 2024
-
-
Add GFX1152 to the amdgpu supported chip list. Signed-off-by:
Tim Huang <tim.huang@amd.com> Reviewed-by:
Vitaly Prosyak <vitaly.prosyak@amd.com>
-
GFX1150 IDs range from 01 to 64 and GFX1151 IDs range from 192 to 255. Signed-off-by:
Tim Huang <tim.huang@amd.com> Reviewed-by:
Vitaly Prosyak <vitaly.prosyak@amd.com>
-
In the bad length case, when the header length has more than 4dwords than packet stream length then CPFW will pending on the stream data and raise a CP halt error which requires do the pipe reset. As to the orignal case of header length is smaller than PM4 stream length then the PM4 stream data may will create a bad opcode error which only requires the queue reset. So for testing the pipe reset need to update the header length bigger than the PM4 stream data length. Signed-off-by:
Prike Liang <Prike.Liang@amd.com> Reviewed-by:
Vitaly Prosyak <vitaly.prosyak@amd.com>
-
Vitaly Prosyak authored
If run command: ninja -C build test then the following is occured: the process amd_queue_reset is terminated with error code 134 (assert), i found this editing script in igt-command_line.sh The following is the result of execution: 393/427 testcase check amdgpu/amd_queue_reset FAIL 0.23s exit status 1 >>> UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 MALLOC_PERTURB_=255 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 /home/vprosyak/src/igt-gpu-tools/tests/igt_command_line.sh amdgpu/amd_queue_reset stdout: tests/amdgpu/amd_queue_reset: Checking invalid option handling... Checking valid option handling... Checking subtest enumeration... test does not exit with 0 or 79 with --list-subtests! test does exits with 134 FAIL: tests/amdgpu/amd_queue_reset stderr: skipping is allowed only in fixtures, subtests or igt_simple_main please refer to lib/igt_core documentation amd_queue_reset: ../lib/igt_core.c:441: internal_assert: Assertion `0' failed. Received signal SIGABRT. Stack trace: Aborted (core dumped). To fix the issue move the shared memory creation into igt_fixture block. v2: Fix formatting errors. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Christian Koenig <christian.koenig@amd.com> Cc: Jesse Zhang <jesse.zhang@amd.com> Signed-off-by:
Vitaly Prosyak <vitaly.prosyak@amd.com>
-
Kamil Konieczny authored
All subtests uses render device for health checks so skip early if it is not present. Signed-off-by:
Kamil Konieczny <kamil.konieczny@linux.intel.com> Reviewed-by:
Andrzej Hajda <andrzej.hajda@intel.com>
-
Kamil Konieczny authored
Use __drm_close_driver() for closing a drm device, as it was opened with __drm_open_driver() function. v2: update description Signed-off-by:
Kamil Konieczny <kamil.konieczny@linux.intel.com> Reviewed-by:
Andrzej Hajda <andrzej.hajda@intel.com>
-
Kamil Konieczny authored
Make sure any later opens will use the same driver as the first one. Also while at this, print driver name before test starts. Signed-off-by:
Kamil Konieczny <kamil.konieczny@linux.intel.com> Reviewed-by:
Andrzej Hajda <andrzej.hajda@intel.com>
-
Kamil Konieczny authored
Make this a public function so in tests developers could use it instead of hard-coding driver names (such as "i915" or "xe"). Signed-off-by:
Kamil Konieczny <kamil.konieczny@linux.intel.com> Reviewed-by:
Andrzej Hajda <andrzej.hajda@intel.com>
-
Kamil Konieczny authored
Set chipset for all known drivers, not only for i915. Signed-off-by:
Kamil Konieczny <kamil.konieczny@linux.intel.com> Reviewed-by:
Andrzej Hajda <andrzej.hajda@intel.com>
-