Age | Commit message (Collapse) | Author |
|
A black FB on amdgpu returns a CRC of (0, 0, 0), which IGT considers
suspicious. All our CRC values are also 16-bit so a value of 0xffffffff
can't be obtained.
Drop the suspicious CRC checks on amdgpu by checking the device in
crc_sanity_checks. We need the drm_fd for this so pass in pipe_crc
to the function to get it. It makes more sense to me to do it this
way than to duplicate code and the explanation on both calls to
crc_sanity_checks.
v2: rebase
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
|
|
These helpers will be used to address amdgpu specific quirks and
features. They're implemented like the i915 and VC4 helpers.
In order for the string comparison to pick up "amdgpu" the buffer size
had to be expanded for __is_device. I've gone ahead and made it 12 bytes
to cover everything that's there right now.
v2: rebase
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
|
|
Since not everyone is familiar with kernel taints, and it is easy to get
confused and attribute an abort to an innocent TAINT_USER caused by an
unsafe module option, which is usually the first thing people find
greping dmesg for "taint", we should provide more guidance.
This patch extends the abort log by printing the taint names, as found
in the kernel, along with a short explanation, so people know what to
look for in the dmesg.
v2: rebase, reword
Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Even with 128MiB reserved for other use, a single pass of gem_exec_big
runs out of memory. Give in and halve our batch size, that has to be
enough slack! As to why it keeps on failing, is left as an exercise to
the reader -- we have to solve the mm/ mystery one day, as eventually it
will be our only remaining source of bugs!
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
|
|
This function checks whether a port is an analog bridge. Analog
bridges provide their own EDID thus the vendor should be different
from "IGT".
There was a typo that made the function always return true for VGA
ports. The condition was essentially:
thing != 'I' || thing != 'T'
which is always true.
Apparently this didn't cause any harm, but it's probably better to fix
it anyway in case some tests were skipped and shouldn't.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Acked-by: Antonio Argenziano <antonio.argenziano@intel.com>
|
|
Fix the meson build to not link intel-gpu-top against the whole test
infrastructure; it's a tool not a test!
Reported-by: Eero Tamminen <eero.t.tamminen@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110249
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Avoid embedding the DRM_IOCTL() macro into the error message as it is
unreadable, and instead always wrap the ioctl with a self-descriptive
helper.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
To make the demonstration of the cheeky preemption more impactful, make
the second context a nop to contrast the first being 1024
MI_STORE_DWORD_IMM. Then if we execute and wait on the second context
before executing the first, the client latency is even more drastically
reduced.
To more clearly show any effect on wait reordering, measure the
alternative path and present both.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
The invalid set/get tests do not serve the purpose of detecting whether
or not invalid parameters are indeed detected correctly -- simply because
the kernel is the arbiter of what is invalid and this test second
guesses that and is wrong.
The intent of this test was to ensure that we didn't include any holes
in the parameter space that may have been used for nefarious undisclosed
purposes, i.e. the maintainer's job backed up by reviewers.
As proving no holes is impossible without fuzzing/exhaustive search and
a whitelist, accept defeat and just check whether the very last
parameter (which should be unused for a long, long time) is invalid.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
CI complains that the exhaustive test of trying every size up to the
limit is too slow, so add a simple test that tries to submit one
extreme batch buffer and check all the relocations land.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105555
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Check that the GPU even exists before submitting a batch.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109589
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
In order to correctly serialise the order of execution between rings, we
need to flag the scratch address as being written. Make it so.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Show the total power consumed across all the whispers.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
How much energy does spinning on a semaphore consume relative to plain
old spinning?
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Read the RAPL power metrics courtesy of perf. Or your local HW
equivalent?
v2: uselocale()
v3: Use gpu_power_s(), gpu_power_J(), gpu_power_W() to try and make the
scale factors self-consistent.
v4: Use igt_sysfs
v5: s/tN/sampleN/
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Do not use it on older gens.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109612
Cc: Tony Ye <tony.ye@intel.com>
Reviewed-by: Tony Ye <tony.ye@intel.com>
|
|
Add CML IDS, an additional ICL ID and EHL.
Align with kernel commits:
a7b4deeb02b9 ("drm/i915/cml: Add CML PCI IDS")
9a751b999d17 ("drm/i915: Add new ICL PCI ID")
29f3863d33d1 ("drm/i915/ehl: Add EHL platform info and PCI IDs")
This is in sync with kernel header as of
b024ab9b2d3a ("drm/i915/bios: iterate over child devices to initialize ddi_port_info")
v2: Copy header from kernel (Jose)
- Change commit message (Lucas)
v3: Add corresponding kernel commit ids (Antonio)
v4: Add EHL (Lucas)
Cc: Antonio Argenziano <antonio.argenziano@intel.com>
Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
|
|
The test leaves the debugfs flag enabled if the driver failed to enable
DSC. And as it turns out, the feature gets enabled only after the test
completes and consequently affects PSR2 tests that follow. Let's make sure
the test cleans up correctly, even though the DSC test itself needs to be
fixed.
Also included some formatting fixes within the function.
Cc: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
|
|
It is the user's responsibility to manage their domains. In libdrm, when
you mmap a pointer, it calls set-domain automatically, but igt requires
the caller to manage it explicitly, so do so. The vast majority already
do correct manage the domain as they use the pointer into the mmap, just
a few have been missed over the years.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Replace the open coded IN_FORMATS parsing with
igt_plane_has_format_mod() now that we have such a thing.
v2: Remove all the extra cruft too
Deal with data->ccs_modifier
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
|
|
v2: also simplify the code by using dirname(3).
v3: dirname may modify in-place its argument, duplicate the string
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
* Refactor to use goto error handling
* Make execute_test_process noreturn to remove uninitialized variable
warning
* Check fork() return value
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
For the !modeset case, after a pageflip is performed on both crtc's,
vblank counter is advanced by 1 when compared to its original value.
For the modeset case, when pageflips and modesets are interleaved,
vblank counter does not always advance by 1 as nonblocking modeset
could fail, in which case we do not need vblank_matches.
v2: Remove the assert statement instead of changing the condition
Cc: Maarten Lankhorst <maarten.lankhorst@intel.com>
Signed-off-by: Nischala Yelchuri <nischala.yelchuri@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105454
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
This test is causing too much useless noise. Limit tested
fb formats to DRM_FORMAT_C8 and DRM_FORMAT_XBGR2101010 for now.
These two formats are currently not tested otherwise thus
they're left here for now. DRM_FORMAT_XBGR2101010 need to be
included into IGT supported formats and DRM_FORMAT_C8 test need
to be moved elsewhere, maybe into kms_plane.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
i915 devices
Use minimum of 16x16 size for i915 devices only as other HW's may have different limitations.
The default is 8x8.
Suggested-by: Ville Syrjala <ville.syrjala@linux.intel.com>
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Historically, the GTT pagefault invoked set-domain(GTT) to transparently
handle swapin. However, this implied that the GTT faults were
synchronous with GPU rendering, which was not the desired ABI, as
synchronisation is explicit via calls to GEM_WAIT or GEM_SET_DOMAIN. In
MMAP_GTT_VERSION, this accidental ABI is removed and so we test it is
gone and does not come back.
For completeness, we verify that the other mmap paths didn't block on
initial pagefaulting.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
|
|
Let's ensure that we test with minimum width and height of 16 for all planar uyv formats.
References: https://bugs.freedesktop.org/show_bug.cgi?id=110098
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Extend the test to Yf tiled CCS, no reason not to.
v2: Add a comma after the last modifier (Ville)
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Currently only Y tiled CCS modifier is tested, rewrite the functions so
that we can add support for other CCS modifiers.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
A linear mapping setup for Y, Yf tiled and CCS modifiers. Instead of
checking against each CCS modifier, let's make use of this wrapper.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110212
Fixes: 8ae86621d6ff ("lib/igt_device: Move intel_get_pci_device under igt_device")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Don't try to evaluate whether reads executed on an absent ring do
anything.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
It allows us to make things a little bit more generic. Also, we now
require fd rather than doing guesswork when it comes to pci address.
v2: Use readlinkat rather than string concat, move stuff around, provide
a version that does not assert. (Chris)
v3: Print addr on failure, avoid assignment in conditionals. (Chris)
Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Now that we've extracted card index, we no longer have the need to
iterate over device nodes.
v2: Drop ret.
Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Similar to sysfs_path - more explicit more better.
Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
It's not operating on FD, and we've provided a nice reimplementation
that does. Let's use it instead.
Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
And use it! But let's start small.
Rather than going with "and by the way, here's the card index" from
igt_sysfs_path, we're making things more explicit.
v2: Drop idx comment. (Chris)
Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Doing this lets us avoid drm_get_card, which we plan to remove
eventually.
v2: We were extermally unlikely to find rps knobs in current dir.
Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Doing this lets us avoid drm_get_card, which we plan to remove
eventually.
v2: Don't break the test
Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The "benchmark" mode is no longer used.
While I'm here, let's also move things around and start to use
igt_sysfs, rather implementing own set of helpers.
Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
plane alpha and blend would affect other tests if left
in unexpected states
v2 (ville syrjälä): use "Pre-multiplied" as default for
IGT_PLANE_PIXEL_BLEND_MODE.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Add some invalid parameters tests for the MMAP IOCTL when the MMAP_WC
flag is supplied.
v2:
- Expand test space. (Chris)
Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Add a couple of tests that supply invalid parameters to the mmap IOCTL.
v2:
- Expand test space. (Chris)
Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Add a test for an invalid handle being passed to the IOCTL.
v2:
- Expand test space. (Chris)
Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
This patch adds mocs table for icelake with expected L3 and eDRAM
control values.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109287
Signed-off-by: Kumar Valsan, Prathap <prathap.kumar.valsan@intel.com>
Reviewed-by: Lukasz Kalamarz <lukasz.kalamarz@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
sendmsg/recvmsg return the number of bytes transferred, not just an
error code.
Fixes: 520b6f7fbb6c ("sw_sync: Wait until the end")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110150
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
Since those are just pipe CRC tests output does not really matter.
Instead of running the test number-of-connected-outputs times per pipe,
let's run them just once.
Cc: Martin Peres <martin.peres@free.fr>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
Currently we are printing one igt_warn for each CRC mismatch, which gets
quite overwhelming with having to see the same error 8 times for each
color tested:
WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3
WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3
WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3
WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3
WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3
WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3
WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3
WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3
Since the most interesting information here is which format on which
pipe/plane is broken we can skip igt_warn just once.
For those weirder and rarer case where just certain colors would fail we
still provide the count and the mask of color array indices that failed:
WARNING: CRC mismatches with format NV12 (0x3231564e) on A.3 with 8/8 solid colors tested (0xFF)
v2 (Petri): Print a mask so it's possible to know which colors failed.
Cc: Martin Peres <martin.peres@linux.intel.com>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Acked-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
|
|
Include whether the scheduler is using HW semaphore assistance in our
pretty debug strings, and make the caps known for requires.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Antonio Argenziano <antonio.argenziano@intel.com>
|
|
If we allow a fork-helper to exit normally before the parent tries to
reap the helper (fork-helpers are intended to be only used for
persistent background loads), then the helper unhelpful aborts because
the child exited cleanly.
Simplify by not using the so called helpers at all.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108889
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|