GEM Tests

GEM Tests — Tests for the graphics execution manager

Programs

gem_bad_reloc  
gem_barrier_race  
gem_basic  
gem_blits  
gem_busy  
gem_caching  
gem_ccs  
gem_close  
gem_close_race  
gem_compute  
gem_concurrent_blit  
gem_create  
gem_cs_tlb  
gem_ctx_bad_destroy  
gem_ctx_create  
gem_ctx_engines  
gem_ctx_exec  
gem_ctx_freq  
gem_ctx_isolation  
gem_ctx_param  
gem_ctx_persistence  
gem_ctx_shared  
gem_ctx_sseu  
gem_ctx_switch  
gem_eio  
gem_evict_alignment  
gem_evict_everything  
gem_exec_alignment  
gem_exec_async  
gem_exec_await  
gem_exec_balancer  
gem_exec_basic  
gem_exec_big  
gem_exec_capture  
gem_exec_create  
gem_exec_endless  
gem_exec_fair  
gem_exec_fence  
gem_exec_flush  
gem_exec_gttfill  
gem_exec_latency  
gem_exec_lut_handle  
gem_exec_nop  
gem_exec_parallel  
gem_exec_params  
gem_exec_reloc  
gem_exec_schedule  
gem_exec_store  
gem_exec_suspend  
gem_exec_whisper  
gem_exercise_blt  
gem_fd_exhaustion  
gem_fence_thrash  
gem_fence_upload  
gem_fenced_exec_thrash  
gem_flink_basic  
gem_flink_race  
gem_gpgpu_fill  
gem_gtt_cpu_tlb  
gem_gtt_hog  
gem_gtt_speed  
gem_huc_copy  
gem_linear_blits  
gem_lmem_evict  
gem_lmem_swapping  
gem_lut_handle  
gem_madvise  
gem_media_fill  
gem_media_vme  
gem_mmap  
gem_mmap_gtt  
gem_mmap_offset  
gem_mmap_wc  
gem_partial_pwrite_pread  
gem_pipe_control_store_loop  
gem_ppgtt  
gem_pread  
gem_pread_after_blit  
gem_pwrite  
gem_pwrite_snooped  
gem_pxp  
gem_read_read_speed  
gem_readwrite  
gem_reg_read  
gem_render_copy  
gem_render_copy_redux  
gem_render_linear_blits  
gem_render_tiled_blits  
gem_request_retire  
gem_reset_stats  
gem_ringfill  
gem_set_tiling_vs_blt  
gem_set_tiling_vs_gtt  
gem_set_tiling_vs_pwrite  
gem_shrink  
gem_softpin  
gem_spin_batch  
gem_streaming_writes  
gem_sync  
gem_tiled_blits  
gem_tiled_fence_blits  
gem_tiled_partial_pwrite_pread  
gem_tiled_pread_basic  
gem_tiled_pread_pwrite  
gem_tiled_swapping  
gem_tiled_wb  
gem_tiled_wc  
gem_tiling_max_stride  
gem_unfence_active_buffers  
gem_unref_active_buffers  
gem_userptr_blits  
gem_vm_create  
gem_wait  
gem_watchdog  
gem_workarounds  

Description

gem_bad_reloc

Simulates SNA behaviour using negative self-relocations for STATE_BASE_ADDRESS commandpackets.

negative-reloc

SNA behaviour is compressing batch buffer which leads to negative relocation deltas. Negative self-relocation happening with real offset 0.

negative-reloc-lut

Similar to previous test with flags for lut_based_execbuffer.

negative-reloc-bltcopy

Exercising blitter operation with negative reloc.


gem_barrier_race

Exercise engine barriers and their interaction with other subsystems

remote-request

Race intel_context_prepare_remote_request against intel_context_active_acquire/release


gem_basic

Tests basic gem_create and gem_close IOCTLs

bad-close

Verify that gem_close fails with bad params.

create-close

Verify basic functionality of gem_create and gem_close.

multigpu-create-close

Verify basic functionality of gem_create and gem_close on multi-GPU.

create-fd-close

Verify that closing drm driver is possible with opened gem object.


gem_blits

basic

NO DOCUMENTATION!


gem_busy

Basic check of busy-ioctl ABI.

busy

Basic test to check busyness of each engine.

close-race

Test to check race condition by randomly closing the handle using gem_close.

extended

Extended test to check busyness of dwstore-capable engines.

parallel

Extended test to check busyness of dwstore-capable engines while doing parallel execution.

semaphore

Test to check busyness of engine on submitting a new batch while engine is busy in executing previous batch.

hang

Basic test to check hang state behaviour of engines with increased timeout.

hang-extended

Extended test to check hang state behaviour of dwstore-capable engines with increased timeout.


gem_caching

Test snoop consistency when touching partial cachelines.

reads

NO DOCUMENTATION!

writes

NO DOCUMENTATION!

read-writes

NO DOCUMENTATION!


gem_create

Ensure that basic gem_create and gem_create_ext works and that invalid input combinationsare rejected.

create-invalid-size

Try to create a gem object of invalid size 0 and check if ioctl returns error.

create-massive

Exercise creation of buffer object with impossible size and check for the expected error.

create-valid-nonaligned

Try to create an object with non-aligned size, check we got one with size aligned up to page size and test we can write into the padded extra memory.

create-size-update

Try to create a gem object with size 15 and check actual created size.

create-clear

Verify that all new objects are clear.

busy-create

Create buffer objects while GPU is busy.

hog-create

Create buffer objects while GPU is busy.

create-ext-placement-sanity-check

Exercise create_ext placements extension.

create-ext-placement-each

Create one object with memory pieces in each memory region using create_ext.

create-ext-placement-all

Create objects in every memory region using create_ext.

create-ext-set-pat

Validate basic creation of objects with PAT cache setting.

create-ext-cpu-access-sanity-check

Verify the basic functionally and expected ABI contract around I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS

create-ext-cpu-access-big

Verify the extreme cases with very large objects and I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS


gem_ccs

Exercise gen12 blitter with and without flatccs compression

block-copy-uncompressed

Check block-copy uncompressed blit

block-copy-compressed

Check block-copy flatccs compressed blit

block-multicopy-compressed

Check block-multicopy flatccs compressed blit

block-multicopy-inplace

Check block-multicopy flatccs inplace decompression blit

ctrl-surf-copy

Check flatccs data can be copied from/to surface

ctrl-surf-copy-new-ctx

Check flatccs data are physically tagged and visible in different contexts

suspend-resume

Check flatccs data persists after suspend / resume (S0)


gem_close

basic

NO DOCUMENTATION!

many-handles-one-vma

NO DOCUMENTATION!


gem_close_race

Test try to race gem_close against workload submission.

basic-process

Basic workload submission.

multigpu-basic-process

Basic workload submission on multi-GPU machine.

basic-threads

Share buffer handle across different drm fd's and trying to race gem_close against continuous workload with minimum timeout.

multigpu-basic-threads

Run basic-threads race on multi-GPU machine.

process-exit

Test try to race gem_close against submission of continuous workload.

contexts

Share buffer handle across different drm fd's and trying to race gem_close against continuous workload in other contexts.

gem-close-race

Share buffer handle across different drm fd's and trying to race of gem_close against continuous workload.


gem_compute

compute-square

NO DOCUMENTATION!


gem_concurrent_blit

Test of pread/pwrite/mmap behavior when writing to active buffers.

More than 100 subtests, skipping listing


gem_cs_tlb

Check whether we correctly invalidate the cs tlb.

engines

NO DOCUMENTATION!


gem_ctx_bad_destroy

Negative test cases for destroy contexts.

double-destroy

NO DOCUMENTATION!

invalid-ctx

NO DOCUMENTATION!

invalid-default-ctx

NO DOCUMENTATION!

invalid-pad

NO DOCUMENTATION!


gem_ctx_create

Test the context create ioctls

basic

Test random context creation

ext-param

Verify valid and invalid context extensions

iris-pipeline

Set, validate and execute particular context params

maximum-mem

Create contexts upto available RAM size, calculate the average performance of their execution on multiple parallel processes

maximum-swap

Create contexts upto available RAM+SWAP size, calculate the average performance of their execution on multiple parallel processes

basic-files

Exercise implicit per-fd context creation

files

Exercise implicit per-fd context creation on 1 CPU for long duration

forked-files

Exercise implicit per-fd context creation on all CPUs for long duration

active-all

Calculate the average performance of context creation and it's execution using all engines

forked-active-all

Calculate the average performance of context creation and it's execution using all engines on multiple parallel processes

active

For each engine calculate the average performance of context creation execution and exercise context reclaim

forked-active

For each engine calculate the average performance of context creation and execution on multiple parallel processes

hog

For each engine calculate the average performance of context creation and execution while all other engines are hogging the resources


gem_ctx_engines

invalid-engines

NO DOCUMENTATION!

none

NO DOCUMENTATION!

execute-one

NO DOCUMENTATION!

execute-oneforall

NO DOCUMENTATION!

execute-allforone

NO DOCUMENTATION!

independent

NO DOCUMENTATION!


gem_ctx_exec

Test context batch buffer execution.

basic

Check the basic context batch buffer execution.

basic-invalid-context

Verify that execbuf with invalid context fails.

eviction

Check maximum number of buffers it can evict for a context.

basic-norecovery

Check the status of context after a hang by setting and unsetting the RECOVERABLE.

basic-nohangcheck

Verify that contexts are automatically shotdown on close, if hangchecking is disabled.

basic-close-race

Race the execution and interrupt handlers along a context, while closing it at a random time.

reset-pin-leak

Check if the kernel doesn't leak the vma pin_count for the last context on reset.


gem_ctx_freq

sysfs

NO DOCUMENTATION!


gem_ctx_isolation

nonpriv

NO DOCUMENTATION!

nonpriv-switch

NO DOCUMENTATION!

clean

NO DOCUMENTATION!

dirty-create

NO DOCUMENTATION!

dirty-switch

NO DOCUMENTATION!

preservation

NO DOCUMENTATION!

preservation-S3

NO DOCUMENTATION!

preservation-S4

NO DOCUMENTATION!

preservation-reset

NO DOCUMENTATION!


gem_ctx_param

Basic test for context set/get param input validation.

basic

Basic test for context get/set param ioctls using valid context

basic-default

Basic test for context get/set param ioctls using default context

invalid-ctx-get

Verify that context get param ioctl using invalid context returns relevant error

invalid-ctx-set

Verify that context set param ioctl using invalid context returns relevant error

invalid-size-get

Verify that context get param ioctl returns valid size for valid context

invalid-size-set

Verify that context set param ioctl using invalid size returns relevant error

non-root-set

Verify that context set param ioctl returns relevant error in non root mode

root-set

Verify that context set param ioctl works fine in root mode

vm

Tests that multiple contexts can share the same VMA

set-priority-not-supported

Verify that context set param ioctl returns relevant error if driver doesn't supports assigning custom priorities from userspace

get-priority-new-ctx

Test performed with context param set to priority Verify that priority is default for newly created context

set-priority-invalid-size

Test performed with context param set to priority Verify that relevant error is returned on setting invalid ctx size with default priority

set-priority-range

Test performed with context param set to priority Change priority range to test value overflow

invalid-param-get

Checks that fetching context parameters using an unused param value is erroneous

invalid-param-set

Checks that setting context parameters using an unused param value is erroneous

invalid-set-ringsize

NO DOCUMENTATION!

invalid-get-ringsize

NO DOCUMENTATION!

invalid-set-no-zeromap

NO DOCUMENTATION!

invalid-get-no-zeromap

NO DOCUMENTATION!

invalid-get-engines

NO DOCUMENTATION!


gem_ctx_persistence

idempotent

NO DOCUMENTATION!

file

NO DOCUMENTATION!

process

NO DOCUMENTATION!

processes

NO DOCUMENTATION!

userptr

NO DOCUMENTATION!

hostile

NO DOCUMENTATION!

hang

NO DOCUMENTATION!

heartbeat-stop

NO DOCUMENTATION!

heartbeat-hang

NO DOCUMENTATION!

heartbeat-many

NO DOCUMENTATION!

heartbeat-close

NO DOCUMENTATION!

heartbeat-hostile

NO DOCUMENTATION!

legacy-engines-persistence

NO DOCUMENTATION!

legacy-engines-cleanup

NO DOCUMENTATION!

legacy-engines-queued

NO DOCUMENTATION!

legacy-engines-mixed

NO DOCUMENTATION!

legacy-engines-mixed-process

NO DOCUMENTATION!

legacy-engines-hostile

NO DOCUMENTATION!

legacy-engines-hostile-preempt

NO DOCUMENTATION!

legacy-engines-hang

NO DOCUMENTATION!

engines-persistence

NO DOCUMENTATION!

engines-cleanup

NO DOCUMENTATION!

engines-queued

NO DOCUMENTATION!

engines-mixed

NO DOCUMENTATION!

engines-mixed-process

NO DOCUMENTATION!

engines-hostile

NO DOCUMENTATION!

engines-hostile-preempt

NO DOCUMENTATION!

engines-hang

NO DOCUMENTATION!

saturated-hostile

NO DOCUMENTATION!

saturated-hostile-nopreempt

NO DOCUMENTATION!

many-contexts

NO DOCUMENTATION!

smoketest

NO DOCUMENTATION!


gem_ctx_shared

Test shared contexts.

create-shared-gtt

NO DOCUMENTATION!

detached-shared-gtt

NO DOCUMENTATION!

disjoint-timelines

NO DOCUMENTATION!

single-timeline

NO DOCUMENTATION!

exec-shared-gtt

NO DOCUMENTATION!

exec-single-timeline

NO DOCUMENTATION!

Q-independent

NO DOCUMENTATION!

Q-in-order

NO DOCUMENTATION!

Q-out-order

NO DOCUMENTATION!

Q-promotion

NO DOCUMENTATION!

Q-smoketest

NO DOCUMENTATION!

Q-smoketest-all

NO DOCUMENTATION!

exhaust-shared-gtt

NO DOCUMENTATION!

exhaust-shared-gtt-lrc

NO DOCUMENTATION!


gem_ctx_sseu

Test context render powergating programming.

invalid-args

NO DOCUMENTATION!

invalid-sseu

NO DOCUMENTATION!

mmap-args

NO DOCUMENTATION!

engines

NO DOCUMENTATION!


gem_ctx_switch

More than 100 subtests, skipping listing


gem_eio

Test that specific ioctls report a wedged GPU (EIO).

throttle

NO DOCUMENTATION!

create

Validate i915_gem_create_ioctl, while gpu is wedged for fb scanout.

create-ext

Validate i915_gem_create_ext_ioctl and checks if returns clear backing store while gpu is wedged for fb scanout.

context-create

NO DOCUMENTATION!

execbuf

NO DOCUMENTATION!

banned

NO DOCUMENTATION!

suspend

NO DOCUMENTATION!

hibernate

NO DOCUMENTATION!

in-flight-external

NO DOCUMENTATION!

in-flight-suspend

NO DOCUMENTATION!

reset-stress

NO DOCUMENTATION!

unwedge-stress

NO DOCUMENTATION!

wait-immediate

NO DOCUMENTATION!

wait-wedge-immediate

NO DOCUMENTATION!

in-flight-immediate

NO DOCUMENTATION!

in-flight-contexts-immediate

NO DOCUMENTATION!

in-flight-internal-immediate

NO DOCUMENTATION!

wait-1us

NO DOCUMENTATION!

wait-wedge-1us

NO DOCUMENTATION!

in-flight-1us

NO DOCUMENTATION!

in-flight-contexts-1us

NO DOCUMENTATION!

in-flight-internal-1us

NO DOCUMENTATION!

wait-10ms

NO DOCUMENTATION!

wait-wedge-10ms

NO DOCUMENTATION!

in-flight-10ms

NO DOCUMENTATION!

in-flight-contexts-10ms

NO DOCUMENTATION!

in-flight-internal-10ms

NO DOCUMENTATION!

kms

NO DOCUMENTATION!


gem_evict_alignment

Run a couple of big batches to force the unbind on misalignment code.

minor-normal

NO DOCUMENTATION!

major-normal

NO DOCUMENTATION!

minor-interruptible

NO DOCUMENTATION!

major-interruptible

NO DOCUMENTATION!

minor-hang

NO DOCUMENTATION!

major-hang

NO DOCUMENTATION!


gem_evict_everything

Run a couple of big batches to force the eviction code.

forked-normal

NO DOCUMENTATION!

forked-interruptible

NO DOCUMENTATION!

forked-swapping-normal

NO DOCUMENTATION!

forked-swapping-interruptible

NO DOCUMENTATION!

forked-multifd-normal

NO DOCUMENTATION!

forked-multifd-interruptible

NO DOCUMENTATION!

forked-swapping-multifd-normal

NO DOCUMENTATION!

forked-swapping-multifd-interruptible

NO DOCUMENTATION!

forked-mempressure-normal

NO DOCUMENTATION!

forked-mempressure-interruptible

NO DOCUMENTATION!

forked-swapping-mempressure-normal

NO DOCUMENTATION!

forked-swapping-mempressure-interruptible

NO DOCUMENTATION!

forked-multifd-mempressure-normal

NO DOCUMENTATION!

forked-multifd-mempressure-interruptible

NO DOCUMENTATION!

forked-swapping-multifd-mempressure-normal

NO DOCUMENTATION!

forked-swapping-multifd-mempressure-interruptible

NO DOCUMENTATION!

mlocked-normal

NO DOCUMENTATION!

swapping-normal

NO DOCUMENTATION!

minor-normal

NO DOCUMENTATION!

major-normal

NO DOCUMENTATION!

mlocked-interruptible

NO DOCUMENTATION!

swapping-interruptible

NO DOCUMENTATION!

minor-interruptible

NO DOCUMENTATION!

major-interruptible

NO DOCUMENTATION!

mlocked-hang

NO DOCUMENTATION!

swapping-hang

NO DOCUMENTATION!

minor-hang

NO DOCUMENTATION!

major-hang

NO DOCUMENTATION!


gem_exec_alignment

Exercises the basic execbuffer using object alignments

single

NO DOCUMENTATION!

many

NO DOCUMENTATION!

forked

NO DOCUMENTATION!

pi

NO DOCUMENTATION!

pi-shared

NO DOCUMENTATION!

pi-isolated

NO DOCUMENTATION!


gem_exec_async

Check that we can issue concurrent writes across the engines.

concurrent-writes

NO DOCUMENTATION!

forked-writes

NO DOCUMENTATION!


gem_exec_await

wide-all

NO DOCUMENTATION!

wide-contexts

NO DOCUMENTATION!


gem_exec_balancer

Exercise in-kernel load-balancing

invalid-balancer

NO DOCUMENTATION!

invalid-bonds

NO DOCUMENTATION!

individual

NO DOCUMENTATION!

indices

NO DOCUMENTATION!

busy

NO DOCUMENTATION!

full

NO DOCUMENTATION!

full-pulse

NO DOCUMENTATION!

full-late

NO DOCUMENTATION!

full-late-pulse

NO DOCUMENTATION!

fairslice

NO DOCUMENTATION!

nop

NO DOCUMENTATION!

sequential

NO DOCUMENTATION!

semaphore

NO DOCUMENTATION!

hog

NO DOCUMENTATION!

waits

NO DOCUMENTATION!

smoke

NO DOCUMENTATION!

bonded-chain

NO DOCUMENTATION!

bonded-semaphore

NO DOCUMENTATION!

sliced

NO DOCUMENTATION!

bonded-pair

NO DOCUMENTATION!

bonded-dual

NO DOCUMENTATION!

bonded-sync

NO DOCUMENTATION!

parallel-ordering

NO DOCUMENTATION!

parallel

NO DOCUMENTATION!

parallel-bb-first

NO DOCUMENTATION!

parallel-out-fence

NO DOCUMENTATION!

parallel-dmabuf-import-out-fence

Regression test to check that dmabuf imported sync file can handle fence array

parallel-keep-in-fence

NO DOCUMENTATION!

parallel-keep-submit-fence

NO DOCUMENTATION!

parallel-contexts

NO DOCUMENTATION!

parallel-balancer

NO DOCUMENTATION!

bonded-false-hang

NO DOCUMENTATION!

bonded-true-hang

NO DOCUMENTATION!

hang

NO DOCUMENTATION!

persistence

NO DOCUMENTATION!

noheartbeat

NO DOCUMENTATION!

nohangcheck

NO DOCUMENTATION!


gem_exec_basic

Basic sanity check of execbuf-ioctl rings.

basic

Check basic functionality of GEM_EXECBUFFER2 ioctl on every ring and iterating over memory regions.


gem_exec_big

Run a large nop batch to stress test the error capture code.

single

NO DOCUMENTATION!

exhaustive

NO DOCUMENTATION!


gem_exec_capture

Check that we capture the user specified objects on a hang

capture

NO DOCUMENTATION!

capture-invisible

Check that the kernel doesn't crash if the pages can't be copied from the CPU during error capture.

capture-recoverable

Verify that the kernel rejects EXEC_OBJECT_CAPTURE with recoverable contexts.

many-4K-zero

NO DOCUMENTATION!

many-4K-incremental

NO DOCUMENTATION!

many-2M-zero

NO DOCUMENTATION!

many-2M-incremental

NO DOCUMENTATION!

many-256M-incremental

NO DOCUMENTATION!

userptr

NO DOCUMENTATION!

pi

NO DOCUMENTATION!


gem_exec_create

This test overloads the driver with transient active objects and checks if we don't kill thesystem under the memory pressure some of the symptoms this test look for include mysterioushangs.

legacy

Check if we kill the system by overloading it with active objects iterating over legacy engines.

basic

Check if we kill system by overloading it with active objects iterating over all engines.

forked

Concurrently overloads system with active objects and checks if we kill system.

madvise

This test does a forced reclaim, behaving like a bad application leaking its bo cache.


gem_exec_endless

dispatch

NO DOCUMENTATION!


gem_exec_fair

Check that GPU time and execution order is fairly distributed across clients

basic-none

NO DOCUMENTATION!

basic-none-vip

NO DOCUMENTATION!

basic-none-solo

NO DOCUMENTATION!

basic-none-share

NO DOCUMENTATION!

basic-none-rrul

NO DOCUMENTATION!

basic-throttle

NO DOCUMENTATION!

basic-pace

NO DOCUMENTATION!

basic-pace-solo

NO DOCUMENTATION!

basic-pace-share

NO DOCUMENTATION!

basic-sync

NO DOCUMENTATION!

basic-flow

NO DOCUMENTATION!

basic-deadline

NO DOCUMENTATION!

deadline-prio

NO DOCUMENTATION!

fair-none

NO DOCUMENTATION!

fair-none-vip

NO DOCUMENTATION!

fair-none-solo

NO DOCUMENTATION!

fair-none-share

NO DOCUMENTATION!

fair-none-rrul

NO DOCUMENTATION!

fair-none-ping

NO DOCUMENTATION!

fair-throttle

NO DOCUMENTATION!

fair-throttle-vip

NO DOCUMENTATION!

fair-throttle-solo

NO DOCUMENTATION!

fair-throttle-share

NO DOCUMENTATION!

fair-throttle-rrul

NO DOCUMENTATION!

fair-pace

NO DOCUMENTATION!

fair-pace-solo

NO DOCUMENTATION!

fair-pace-share

NO DOCUMENTATION!

fair-pace-ping

NO DOCUMENTATION!

fair-sync

NO DOCUMENTATION!

fair-sync-vip

NO DOCUMENTATION!

fair-sync-solo

NO DOCUMENTATION!

fair-flow

NO DOCUMENTATION!

fair-flow-solo

NO DOCUMENTATION!

fair-flow-share

NO DOCUMENTATION!

fair-flow-ping

NO DOCUMENTATION!

fair-next

NO DOCUMENTATION!

fair-next-solo

NO DOCUMENTATION!

fair-next-share

NO DOCUMENTATION!

fair-next-ping

NO DOCUMENTATION!

fair-spare

NO DOCUMENTATION!

fair-spare-solo

NO DOCUMENTATION!

fair-half

NO DOCUMENTATION!

fair-half-solo

NO DOCUMENTATION!


gem_exec_fence

Check that execbuf waits for explicit fences

basic-busy-all

Basic check for composite fence on all busy engines.

basic-wait-all

Basic check for composite fence with additional wait on all busy engines.

busy-hang-all

Check for composite fence on all busy engines with a pending gpu hang.

wait-hang-all

Check for composite fence with additional wait on all busy engines and with a pending gpu hang.

basic-busy

Basic check for explicit fence on each busy engine.

basic-wait

Basic check for explicit fence with additional wait time on each busy engine.

basic-await

Basic check for explicit fence with async wait on each engine.

nb-await

Check for explicit fence with non-blocking wait on each engine.

keep-in-fence

Check in-fence is not overwritten with out-fence on each engine.

parallel

Check for EXEC_FENCE_SUBMIT in parallel execution scenarios on each engine.

concurrent

Check blocking bonded fences on each engine.

submit

Check timeslicing on submit-fence.

submit3

Check timeslicing on submit-fence by submitting coupled batches.

submit67

Check timeslicing on submit-fence by submitting more coupled batches than can possibly fit into the ELSP.

submit-chain

Check launching a chain of spinners across all engines using submit-fence.

busy-hang

Check for explicit fence on each busy engine with a pending gpu hang.

wait-hang

Check for explicit fence with additional wait time on each busy engine with a pending gpu hang.

await-hang

Check for explicit fence with async wait on each engine with a pending gpu hang.

nb-await-hang

Check for explicit fence with non-blocking async wait on each engine with a pending gpu hang.

long-history

Verifies accumulation of long history of fences.

expired-history

Verifies long history of fences are expired.

invalid-fence-array

Verifies invalid fence-array pointers are rejected.

syncobj-unused-fence

Verifies that a syncobj passed into execbuf but with no signal/wait flag is left untouched.

syncobj-invalid-wait

Verifies that submitting an execbuf with a wait on a syncobj that doesn't exists is rejected.

syncobj-invalid-flags

Verifies that invalid fence flags in fence-array are rejected.

syncobj-signal

Verifies proper signaling of a fence-array syncobj through execbuf.

syncobj-wait

Verifies that waiting on a timeline syncobj point between engines works.

syncobj-export

Verify exporting of fence-array syncobj signaled by i915.

syncobj-repeat

Verifies that waiting & signaling a same fence-array syncobj within the same execbuf works.

syncobj-import

Verifies creating of a syncobj from explicit fence.

syncobj-channel

Verifies two clients racing for syncobj using channel.

invalid-timeline-fence-array

Verifies invalid execbuf parameters in drm_i915_gem_execbuffer_ext_timeline_fences are rejected

syncobj-timeline-unused-fence

Verifies that a timeline syncobj passed into drm_i915_gem_execbuffer_ext_timeline_fences but with no signal/wait flag is left untouched

syncobj-timeline-invalid-wait

Verifies that submitting an execbuf with a wait on a timeline syncobj point that does not exists is rejected

syncobj-timeline-invalid-flags

Verifies that invalid fence flags in drm_i915_gem_execbuffer_ext_timeline_fences are rejected

syncobj-timeline-signal

Verifies proper signaling of a timeline syncobj through execbuf

syncobj-timeline-wait

Verifies that waiting on a timeline syncobj point between engines works

syncobj-timeline-export

Verify exporting of timeline syncobj signaled by i915

syncobj-timeline-repeat

Verifies that waiting & signaling a same timeline syncobj point within the same execbuf fworks

syncobj-timeline-multiple-ext-nodes

Verify that passing multiple execbuffer_ext nodes works

syncobj-timeline-chain-engines

Engine chaining tests to verify ordering of timeline syncobjs through execbuf.

syncobj-stationary-timeline-chain-engines

Engine chaining tests to verify ordering of timeline syncobj with stationary timeline points.

syncobj-backward-timeline-chain-engines

Engine chaining tests to verify ordering of timeline syncobjs with backward timeline points.


gem_exec_flush

Basic check of flushing after batches

More than 100 subtests, skipping listing


gem_exec_gttfill

Fill the GTT with batches.

basic

Checks if it can handle enough batches to fill gtt

engines

Checks the correctness of handling enough batches to fill gtt for each engine

all-engines

Stress test check behaviour/correctness of handling batches to fill gtt

multigpu-basic

NO DOCUMENTATION!


gem_exec_latency

rthog-submit

NO DOCUMENTATION!

dispatch

NO DOCUMENTATION!

dispatch-queued

NO DOCUMENTATION!

live-dispatch

NO DOCUMENTATION!

live-dispatch-queued

NO DOCUMENTATION!

poll

NO DOCUMENTATION!

synchronisation

NO DOCUMENTATION!

synchronisation-queued

NO DOCUMENTATION!

execution-latency

NO DOCUMENTATION!

wakeup-latency

NO DOCUMENTATION!

preemption

NO DOCUMENTATION!

context-switch

NO DOCUMENTATION!

context-preempt

NO DOCUMENTATION!


gem_exec_lut_handle

Exercises the basic execbuffer using the handle LUT interface.


gem_exec_nop

basic-series

NO DOCUMENTATION!

basic-parallel

NO DOCUMENTATION!

basic-sequential

NO DOCUMENTATION!

single

NO DOCUMENTATION!

signal

NO DOCUMENTATION!

signal-all

NO DOCUMENTATION!

series

NO DOCUMENTATION!

parallel

NO DOCUMENTATION!

independent

NO DOCUMENTATION!

multiple

NO DOCUMENTATION!

sequential

NO DOCUMENTATION!

forked-sequential

NO DOCUMENTATION!

context-sequential

NO DOCUMENTATION!

preempt

NO DOCUMENTATION!

poll

NO DOCUMENTATION!

headless

NO DOCUMENTATION!

poll-sequential

NO DOCUMENTATION!


gem_exec_parallel

Exercise filling buffers by many clients working in parallel.

engines

Check with engines working in parallel.

basic

Check basic functionality per engine.

contexts

Check with many contexts.

fds

Check with many fds.

userptr

Check basic userptr thrashing.


gem_exec_params

readonly

NO DOCUMENTATION!

mmapped

NO DOCUMENTATION!

no-bsd

NO DOCUMENTATION!

no-blt

NO DOCUMENTATION!

no-vebox

NO DOCUMENTATION!

invalid-ring

NO DOCUMENTATION!

invalid-ring2

NO DOCUMENTATION!

invalid-bsd-ring

NO DOCUMENTATION!

invalid-bsd1-flag-on-render

NO DOCUMENTATION!

invalid-bsd2-flag-on-render

NO DOCUMENTATION!

invalid-bsd1-flag-on-blt

NO DOCUMENTATION!

invalid-bsd2-flag-on-blt

NO DOCUMENTATION!

invalid-bsd1-flag-on-vebox

NO DOCUMENTATION!

invalid-bsd2-flag-on-vebox

NO DOCUMENTATION!

rel-constants-invalid-ring

NO DOCUMENTATION!

rel-constants-invalid-rel-gen5

NO DOCUMENTATION!

rel-constants-invalid

NO DOCUMENTATION!

sol-reset-invalid

NO DOCUMENTATION!

sol-reset-not-gen7

NO DOCUMENTATION!

secure-non-root

NO DOCUMENTATION!

secure-non-master

NO DOCUMENTATION!

invalid-flag

NO DOCUMENTATION!

cliprects-invalid

NO DOCUMENTATION!

rs-invalid

NO DOCUMENTATION!

invalid-fence-in

NO DOCUMENTATION!

invalid-fence-in-submit

NO DOCUMENTATION!

rsvd2-dirt

NO DOCUMENTATION!

batch-first

NO DOCUMENTATION!

invalid-batch-start-offset

NO DOCUMENTATION!

larger-than-life-batch

NO DOCUMENTATION!

cliprects_ptr-dirt

NO DOCUMENTATION!

DR1-dirt

NO DOCUMENTATION!

DR4-dirt

NO DOCUMENTATION!


gem_exercise_blt

Exercise blitter commands

fast-copy

Check fast-copy blit

fast-copy-emit

Check multiple fast-copy in one batch


gem_exec_reloc

Basic sanity check of execbuf-ioctl relocations.

More than 100 subtests, skipping listing


gem_exec_schedule

Check that we can control the order of execution

fifo

NO DOCUMENTATION!

implicit-read-write

NO DOCUMENTATION!

implicit-write-read

NO DOCUMENTATION!

implicit-boths

NO DOCUMENTATION!

independent

NO DOCUMENTATION!

u-independent

NO DOCUMENTATION!

timeslicing

NO DOCUMENTATION!

thriceslice

NO DOCUMENTATION!

manyslice

NO DOCUMENTATION!

lateslice

NO DOCUMENTATION!

u-lateslice

NO DOCUMENTATION!

fairslice

NO DOCUMENTATION!

u-fairslice

NO DOCUMENTATION!

fairslice-all

NO DOCUMENTATION!

u-fairslice-all

NO DOCUMENTATION!

submit-early-slice

NO DOCUMENTATION!

u-submit-early-slice

NO DOCUMENTATION!

submit-golden-slice

NO DOCUMENTATION!

u-submit-golden-slice

NO DOCUMENTATION!

submit-late-slice

NO DOCUMENTATION!

u-submit-late-slice

NO DOCUMENTATION!

semaphore-user

NO DOCUMENTATION!

semaphore-codependency

NO DOCUMENTATION!

semaphore-resolve

NO DOCUMENTATION!

semaphore-noskip

NO DOCUMENTATION!

u-semaphore-user

NO DOCUMENTATION!

u-semaphore-codependency

NO DOCUMENTATION!

u-semaphore-resolve

NO DOCUMENTATION!

u-semaphore-noskip

NO DOCUMENTATION!

smoketest-all

NO DOCUMENTATION!

in-order

NO DOCUMENTATION!

out-order

NO DOCUMENTATION!

promotion

NO DOCUMENTATION!

preempt

NO DOCUMENTATION!

preempt-contexts

NO DOCUMENTATION!

preempt-user

NO DOCUMENTATION!

preempt-self

NO DOCUMENTATION!

preempt-other

NO DOCUMENTATION!

preempt-other-chain

NO DOCUMENTATION!

preempt-engines

NO DOCUMENTATION!

preempt-queue

NO DOCUMENTATION!

preempt-queue-chain

NO DOCUMENTATION!

preempt-queue-contexts

NO DOCUMENTATION!

preempt-queue-contexts-chain

NO DOCUMENTATION!

preempt-hang

NO DOCUMENTATION!

preemptive-hang

NO DOCUMENTATION!

noreorder

NO DOCUMENTATION!

noreorder-priority

NO DOCUMENTATION!

noreorder-corked

NO DOCUMENTATION!

deep

NO DOCUMENTATION!

wide

NO DOCUMENTATION!

smoketest

NO DOCUMENTATION!

reorder-wide

NO DOCUMENTATION!

pi-ringfull

NO DOCUMENTATION!

pi-common

NO DOCUMENTATION!

pi-userfault

NO DOCUMENTATION!

pi-distinct-iova

NO DOCUMENTATION!

pi-shared-iova

NO DOCUMENTATION!

semaphore-power

NO DOCUMENTATION!


gem_exec_store

Exercise store dword functionality using execbuf-ioctl

basic

Verify that all capable engines can store dwords to a common buffer object

dword

Verify that each capable engine can store a dword to a buffer object

cachelines

Verify that each capable engine can store a dword to different cachelines of a buffer object

pages

Verify that each capable engine can store a dword to various page-sized buffer objects


gem_exec_suspend

Exercise simple execbufs runs across various suspend/resume cycles.

basic

Check basic functionality without any suspend/resume cycle.

basic-S0

Check with suspend-to-idle target state.

basic-S3-devices

Check with suspend-to-mem with devices only.

basic-S3

Check full cycle of suspend-to-mem.

basic-S4-devices

Check with suspend-to-disk with devices only.

basic-S4

Check full cycle of suspend-to-disk.

fixed

Check without suspend/resume cycle state with fixed object.

uncached

Check without suspend/resume cycle state with uncached object.

cached

Check without suspend/resume cycle state with cached object.

fixed-S3

Check suspend-to-mem state with fixed object.

uncached-S3

Check suspend-to-mem state with uncached object.

cached-S3

Check suspend-to-mem state with cached object.

fixed-S4

Check suspend-to-disk state with fixed object.

uncached-S4

Check suspend-to-disk state with uncached object.

cached-S4

Check suspend-to-disk state with cached object.

hang-S3

Check full cycle of suspend-to-mem with a pending GPU hang.

hang-S4

Check full cycle of suspend-to-disk with a pending GPU hang.

power-S0

Check power consumption during idle state.

power-S3

Check power consumption during suspend-to-mem state.


gem_exec_whisper

basic-normal

NO DOCUMENTATION!

basic-normal-all

NO DOCUMENTATION!

interruptible

NO DOCUMENTATION!

interruptible-all

NO DOCUMENTATION!

basic-forked

NO DOCUMENTATION!

basic-forked-all

NO DOCUMENTATION!

basic-sync

NO DOCUMENTATION!

basic-sync-all

NO DOCUMENTATION!

chain

NO DOCUMENTATION!

chain-all

NO DOCUMENTATION!

chain-forked

NO DOCUMENTATION!

chain-forked-all

NO DOCUMENTATION!

chain-interruptible

NO DOCUMENTATION!

chain-interruptible-all

NO DOCUMENTATION!

chain-sync

NO DOCUMENTATION!

chain-sync-all

NO DOCUMENTATION!

basic-fds

NO DOCUMENTATION!

basic-fds-all

NO DOCUMENTATION!

fds-interruptible

NO DOCUMENTATION!

fds-interruptible-all

NO DOCUMENTATION!

basic-fds-forked

NO DOCUMENTATION!

basic-fds-forked-all

NO DOCUMENTATION!

basic-fds-priority

NO DOCUMENTATION!

basic-fds-priority-all

NO DOCUMENTATION!

fds-chain

NO DOCUMENTATION!

fds-chain-all

NO DOCUMENTATION!

fds-sync

NO DOCUMENTATION!

fds-sync-all

NO DOCUMENTATION!

basic-contexts

NO DOCUMENTATION!

basic-contexts-all

NO DOCUMENTATION!

contexts-interruptible

NO DOCUMENTATION!

contexts-interruptible-all

NO DOCUMENTATION!

basic-contexts-forked

NO DOCUMENTATION!

basic-contexts-forked-all

NO DOCUMENTATION!

basic-contexts-priority

NO DOCUMENTATION!

basic-contexts-priority-all

NO DOCUMENTATION!

contexts-chain

NO DOCUMENTATION!

contexts-chain-all

NO DOCUMENTATION!

contexts-sync

NO DOCUMENTATION!

contexts-sync-all

NO DOCUMENTATION!

basic-queues

NO DOCUMENTATION!

basic-queues-all

NO DOCUMENTATION!

queues-interruptible

NO DOCUMENTATION!

queues-interruptible-all

NO DOCUMENTATION!

basic-queues-forked

NO DOCUMENTATION!

basic-queues-forked-all

NO DOCUMENTATION!

basic-queues-priority

NO DOCUMENTATION!

basic-queues-priority-all

NO DOCUMENTATION!

queues-chain

NO DOCUMENTATION!

queues-chain-all

NO DOCUMENTATION!

queues-sync

NO DOCUMENTATION!

queues-sync-all

NO DOCUMENTATION!

normal-engine

NO DOCUMENTATION!

interruptible-engine

NO DOCUMENTATION!

forked-engine

NO DOCUMENTATION!

sync-engine

NO DOCUMENTATION!

fds-engine

NO DOCUMENTATION!

fds-interruptible-engine

NO DOCUMENTATION!

fds-forked-engine

NO DOCUMENTATION!

fds-priority-engine

NO DOCUMENTATION!

fds-sync-engine

NO DOCUMENTATION!

contexts-engine

NO DOCUMENTATION!

contexts-interruptible-engine

NO DOCUMENTATION!

contexts-forked-engine

NO DOCUMENTATION!

contexts-priority-engine

NO DOCUMENTATION!

contexts-sync-engine

NO DOCUMENTATION!

queues-engine

NO DOCUMENTATION!

queues-interruptible-engine

NO DOCUMENTATION!

queues-forked-engine

NO DOCUMENTATION!

queues-priority-engine

NO DOCUMENTATION!

queues-sync-engine

NO DOCUMENTATION!

hang-normal

NO DOCUMENTATION!

hang-forked

NO DOCUMENTATION!

hang-sync

NO DOCUMENTATION!

hang-chain

NO DOCUMENTATION!

hang-chain-forked

NO DOCUMENTATION!

hang-chain-sync

NO DOCUMENTATION!

hang-fds

NO DOCUMENTATION!

hang-fds-forked

NO DOCUMENTATION!

hang-fds-priority

NO DOCUMENTATION!

hang-fds-chain

NO DOCUMENTATION!

hang-fds-sync

NO DOCUMENTATION!

hang-contexts

NO DOCUMENTATION!

hang-contexts-forked

NO DOCUMENTATION!

hang-contexts-priority

NO DOCUMENTATION!

hang-contexts-chain

NO DOCUMENTATION!

hang-contexts-sync

NO DOCUMENTATION!

hang-queues

NO DOCUMENTATION!

hang-queues-forked

NO DOCUMENTATION!

hang-queues-priority

NO DOCUMENTATION!

hang-queues-chain

NO DOCUMENTATION!

hang-queues-sync

NO DOCUMENTATION!


gem_fd_exhaustion


gem_fence_thrash

bo-write-verify-none

NO DOCUMENTATION!

bo-write-verify-x

NO DOCUMENTATION!

bo-write-verify-y

NO DOCUMENTATION!

bo-write-verify-threaded-none

NO DOCUMENTATION!

bo-write-verify-threaded-x

NO DOCUMENTATION!

bo-write-verify-threaded-y

NO DOCUMENTATION!

bo-copy

NO DOCUMENTATION!


gem_fence_upload

performance

NO DOCUMENTATION!

thread-contention

NO DOCUMENTATION!

wc-contention

NO DOCUMENTATION!

thread-performance-read

NO DOCUMENTATION!

thread-performance-write

NO DOCUMENTATION!

thread-performance-both

NO DOCUMENTATION!


gem_fenced_exec_thrash

Test execbuf fence accounting.

2-spare-fences

NO DOCUMENTATION!

no-spare-fences

NO DOCUMENTATION!

no-spare-fences-busy

NO DOCUMENTATION!

no-spare-fences-interruptible

NO DOCUMENTATION!

no-spare-fences-busy-interruptible

NO DOCUMENTATION!

too-many-fences

NO DOCUMENTATION!


gem_flink_basic

Tests for flink - a way to export a gem object by name

basic

Check if gem object can be exported to global namespace and then opened.

double-flink

Tests that multiple flinks for the same gem object share the same name.

bad-flink

Verify that GEM_FLINK ioctl with invalid gem object fails.

bad-open

Verify that GEM_OPEN ioctl with invalid flink name fails.

flink-lifetime

Tests flink lifetime by referencing from multiple descriptors.


gem_flink_race

Check for flink/open vs. gem close races.

flink_name

NO DOCUMENTATION!

flink_close

NO DOCUMENTATION!


gem_gpgpu_fill

basic

NO DOCUMENTATION!


gem_gtt_cpu_tlb

Check whether gtt tlbs for cpu access are correctly invalidated.


gem_gtt_hog


gem_gtt_speed


gem_huc_copy

A very simple workload for the HuC.

huc-copy

Make sure that Huc firmware worksby copying a char array using Hucand verifying the copied result


gem_linear_blits

Test doing many blits with a working set larger than the aperture size.

basic

Basic blitter functionality check with 2 buffers

normal

The intent is to push beyond the working GTT size to force the driver to rebind the buffers

interruptible

Test with interrupts in between the parent process


gem_lmem_evict

Force tiny lmem size for easily testing eviction scenarios.

dontneed-evict-race

Regression test to verify that madvise will sync against busy dma-resv object for lmem


gem_lmem_swapping

Exercise local memory swapping.

basic

Exercise local memory swapping to system memory

massive

Exercise local memory swapping to system memory

massive-random

Exercise local memory swapping to system memory

random

Exercise local memory swapping to system memory

random-engines

Exercise local memory swapping to system memory

heavy-random

Exercise local memory swapping to system memory

heavy-multi

Exercise local memory swapping to system memory

verify

Exercise local memory swapping to system memory

verify-random

Exercise local memory swapping to system memory

heavy-verify-random

Exercise local memory swapping to system memory

heavy-verify-multi

Exercise local memory swapping to system memory

parallel-random

Exercise local memory swapping to system memory

parallel-random-engines

Exercise local memory swapping to system memory

parallel-random-verify

Exercise local memory swapping to system memory

parallel-multi

Exercise local memory swapping to system memory

verify-ccs

Exercise local memory swapping to system memory

verify-random-ccs

Exercise local memory swapping to system memory

heavy-verify-random-ccs

Exercise local memory swapping to system memory

heavy-verify-multi-ccs

Exercise local memory swapping to system memory

parallel-random-verify-ccs

Exercise local memory swapping to system memory

smem-oom

Exercise local memory swapping during exhausting system memory


gem_lut_handle

Exercises the basic execbuffer using the handle LUT interface.


gem_madvise

Checks that the kernel reports EFAULT when trying to use purged bo.

dontneed-before-mmap

Check signal for Segmentation Fault and bus error before obtaining a purgeable object and calling for sighandler.

dontneed-after-mmap

Check signal for Segmentation Fault and bus error after obtaining a purgeable object and calling for sighandler.

dontneed-before-pwrite

Check if PWRITE reports EFAULT when trying to use purged bo for write operation.

dontneed-before-exec

Check if EXECBUFFER2 reports EFAULT when trying to submit purged bo for GPU.


gem_media_fill

Basic test for the media_fill() function, a very simple workload for the Media pipeline.

media-fill

NO DOCUMENTATION!


gem_media_vme

A very simple workload for the VME media block.


gem_mmap

Basic MMAP IOCTL tests for memory regions.

bad-object

Verify mapping to invalid gem objects won't be created.

bad-offset

Verify mapping to gem object with invalid offset won't be created.

bad-size

Verify mapping to gem object with invalid size won't be created.

basic

Test basics of newly mapped gem object like default content, write and read coherency, mapping existence after gem_close and unmapping.

short-mmap

Map small buffer object though direct CPU access, bypassing GPU.

pf-nonblock

Verify that GTT page faults are asynchronous to GPU rendering and completes within a specific time.

basic-small-bo

Test the write read coherency and simultaneous access of different pages of a small buffer object.

big-bo

Test the write read coherency and simultaneous access of different pages of a big buffer object.

huge-bo

Test the write read coherency and simultaneous access of different pages of a huge buffer object.

swap-bo

Test the write read coherency and simultaneous access of different pages while swapping buffer object.


gem_mmap_gtt

Ensure that all operations around MMAP_GTT ioctl works.

bad-object

Verify mapping to invalid gem objects fails.

basic

Basic checks of GEM_MMAP_GTT ioctl.

basic-short

Test mmaping less than the full object.

basic-copy

Test copy between two GTT mmappings.

basic-read

Test to read content from GTT mmapped object.

basic-write

Test to write content to GTT mmapped object.

basic-write-gtt

Test creates a prefault object into GTT and writes into it from another GTT mmapped.

ptrace

Inspect a GTT mmap using ptrace().

coherency

Check whether a write through the GTT is immediately visible to the CPU.

clflush

Check the userspace clflushing of the GTT mmap.

hang

Check read/writes across a GPU reset.

hang-busy

Exercise the GTT mmap revocation for a reset on a busy object.

hang-user

Mix a busy hang with GTT and userptr.

basic-read-write

Check basic read->write order of a GTT mmapped bo.

basic-write-read

Check basic write->read order of a GTT mmapped bo.

basic-read-write-distinct

Check distinct read->write order of a GTT mmapped bo.

basic-write-read-distinct

Check distinct write->read order of a GTT mmapped bo.

fault-concurrent

Excercise concurrent pagefaulting of a GTT mmaped bo.

fault-concurrent-X

Excercise concurrent pagefaulting of a X-tiled GTT mmaped bo.

fault-concurrent-Y

Excercise concurrent pagefaulting of a Y-tiled GTT mmaped bo.

basic-write-cpu-read-gtt

Check coherency between GTT and CPU mmappings with LLC.

basic-wc

Check the performance of WC writes with WC reads of GTT and WC writes of GTT with WB writes of CPU.

isolation

Test mmap_offset lifetime, closing the object on another file should not affect the local mmap_offset.

zero-extend

Test MMAP_GTT extension validity.

close-race

Test to check that a few threads opening and closing handles cause explosion in other threads in the process of mmaping that handle.

flink-race

Test to check that a few threads opening and closing flink handles cause explosion in other threads in the process of mmaping that handle.

pf-nonblock

Check that the initial pagefault is non-blocking.

basic-small-bo

Check mmap access to a small buffer object by CPU directly and through GTT in sequence.

basic-small-bo-tiledX

Check mmap access to a small X-tiled buffer object by CPU directly and through GTT in sequence.

basic-small-bo-tiledY

Check mmap access to a small Y-tiled buffer object by CPU directly and through GTT in sequence.

big-bo

Check mmap access to a big buffer object by CPU directly and through GTT in sequence.

big-bo-tiledX

Check mmap access to a big X-tiled buffer object by CPU directly and through GTT in sequence.

big-bo-tiledY

Check mmap access to a big Y-tiled buffer object by CPU directly and through GTT in sequence.

huge-bo

Check mmap access to a huge buffer object by CPU directly and through GTT in sequence.

huge-bo-tiledX

Check mmap access to a huge X-tiled buffer object by CPU directly and through GTT in sequence.

huge-bo-tiledY

Check mmap access to a huge Y-tiled buffer object by CPU directly and through GTT in sequence.

basic-small-copy

Check page by page copying between two GTT mmapped normal-small bo's.

cpuset-basic-small-copy

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped normal-small bo's.

forked-basic-small-copy

Add forked contention and check page by page copying between two GTT mmapped normal-small bo's.

basic-small-copy-XY

Check page by page copying between two GTT mmapped tiled-small bo's.

cpuset-basic-small-copy-XY

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped tiled-small bo's.

forked-basic-small-copy-XY

Add forked contention and check page by page copying between two GTT mmapped tiled-small bo's.

basic-small-copy-odd

Check page by page copying between two GTT mmapped odd tiled-small bo's.

cpuset-basic-small-copy-odd

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped odd tiled-small bo's.

forked-basic-small-copy-odd

Add forked contention and check page by page copying between two GTT mmapped odd tiled-small bo's.

medium-copy

Check page by page copying between two GTT mmapped normal-medium bo's.

cpuset-medium-copy

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped normal-medium bo's.

forked-medium-copy

Add forked contention and check page by page copying between two GTT mmapped normal-medium bo's.

medium-copy-XY

Check page by page copying between two GTT mmapped tiled-medium bo's.

cpuset-medium-copy-XY

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped tiled-medium bo's.

forked-medium-copy-XY

Add forked contention and check page by page copying between two GTT mmapped tiled-medium bo's.

medium-copy-odd

Check page by page copying between two GTT mmapped odd tiled-medium bo's.

cpuset-medium-copy-odd

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped odd tiled-medium bo's.

forked-medium-copy-odd

Add forked contention and check page by page copying between two GTT mmapped odd tiled-medium bo's.

big-copy

Check page by page copying between two GTT mmapped normal-big bo's.

cpuset-big-copy

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped normal-big bo's.

forked-big-copy

Add forked contention and check page by page copying between two GTT mmapped normal-big bo's.

big-copy-XY

Check page by page copying between two GTT mmapped tiled-big bo's.

cpuset-big-copy-XY

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped tiled-big bo's.

forked-big-copy-XY

Add forked contention and check page by page copying between two GTT mmapped tiled-big bo's.

big-copy-odd

Check page by page copying between two GTT mmapped odd tiled-big bo's.

cpuset-big-copy-odd

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped odd tiled-big bo's.

forked-big-copy-odd

Add forked contention and check page by page copying between two GTT mmapped odd tiled-big bo's.

huge-copy

Check page by page copying between two GTT mmapped normal-huge bo's.

cpuset-huge-copy

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped normal-huge bo's.

forked-huge-copy

Add forked contention and check page by page copying between two GTT mmapped normal-huge bo's.

huge-copy-XY

Check page by page copying between two GTT mmapped tiled-huge bo's.

cpuset-huge-copy-XY

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped tiled-huge bo's.

forked-huge-copy-XY

Add forked contention and check page by page copying between two GTT mmapped tiled-huge bo's.

huge-copy-odd

Check page by page copying between two GTT mmapped odd tiled-huge bo's.

cpuset-huge-copy-odd

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped odd tiled-huge bo's.

forked-huge-copy-odd

Add forked contention and check page by page copying between two GTT mmapped odd tiled-huge bo's.

swap-copy

Check page by page copying between two GTT mmapped normal-huge bo's larger than physical memory and resulting in thrashing of swap space.

cpuset-swap-copy

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped normal-huge bo's larger than physical memory and resulting in thrashing of swap space.

forked-swap-copy

Add forked contention and check page by page copying between two GTT mmapped normal-huge bo's larger than physical memory and resulting in thrashing of swap space.

swap-copy-XY

Check page by page copying between two GTT mmapped tiled-huge bo's larger than physical memory and resulting in thrashing of swap space.

cpuset-swap-copy-XY

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped tiled-huge bo's larger than physical memory and resulting in thrashing of swap space.

forked-swap-copy-XY

Add forked contention and check page by page copying between two GTT mmapped tiled-huge bo's larger than physical memory and resulting in thrashing of swap space.

swap-copy-odd

Check page by page copying between two GTT mmapped odd tiled-huge bo's larger than physical memory and resulting in thrashing of swap space.

cpuset-swap-copy-odd

Add forked contention with lighter variant (single cpu) and check page by page copying between two GTT mmapped odd tiled-huge bo's larger than physical memory and resulting in thrashing of swap space.

forked-swap-copy-odd

Add forked contention and check page by page copying between two GTT mmapped odd tiled-huge bo's larger than physical memory and resulting in thrashing of swap space.


gem_mmap_offset

Basic MMAP_OFFSET IOCTL tests for mem regions

bad-object

Verify mapping to invalid gem objects won't be created

bad-flags

NO DOCUMENTATION!

bad-extensions

NO DOCUMENTATION!

basic-uaf

Check buffer object mapping persists after gem_close

isolation

NO DOCUMENTATION!

pf-nonblock

NO DOCUMENTATION!

oob-read

Check for out-of-bound access in vm_access

ptrace

NO DOCUMENTATION!

close-race

Check race between close and mmap offset between threads

open-flood

NO DOCUMENTATION!

clear

NO DOCUMENTATION!

perf

NO DOCUMENTATION!

blt-coherency

NO DOCUMENTATION!


gem_mmap_wc

bad-object

NO DOCUMENTATION!

bad-offset

NO DOCUMENTATION!

bad-size

NO DOCUMENTATION!

invalid-flags

NO DOCUMENTATION!

close

NO DOCUMENTATION!

copy

NO DOCUMENTATION!

read

NO DOCUMENTATION!

write

NO DOCUMENTATION!

coherency

NO DOCUMENTATION!

write-prefaulted

NO DOCUMENTATION!

read-write

NO DOCUMENTATION!

write-read

NO DOCUMENTATION!

read-write-distinct

NO DOCUMENTATION!

write-read-distinct

NO DOCUMENTATION!

fault-concurrent

NO DOCUMENTATION!

write-cpu-read-wc

NO DOCUMENTATION!

write-cpu-read-wc-unflushed

NO DOCUMENTATION!

write-wc-read-gtt

NO DOCUMENTATION!

write-gtt-read-wc

NO DOCUMENTATION!

pf-nonblock

NO DOCUMENTATION!

set-cache-level

NO DOCUMENTATION!


gem_partial_pwrite_pread

Test pwrite/pread consistency when touching partial cachelines.

reads

Verify if pread is consistent while accessing partial cachelines with default caching level

write

Verify if pwrite is consistent while accessing partial cachelines with default caching level

writes-after-reads

Verify if both pread, pwrite are consistent while accessing partial cachelines with default caching level

reads-uncached

Verify if pread is consistent while accessing partial cachelines with uncached caching level

write-uncached

Verify if pwrite is consistent while accessing partial cachelines with uncached caching level

writes-after-reads-uncached

Verify if both pread, pwrite are consistent while accessing partial cachelines with uncached caching level

reads-snoop

Verify if pread is consistent while accessing partial cachelines with snoop caching level

write-snoop

Verify if pwrite is consistent while accessing partial cachelines with snoop caching level

writes-after-reads-snoop

Verify if both pread, pwrite are consistent while accessing partial cachelines with snoop caching level

reads-display

Verify if pread is consistent while accessing partial cachelines with display caching level

write-display

Verify if pwrite is consistent while accessing partial cachelines with display caching level

writes-after-reads-display

Verify if both pread, pwrite are consistent while accessing partial cachelines with display caching level


gem_pipe_control_store_loop

Test (TLB-)Coherency of pipe_control QW writes.

fresh-buffer

Checks tlb consistency of the pipe_control with fresh buffer.

reused-buffer

Checks tlb consistency of the pipe_control with reused buffer.


gem_ppgtt

blt-vs-render-ctx0

NO DOCUMENTATION!

blt-vs-render-ctxN

NO DOCUMENTATION!

flink-and-close-vma-leak

NO DOCUMENTATION!

shrink-vs-evict-any

Regression test to verify GTT eviction can't randomly fail due to object lock contention

shrink-vs-evict-pinned

Regression test to verify GTT eviction can't randomly fail due to object lock contention


gem_pread

bench

NO DOCUMENTATION!

self

NO DOCUMENTATION!

exhaustion

NO DOCUMENTATION!

uncached

NO DOCUMENTATION!

snoop

NO DOCUMENTATION!

display

NO DOCUMENTATION!


gem_pread_after_blit

Test pread behavior when getting values out of just-drawn-to buffers.

default-normal

NO DOCUMENTATION!

default-interruptible

NO DOCUMENTATION!

default-hang

NO DOCUMENTATION!

uncached-normal

NO DOCUMENTATION!

uncached-interruptible

NO DOCUMENTATION!

uncached-hang

NO DOCUMENTATION!

snooped-normal

NO DOCUMENTATION!

snooped-interruptible

NO DOCUMENTATION!

snooped-hang

NO DOCUMENTATION!

display-normal

NO DOCUMENTATION!

display-interruptible

NO DOCUMENTATION!

display-hang

NO DOCUMENTATION!


gem_pwrite

bench

NO DOCUMENTATION!

basic-self

NO DOCUMENTATION!

basic-exhaustion

NO DOCUMENTATION!

uncached

NO DOCUMENTATION!

snoop

NO DOCUMENTATION!

display

NO DOCUMENTATION!

basic-random

NO DOCUMENTATION!

small-cpu-forwards

NO DOCUMENTATION!

small-gtt-forwards

NO DOCUMENTATION!

big-cpu-forwards

NO DOCUMENTATION!

big-gtt-forwards

NO DOCUMENTATION!

huge-cpu-forwards

NO DOCUMENTATION!

huge-gtt-forwards

NO DOCUMENTATION!

small-cpu-backwards

NO DOCUMENTATION!

small-gtt-backwards

NO DOCUMENTATION!

big-cpu-backwards

NO DOCUMENTATION!

big-gtt-backwards

NO DOCUMENTATION!

huge-cpu-backwards

NO DOCUMENTATION!

huge-gtt-backwards

NO DOCUMENTATION!

small-cpu-random

NO DOCUMENTATION!

small-gtt-random

NO DOCUMENTATION!

big-cpu-random

NO DOCUMENTATION!

big-gtt-random

NO DOCUMENTATION!

huge-cpu-random

NO DOCUMENTATION!

huge-gtt-random

NO DOCUMENTATION!

small-cpu-fbr

NO DOCUMENTATION!

small-gtt-fbr

NO DOCUMENTATION!

big-cpu-fbr

NO DOCUMENTATION!

big-gtt-fbr

NO DOCUMENTATION!

huge-cpu-fbr

NO DOCUMENTATION!

huge-gtt-fbr

NO DOCUMENTATION!


gem_pwrite_snooped

pwrite to a snooped bo then make it uncached and check that the GPU sees the data.


gem_pxp

Test PXP that manages protected content through arbitrated HW-PXP-session

hw-rejects-pxp-buffer

Verify protected buffer on unsupported hw:

hw-rejects-pxp-context

Verify protected context on unsupported hw:

create-regular-buffer

Verify protected buffer on supported hw:

create-protected-buffer

NO DOCUMENTATION!

create-regular-context-1

Verify protected context on supported hw:

create-regular-context-2

NO DOCUMENTATION!

fail-invalid-protected-context

NO DOCUMENTATION!

create-valid-protected-context

NO DOCUMENTATION!

reject-modify-context-protection-on

Verify protected context integrity:

reject-modify-context-protection-off-1

NO DOCUMENTATION!

reject-modify-context-protection-off-2

NO DOCUMENTATION!

reject-modify-context-protection-off-3

NO DOCUMENTATION!

regular-baseline-src-copy-readible

Verify protected render operations:

protected-raw-src-copy-not-readible

NO DOCUMENTATION!

protected-encrypted-src-copy-not-readible

NO DOCUMENTATION!

dmabuf-shared-protected-dst-is-context-refcounted

NO DOCUMENTATION!

verify-pxp-key-change-after-suspend-resume

Verify suspend-resume teardown management:

verify-pxp-stale-ctx-execution

NO DOCUMENTATION!

verify-pxp-stale-buf-execution

NO DOCUMENTATION!

verify-pxp-stale-buf-optout-execution

NO DOCUMENTATION!

verify-pxp-execution-after-suspend-resume

NO DOCUMENTATION!

display-protected-crc

Test the display CRC


gem_read_read_speed

Test speed of concurrent reads between engines.

read-read-128x128

NO DOCUMENTATION!

read-write-128x128

NO DOCUMENTATION!

write-read-128x128

NO DOCUMENTATION!

write-write-128x128

NO DOCUMENTATION!

read-read-256x256

NO DOCUMENTATION!

read-write-256x256

NO DOCUMENTATION!

write-read-256x256

NO DOCUMENTATION!

write-write-256x256

NO DOCUMENTATION!

read-read-512x512

NO DOCUMENTATION!

read-write-512x512

NO DOCUMENTATION!

write-read-512x512

NO DOCUMENTATION!

write-write-512x512

NO DOCUMENTATION!

read-read-1024x1024

NO DOCUMENTATION!

read-write-1024x1024

NO DOCUMENTATION!

write-read-1024x1024

NO DOCUMENTATION!

write-write-1024x1024

NO DOCUMENTATION!

read-read-2048x2048

NO DOCUMENTATION!

read-write-2048x2048

NO DOCUMENTATION!

write-read-2048x2048

NO DOCUMENTATION!

write-write-2048x2048

NO DOCUMENTATION!

read-read-4096x4096

NO DOCUMENTATION!

read-write-4096x4096

NO DOCUMENTATION!

write-read-4096x4096

NO DOCUMENTATION!

write-write-4096x4096

NO DOCUMENTATION!

read-read-8192x8192

NO DOCUMENTATION!

read-write-8192x8192

NO DOCUMENTATION!

write-read-8192x8192

NO DOCUMENTATION!

write-write-8192x8192

NO DOCUMENTATION!


gem_readwrite

new-obj

NO DOCUMENTATION!

beyond-EOB

NO DOCUMENTATION!

read-write

NO DOCUMENTATION!

read-bad-handle

NO DOCUMENTATION!

write-bad-handle

NO DOCUMENTATION!


gem_reg_read

bad-register

NO DOCUMENTATION!

timestamp-moving

NO DOCUMENTATION!

timestamp-monotonic

NO DOCUMENTATION!


gem_render_copy

Basic test for the render_copy() function.

linear

Test render_copy() from a mixed-tiled to a linear buffer.

x-tiled

Test render_copy() from a mixed-tiled to a x-tiled buffer.

y-tiled

Test render_copy() from a mixed-tiled to a y-tiled buffer.

yf-tiled

Test render_copy() from a mixed-tiled to a yf-tiled buffer.

mixed-tiled-to-y-tiled-ccs

Test render_copy() from a mixed-tiled to a y-tiled-ccs buffer.

mixed-tiled-to-yf-tiled-ccs

Test render_copy() from a mixed-tiled to a yf-tiled-ccs buffer.

y-tiled-ccs-to-linear

Test render_copy() from a y-tiled-ccs to a linear buffer.

y-tiled-ccs-to-x-tiled

Test render_copy() from a y-tiled-ccs to a x-tiled buffer.

y-tiled-ccs-to-y-tiled

Test render_copy() from a y-tiled-ccs to a y-tiled buffer.

y-tiled-ccs-to-yf-tiled

Test render_copy() from a y-tiled-ccs to a yf-tiled buffer.

yf-tiled-ccs-to-linear

Test render_copy() from a yf-tiled-ccs to a linear buffer.

yf-tiled-ccs-to-x-tiled

Test render_copy() from a yf-tiled-ccs to a x-tiled buffer.

yf-tiled-ccs-to-y-tiled

Test render_copy() from a yf-tiled-ccs to a y-tiled buffer.

yf-tiled-ccs-to-yf-tiled

Test render_copy() from a yf-tiled-ccs to a yf-tiled buffer.

y-tiled-ccs-to-y-tiled-ccs

Test render_copy() from a y-tiled-ccs to a y-tiled-ccs buffer.

yf-tiled-ccs-to-yf-tiled-ccs

Test render_copy() from a yf-tiled-ccs to a yf-tiled-ccs buffer.

y-tiled-ccs-to-yf-tiled-ccs

Test render_copy() from a y-tiled-ccs to a yf-tiled-ccs buffer.

yf-tiled-ccs-to-y-tiled-ccs

Test render_copy() from a yf-tiled-ccs to a y-tiled-ccs buffer.

linear-to-vebox-yf-tiled

Test vebox_copy() from a linear to a yf-tiled buffer.

linear-to-vebox-y-tiled

Test vebox_copy() from a linear to a y-tiled buffer.

x-tiled-to-vebox-yf-tiled

Test vebox_copy() from a x-tiled to a yf-tiled buffer.

x-tiled-to-vebox-y-tiled

Test vebox_copy() from a x-tiled to a y-tiled buffer.

y-tiled-to-vebox-linear

Test vebox_copy() from a y-tiled to a linear buffer.

y-tiled-to-vebox-x-tiled

Test vebox_copy() from a y-tiled to a x-tiled buffer.

y-tiled-to-vebox-y-tiled

Test vebox_copy() from a y-tiled to a y-tiled buffer.

y-tiled-to-vebox-yf-tiled

Test vebox_copy() from a y-tiled to a yf-tiled buffer.

yf-tiled-to-vebox-linear

Test vebox_copy() from a yf-tiled to a linear buffer.

yf-tiled-to-vebox-x-tiled

Test vebox_copy() from a yf-tiled to a x-tiled buffer.

yf-tiled-to-vebox-yf-tiled

Test vebox_copy() from a yf-tiled to a yf-tiled buffer.

yf-tiled-to-vebox-y-tiled

Test vebox_copy() from a yf-tiled to a y-tiled buffer.

y-tiled-mc-ccs-to-vebox-y-tiled

Test vebox_copy() from a y-tiled-mc-ccs to a y-tiled buffer.

yf-tiled-mc-ccs-to-vebox-yf-tiled

Test vebox_copy() from a yf-tiled-mc-ccs to a yf-tiled buffer.

y-tiled-mc-ccs-to-vebox-yf-tiled

Test vebox_copy() from a y-tiled-mc-ccs to a yf-tiled buffer.

yf-tiled-mc-ccs-to-vebox-y-tiled

Test vebox_copy() from a yf-tiled-mc-ccs to a y-tiled buffer.

y-tiled-mc-ccs-to-y-tiled-ccs

Test render_copy() and vebox_copy() from a y-tiled-mc-ccs to a y-tiled-ccs buffer.

y-tiled-mc-ccs-to-yf-tiled-ccs

Test render_copy() and vebox_copy() from a y-tiled-mc-ccs to a yf-tiled-ccs buffer.

y-tiled-ccs-to-y-tiled-mc-ccs

Test render_copy() and vebox_copy() from a y-tiled-ccs to a y-tiled-mc-ccs buffer.

y-tiled-ccs-to-yf-tiled-mc-ccs

Test render_copy() and vebox_copy() from a y-tiled-ccs to a yf-tiled-mc-ccs buffer.


gem_render_copy_redux

Advanced test for the render_copy() function.

normal

NO DOCUMENTATION!

interruptible

NO DOCUMENTATION!

flink

NO DOCUMENTATION!

flink-interruptible

NO DOCUMENTATION!


gem_render_linear_blits

basic

NO DOCUMENTATION!

aperture-thrash

NO DOCUMENTATION!

aperture-shrink

NO DOCUMENTATION!

swap-thrash

NO DOCUMENTATION!


gem_render_tiled_blits

Tests performs cyclic forward, backward and random blits on tiled buffer objects using renderengine with various working set sizes and compares outputs with expected ones.

basic

Check basic functionality.

aperture-thrash

Check with working set size larger than aperture size.

aperture-shrink

Check with working set size larger than aperture size and a helper process to shrink buffer object caches.

swap-thrash

Check with working set size larger than system memory size resulting in usage and thrashing of swap space.


gem_request_retire

Collection of tests targeting request retirement code paths.

retire-vma-not-inactive

NO DOCUMENTATION!


gem_reset_stats

params

NO DOCUMENTATION!

params-ctx

NO DOCUMENTATION!

reset-stats-default

NO DOCUMENTATION!

reset-stats-ctx-default

NO DOCUMENTATION!

ban-default

NO DOCUMENTATION!

ban-ctx-default

NO DOCUMENTATION!

reset-count-default

NO DOCUMENTATION!

reset-count-ctx-default

NO DOCUMENTATION!

unrelated-ctx-default

NO DOCUMENTATION!

close-pending-default

NO DOCUMENTATION!

close-pending-ctx-default

NO DOCUMENTATION!

close-pending-fork-default

NO DOCUMENTATION!

close-pending-fork-reverse-default

NO DOCUMENTATION!

defer-hangcheck-default

NO DOCUMENTATION!

reset-stats-render

NO DOCUMENTATION!

reset-stats-ctx-render

NO DOCUMENTATION!

ban-render

NO DOCUMENTATION!

ban-ctx-render

NO DOCUMENTATION!

reset-count-render

NO DOCUMENTATION!

reset-count-ctx-render

NO DOCUMENTATION!

unrelated-ctx-render

NO DOCUMENTATION!

close-pending-render

NO DOCUMENTATION!

close-pending-ctx-render

NO DOCUMENTATION!

close-pending-fork-render

NO DOCUMENTATION!

close-pending-fork-reverse-render

NO DOCUMENTATION!

defer-hangcheck-render

NO DOCUMENTATION!

reset-stats-bsd

NO DOCUMENTATION!

reset-stats-ctx-bsd

NO DOCUMENTATION!

ban-bsd

NO DOCUMENTATION!

ban-ctx-bsd

NO DOCUMENTATION!

reset-count-bsd

NO DOCUMENTATION!

reset-count-ctx-bsd

NO DOCUMENTATION!

unrelated-ctx-bsd

NO DOCUMENTATION!

close-pending-bsd

NO DOCUMENTATION!

close-pending-ctx-bsd

NO DOCUMENTATION!

close-pending-fork-bsd

NO DOCUMENTATION!

close-pending-fork-reverse-bsd

NO DOCUMENTATION!

defer-hangcheck-bsd

NO DOCUMENTATION!

reset-stats-bsd1

NO DOCUMENTATION!

reset-stats-ctx-bsd1

NO DOCUMENTATION!

ban-bsd1

NO DOCUMENTATION!

ban-ctx-bsd1

NO DOCUMENTATION!

reset-count-bsd1

NO DOCUMENTATION!

reset-count-ctx-bsd1

NO DOCUMENTATION!

unrelated-ctx-bsd1

NO DOCUMENTATION!

close-pending-bsd1

NO DOCUMENTATION!

close-pending-ctx-bsd1

NO DOCUMENTATION!

close-pending-fork-bsd1

NO DOCUMENTATION!

close-pending-fork-reverse-bsd1

NO DOCUMENTATION!

defer-hangcheck-bsd1

NO DOCUMENTATION!

reset-stats-bsd2

NO DOCUMENTATION!

reset-stats-ctx-bsd2

NO DOCUMENTATION!

ban-bsd2

NO DOCUMENTATION!

ban-ctx-bsd2

NO DOCUMENTATION!

reset-count-bsd2

NO DOCUMENTATION!

reset-count-ctx-bsd2

NO DOCUMENTATION!

unrelated-ctx-bsd2

NO DOCUMENTATION!

close-pending-bsd2

NO DOCUMENTATION!

close-pending-ctx-bsd2

NO DOCUMENTATION!

close-pending-fork-bsd2

NO DOCUMENTATION!

close-pending-fork-reverse-bsd2

NO DOCUMENTATION!

defer-hangcheck-bsd2

NO DOCUMENTATION!

reset-stats-blt

NO DOCUMENTATION!

reset-stats-ctx-blt

NO DOCUMENTATION!

ban-blt

NO DOCUMENTATION!

ban-ctx-blt

NO DOCUMENTATION!

reset-count-blt

NO DOCUMENTATION!

reset-count-ctx-blt

NO DOCUMENTATION!

unrelated-ctx-blt

NO DOCUMENTATION!

close-pending-blt

NO DOCUMENTATION!

close-pending-ctx-blt

NO DOCUMENTATION!

close-pending-fork-blt

NO DOCUMENTATION!

close-pending-fork-reverse-blt

NO DOCUMENTATION!

defer-hangcheck-blt

NO DOCUMENTATION!

reset-stats-vebox

NO DOCUMENTATION!

reset-stats-ctx-vebox

NO DOCUMENTATION!

ban-vebox

NO DOCUMENTATION!

ban-ctx-vebox

NO DOCUMENTATION!

reset-count-vebox

NO DOCUMENTATION!

reset-count-ctx-vebox

NO DOCUMENTATION!

unrelated-ctx-vebox

NO DOCUMENTATION!

close-pending-vebox

NO DOCUMENTATION!

close-pending-ctx-vebox

NO DOCUMENTATION!

close-pending-fork-vebox

NO DOCUMENTATION!

close-pending-fork-reverse-vebox

NO DOCUMENTATION!

defer-hangcheck-vebox

NO DOCUMENTATION!

shared-reset-domain

NO DOCUMENTATION!


gem_ringfill

Exercise many tiny batchbuffer operations, in the hope of catching failure to manage the ringproperly near full.

legacy-basic

Basic check how the driver handles a full ring - on legacy ring.

legacy-interruptible

Exercise all potential injection sites by using igt_sigiter interface to repeat the ringfill testing - on legacy ring.

legacy-hang

Exercise many batchbuffer operations along with a hang batch until ring is full - on legacy ring.

legacy-child

Check to fill the ring parallely using fork - on legacy ring.

legacy-forked

Check to fill the ring parallely using fork - on legacy ring.

legacy-fd

Fills the ring upto maximim parallely using fork with different fd's - on legacy ring.

legacy-bomb

Fills the ring upto maximim parallely using fork with different fd's along with interruptions - on legacy ring.

legacy-S3

Handle a full ring across suspend cycle - on legacy ring.

legacy-S4

Handle a full ring across hibernate cycle - on legacy ring.

engines-basic

Basic check how the driver handles a full ring.

engines-interruptible

Exercise all potential injection sites by using igt_sigiter interface to repeat the ringfill testing.

engines-hang

Exercise many batchbuffer operations along with a hang batch until ring is full.

engines-child

Check to fill the ring parallely using fork.

engines-forked

Check to fill the ring parallely using fork.

engines-fd

Fills the ring upto maximim parallely using fork with different fd's.

engines-bomb

Fills the ring upto maximim parallely using fork with different fd's along with interruptions.

engines-S3

Handle a full ring across suspend cycle.

engines-S4

Handle a full ring across hibernate cycle.

basic-all

Basic check to fill the ring upto maximum on all engines simultaneously.


gem_set_tiling_vs_blt

Check for proper synchronization of tiling changes vs. tiled gpu access.

untiled-to-tiled

Check for proper synchronization of untiled->tiled transition.

tiled-to-untiled

Check for proper synchronization of tiled->untiled transition.

tiled-to-tiled

Check for proper synchronization of tiled->tiled transition.


gem_set_tiling_vs_gtt

Check set_tiling vs gtt mmap coherency.


gem_set_tiling_vs_pwrite

Check set_tiling vs pwrite coherency.


gem_shrink

reclaim

NO DOCUMENTATION!

get-pages-sanitycheck

NO DOCUMENTATION!

get-pages

NO DOCUMENTATION!

get-pages-userptr

NO DOCUMENTATION!

get-pages-userptr-dirty

NO DOCUMENTATION!

get-pages-oom

NO DOCUMENTATION!

get-pages-dirty-sanitycheck

NO DOCUMENTATION!

get-pages-dirty

NO DOCUMENTATION!

get-pages-dirty-userptr

NO DOCUMENTATION!

get-pages-dirty-userptr-dirty

NO DOCUMENTATION!

get-pages-dirty-oom

NO DOCUMENTATION!

pwrite-sanitycheck

NO DOCUMENTATION!

pwrite

NO DOCUMENTATION!

pwrite-userptr

NO DOCUMENTATION!

pwrite-userptr-dirty

NO DOCUMENTATION!

pwrite-oom

NO DOCUMENTATION!

pread-sanitycheck

NO DOCUMENTATION!

pread

NO DOCUMENTATION!

pread-userptr

NO DOCUMENTATION!

pread-userptr-dirty

NO DOCUMENTATION!

pread-oom

NO DOCUMENTATION!

mmap-gtt-sanitycheck

NO DOCUMENTATION!

mmap-gtt

NO DOCUMENTATION!

mmap-gtt-userptr

NO DOCUMENTATION!

mmap-gtt-userptr-dirty

NO DOCUMENTATION!

mmap-gtt-oom

NO DOCUMENTATION!

mmap-cpu-sanitycheck

NO DOCUMENTATION!

mmap-cpu

NO DOCUMENTATION!

mmap-cpu-userptr

NO DOCUMENTATION!

mmap-cpu-userptr-dirty

NO DOCUMENTATION!

mmap-cpu-oom

NO DOCUMENTATION!

execbuf1-sanitycheck

NO DOCUMENTATION!

execbuf1

NO DOCUMENTATION!

execbuf1-userptr

NO DOCUMENTATION!

execbuf1-userptr-dirty

NO DOCUMENTATION!

execbuf1-oom

NO DOCUMENTATION!

execbufN-sanitycheck

NO DOCUMENTATION!

execbufN

NO DOCUMENTATION!

execbufN-userptr

NO DOCUMENTATION!

execbufN-userptr-dirty

NO DOCUMENTATION!

execbufN-oom

NO DOCUMENTATION!

execbufX-sanitycheck

NO DOCUMENTATION!

execbufX

NO DOCUMENTATION!

execbufX-userptr

NO DOCUMENTATION!

execbufX-userptr-dirty

NO DOCUMENTATION!

execbufX-oom

NO DOCUMENTATION!

hang-sanitycheck

NO DOCUMENTATION!

hang

NO DOCUMENTATION!

hang-userptr

NO DOCUMENTATION!

hang-userptr-dirty

NO DOCUMENTATION!

hang-oom

NO DOCUMENTATION!


gem_softpin

Tests softpin feature with normal usage, invalid inputs scenarios and couple of evictiontests which copy buffers between CPU and GPU.

invalid

Check that invalid inputs are handled correctly.

zero

Check full placement control under full-ppGTT.

32b-excludes-last-page

Check the last 32b page is excluded.

full

Check the total occupancy by using pad-to-size to fill the entire GTT.

allocator-basic

Check that we can place objects at start/end of the GTT using the allocator.

allocator-basic-reserve

Check that if we can reserve a space for an object starting from a given offset.

allocator-nopin

Check that we can combine manual placement with automatic GTT placement.

allocator-nopin-reserve

Check that we can combine manual placement with automatic GTT placement and reserves/unreserves space for objects.

evict-single-offset

Use same offset for all engines and for different handles.

evict-prime-sanity-check

Check eviction of vma on importing prime fd in reopened drm fd in single thread

evict-prime

Check eviction of vma on importing prime fd in reopened drm fds

allocator-fork

Check if multiple processes can use allocator.

allocator-evict

Exercise eviction with softpinning.

safe-alignment

Check start offset and alignment detection.

softpin

Check softpinning of a gem buffer object.

overlap

Check all the possible pages aligned overlaps.

reverse

Check that if the user demands the vma will be swapped.

noreloc

Check that noreloc support works.

noreloc-interruptible

Check noreloc support with interruptible.

noreloc-S3

Check noreloc survives after suspend to RAM/resume cycle.

noreloc-S4

Check noreloc survives after suspend to disk/resume cycle.

evict-active

Check eviction with active bo.

evict-snoop

Check eviction against snooping.

evict-active-interruptible

Check eviction with active bo with interrupts.

evict-snoop-interruptible

Check eviction against snooping with interrupts.

evict-hang

Check eviction of softpinned bo with hung batch.


gem_spin_batch

legacy

NO DOCUMENTATION!

legacy-resubmit

NO DOCUMENTATION!

legacy-resubmit-new

NO DOCUMENTATION!

spin-all

NO DOCUMENTATION!

spin-all-new

NO DOCUMENTATION!

engines

NO DOCUMENTATION!

resubmit

NO DOCUMENTATION!

resubmit-new

NO DOCUMENTATION!

resubmit-all

NO DOCUMENTATION!

resubmit-new-all

NO DOCUMENTATION!

spin-each

NO DOCUMENTATION!

user-each

NO DOCUMENTATION!


gem_streaming_writes

Test of streaming writes into active GPU sources

cpu-sync

NO DOCUMENTATION!

gtt-sync

NO DOCUMENTATION!

wc-sync

NO DOCUMENTATION!

cpu

NO DOCUMENTATION!

gtt

NO DOCUMENTATION!

wc

NO DOCUMENTATION!

batch-cpu

NO DOCUMENTATION!

batch-gtt

NO DOCUMENTATION!

batch-wc

NO DOCUMENTATION!

batch-reverse-cpu

NO DOCUMENTATION!

batch-reverse-gtt

NO DOCUMENTATION!

batch-reverse-wc

NO DOCUMENTATION!


gem_sync

Basic check of ring<->ring write synchronisation.

legacy-default

Check synchronisation of rings for each legacy engine.

legacy-idle

Exercise and measure idle requests for each legacy engine.

legacy-active

Exercise waiting while keeping the GPU busy for each legacy engine.

legacy-wakeup

Stress for nop + sync for each legacy engine.

legacy-active-wakeup

Measure wakeup latency while also scheduling the next batch for each legacy engine.

legacy-double-wakeup

Double stress test for nop + sync for each legacy engine.

legacy-store

Check that store synchronisation works for each legacy engine.

legacy-switch

Check sync after context switch for each legacy engine.

legacy-forked-switch

Check sync after context switch parallelly for each legacy engine.

legacy-many

Create race condition and see if we can catch interrupts for each legacy engine.

legacy-forked

Check synchronisation of ring with parallel executions for each legacy engine.

legacy-forked-store

Check store synchronisation works with parallel multiple executions for each legacy engine.

basic-all

Basic test to wait upon a batch on all rings.

basic-store-all

Basic version of store synchronisation test.

wait-all

Extended version of existing basic-all test.

store-all

Extended version of existing basic-store-all test.

forked-all

Parallel execution of batch on all rings and then wait.

forked-store-all

Parallel execution of store synchronisation.

basic-each

Check synchronisation of ring.

basic-store-each

Check that store synchronisation works.

basic-many-each

Create race condition and see if we can catch interrupts.

switch-each

Check sync after context switch.

forked-switch-each

Check sync after context switch parallelly.

forked-each

Forked variant of sync_ring, which checks synchronisation of ring with parallel executions.

forked-store-each

Forked variant of store_ring, check if parallel store synchronisation works.

active-each

Exercise waiting while keeping the GPU busy.

wakeup-each

Stress test for nop + sync.

active-wakeup-each

Measure wakeup latency while also scheduling the next batch.

double-wakeup-each

Double stress test for nop + sync.

default

Check synchronisation of rings on each engine.

idle

Exercise and measure idle requests on each engine.

active

Exercise waiting while keeping the GPU busy on each engine.

wakeup

Stress for nop + sync on each engine.

active-wakeup

Measure wakeup latency while also scheduling the next batch on each engine.

double-wakeup

Double stress test for nop + sync on each engine.

store

Check that store synchronisation works on each engine.

switch

Check sync after context switch on each engine.

forked-switch

Check sync after context switch parallelly on each engine.

many

Create race condition and see if we can catch interrupts on each engine.

forked

Check synchronisation of ring with parallel executions on each engine.

forked-store

Check store synchronisation works with parallel multiple executions on each engine.

preempt-all

Check and measure how well we can submit a second high priority task when the engine is already busy with a low priority task on all engines.

preempt

For each context engine check how priority of task are submitted when engine is already busy.


gem_tiled_blits

Test doing many tiled blits, with a working set larger than the aperture size.

basic

Check basic functionality.

normal

Check with parallel execution.

interruptible

Check with interrupts in parallel execution.


gem_tiled_fence_blits

Tests fence management problems related to tiled blits by performing many blits on tiledbuffer objects with fences enabled and with working set larger than the aperture size.

basic

Check basic functionality.

normal

Check with parallel execution.


gem_tiled_partial_pwrite_pread

Test pwrite/pread consistency when touching partial cachelines.

reads

NO DOCUMENTATION!

writes

NO DOCUMENTATION!

writes-after-reads

NO DOCUMENTATION!


gem_tiled_pread_basic

Test pread behavior on tiled objects with respect to the reported swizzling value.


gem_tiled_pread_pwrite

Test swizzling by testing pwrite does the inverse of pread.


gem_tiled_swapping

Exercise swizzle code for swapping.

non-threaded

NO DOCUMENTATION!

threaded

NO DOCUMENTATION!


gem_tiled_wb

This is a test of write-combining mmap's behavior on tiled objects with respect to the reportedswizzling value.


gem_tiled_wc


gem_tiling_max_stride

Check that max fence stride works.


gem_unfence_active_buffers

Check for use-after-free in the fence stealing code.


gem_unref_active_buffers

Test unreferencing of active buffers.


gem_userptr_blits

input-checking

NO DOCUMENTATION!

usage-restrictions

NO DOCUMENTATION!

invalid-null-pointer

NO DOCUMENTATION!

forked-access

NO DOCUMENTATION!

forbidden-operations

NO DOCUMENTATION!

sd-probe

NO DOCUMENTATION!

set-cache-level

NO DOCUMENTATION!

userfault

NO DOCUMENTATION!

relocations

NO DOCUMENTATION!

invalid-mmap-offset-unsync

Verify unsynchronized userptr on mmap-offset mappings fails

create-destroy-unsync

NO DOCUMENTATION!

unsync-overlap

NO DOCUMENTATION!

unsync-unmap

NO DOCUMENTATION!

unsync-unmap-cycles

NO DOCUMENTATION!

unsync-unmap-after-close

NO DOCUMENTATION!

coherency-unsync

NO DOCUMENTATION!

dmabuf-unsync

NO DOCUMENTATION!

readonly-unsync

NO DOCUMENTATION!

readonly-pwrite-unsync

NO DOCUMENTATION!

forked-unsync-normal

NO DOCUMENTATION!

forked-unsync-interruptible

NO DOCUMENTATION!

forked-unsync-swapping-normal

NO DOCUMENTATION!

forked-unsync-swapping-interruptible

NO DOCUMENTATION!

forked-unsync-multifd-normal

NO DOCUMENTATION!

forked-unsync-multifd-interruptible

NO DOCUMENTATION!

forked-unsync-swapping-multifd-normal

NO DOCUMENTATION!

forked-unsync-swapping-multifd-interruptible

NO DOCUMENTATION!

forked-unsync-mempressure-normal

NO DOCUMENTATION!

forked-unsync-mempressure-interruptible

NO DOCUMENTATION!

forked-unsync-swapping-mempressure-normal

NO DOCUMENTATION!

forked-unsync-swapping-mempressure-interruptible

NO DOCUMENTATION!

forked-unsync-multifd-mempressure-normal

NO DOCUMENTATION!

forked-unsync-multifd-mempressure-interruptible

NO DOCUMENTATION!

forked-unsync-swapping-multifd-mempressure-normal

NO DOCUMENTATION!

forked-unsync-swapping-multifd-mempressure-interruptible

NO DOCUMENTATION!

mlocked-unsync-normal

NO DOCUMENTATION!

swapping-unsync-normal

NO DOCUMENTATION!

minor-unsync-normal

NO DOCUMENTATION!

major-unsync-normal

NO DOCUMENTATION!

mlocked-unsync-interruptible

NO DOCUMENTATION!

swapping-unsync-interruptible

NO DOCUMENTATION!

minor-unsync-interruptible

NO DOCUMENTATION!

major-unsync-interruptible

NO DOCUMENTATION!

process-exit

NO DOCUMENTATION!

process-exit-busy

NO DOCUMENTATION!

create-destroy-sync

NO DOCUMENTATION!

sync-overlap

NO DOCUMENTATION!

sync-unmap

NO DOCUMENTATION!

sync-unmap-cycles

NO DOCUMENTATION!

sync-unmap-after-close

NO DOCUMENTATION!

stress-mm

NO DOCUMENTATION!

stress-purge

NO DOCUMENTATION!

stress-mm-invalidate-close

NO DOCUMENTATION!

stress-mm-invalidate-close-overlap

NO DOCUMENTATION!

map-fixed-invalidate

Try to anger lockdep with MMU notifier still active after MAP_FIXED remap

map-fixed-invalidate-overlap

Try to anger lockdep with MMU notifier still active after MAP_FIXED remap

map-fixed-invalidate-busy

Try to anger lockdep with MMU notifier still active after MAP_FIXED remap

map-fixed-invalidate-overlap-busy

Try to anger lockdep with MMU notifier still active after MAP_FIXED remap

mmap-offset-banned

Verify mmap_offset to userptr is banned

coherency-sync

NO DOCUMENTATION!

dmabuf-sync

NO DOCUMENTATION!

forked-sync-normal

NO DOCUMENTATION!

forked-sync-interruptible

NO DOCUMENTATION!

forked-sync-swapping-normal

NO DOCUMENTATION!

forked-sync-swapping-interruptible

NO DOCUMENTATION!

forked-sync-multifd-normal

NO DOCUMENTATION!

forked-sync-multifd-interruptible

NO DOCUMENTATION!

forked-sync-swapping-multifd-normal

NO DOCUMENTATION!

forked-sync-swapping-multifd-interruptible

NO DOCUMENTATION!

forked-sync-mempressure-normal

NO DOCUMENTATION!

forked-sync-mempressure-interruptible

NO DOCUMENTATION!

forked-sync-swapping-mempressure-normal

NO DOCUMENTATION!

forked-sync-swapping-mempressure-interruptible

NO DOCUMENTATION!

forked-sync-multifd-mempressure-normal

NO DOCUMENTATION!

forked-sync-multifd-mempressure-interruptible

NO DOCUMENTATION!

forked-sync-swapping-multifd-mempressure-normal

NO DOCUMENTATION!

forked-sync-swapping-multifd-mempressure-interruptible

NO DOCUMENTATION!

mlocked-normal-sync

NO DOCUMENTATION!

swapping-normal-sync

NO DOCUMENTATION!

minor-normal-sync

NO DOCUMENTATION!

major-normal-sync

NO DOCUMENTATION!

mlocked-sync-interruptible

NO DOCUMENTATION!

swapping-sync-interruptible

NO DOCUMENTATION!

minor-sync-interruptible

NO DOCUMENTATION!

major-sync-interruptible

NO DOCUMENTATION!

nohangcheck

NO DOCUMENTATION!

vma-merge

NO DOCUMENTATION!

huge-split

NO DOCUMENTATION!

access-control

NO DOCUMENTATION!

probe

NO DOCUMENTATION!


gem_vm_create

invalid-create

NO DOCUMENTATION!

invalid-destroy

NO DOCUMENTATION!

execbuf

NO DOCUMENTATION!

isolation

NO DOCUMENTATION!

create-ext

NO DOCUMENTATION!


gem_wait

Tests the GEM_WAIT ioctl

invalid-flags

Verify that GEM_WAIT called with invalid flag will fail.

invalid-buf

Verify that GEM_WAIT called with invalid buffer object will fail.

busy

Verify GEM_WAIT functionality in busy mode.

wait

Verify GEM_WAIT functionality in wait mode.

await

Verify GEM_WAIT functionality in await mode.

write-busy

Verify GEM_WAIT functionality in write-busy mode.

write-wait

Verify GEM_WAIT functionality in write-wait mode.

hang-busy

Verify GEM_WAIT functionality in busy mode, when hang is allowed.

hang-wait

Verify GEM_WAIT functionality in wait mode, when hang is allowed.

hang-busy-write

Verify GEM_WAIT functionality in busy-write mode, when hang is allowed.

hang-wait-write

Verify GEM_WAIT functionality in wait-write mode, when hang is allowed.


gem_watchdog

default-physical

NO DOCUMENTATION!

default-virtual

NO DOCUMENTATION!

far-fence

NO DOCUMENTATION!


gem_workarounds

basic-read

NO DOCUMENTATION!

basic-read-context

NO DOCUMENTATION!

basic-read-fd

NO DOCUMENTATION!

reset

NO DOCUMENTATION!

reset-context

NO DOCUMENTATION!

reset-fd

NO DOCUMENTATION!

suspend-resume

NO DOCUMENTATION!

suspend-resume-context

NO DOCUMENTATION!

suspend-resume-fd

NO DOCUMENTATION!

hibernate-resume

NO DOCUMENTATION!

hibernate-resume-context

NO DOCUMENTATION!

hibernate-resume-fd

NO DOCUMENTATION!