summaryrefslogtreecommitdiff
path: root/benchmarks
AgeCommit message (Collapse)Author
2022-06-15benchmarks/gem_blt: fix baseline estimationMauro Carvalho Chehab
This test is expected to run under a certain time defined by a command line parameter (by default, 2s). In order to achive the specified time, the baseline() function tries to estimate the value of a counter that will get the minimal amount of interaction to wait for > 0.1s. However, currently, the baseline estimation is broken, returning a too big number, as it is measuring the memcpy() time, instead of actually gem_execbuf(). Due to that, a default test without passing any command line parameter would take more than 1.5 years to output the first benchmark data! Fix it by using the same logic that it is inside run() at the baseline time estimation. Before this patch, baseline could return 399242693. After it, it now return 20. That means an interval of about 120 ms at the code which runs a gem_execbuf() loop, which should be good enough to ensure that the tests won't take too long, and will approximately match the time specified by the excecution parameter '-t'. Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
2022-06-13lib/intel_reg: Add common MI_* macros to remove duplicatesZbigniew Kempczyński
In few tests we got some MI_* duplicates (MI_MATH for example). Add common definitions in intel_reg.h and remove local definitions in the tests. v2: Definitions MI_LOAD_REGISTER_MEM_GEN8 was removed so from now on user will need to encode length on it own. : Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2021-10-15benchmarks/gem_exec_fault: Add softpin mode to support gens with ppgttZbigniew Kempczyński
Alignment trick doesn't work properly for ppgtt gens - kernel is able to keep previous offset and doesn't call unbind/bind. With softpin on ppgtt we're able to enforce rebind and benchmark should behave correctly on such gens. To avoid inaccurate results kernel CONFIG_PROVE_LOCKING should be set to N, otherwise kernel can call unbind/bind for same offset more than one (backoff is not visible from userspace). v2: rename to gem_allows_obj_alignment() Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-10-15benchmarks/gem_exec_fault: Add timeout argumentZbigniew Kempczyński
Add timeout argument and change elapsed time to inner loop to be more precise in timeout processing. Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-07-15benchmarks/gem_busy: nuke LOCAL_IOCTL_SYNCOBJ_WAITLucas De Marchi
This is DRM_IOCTL_SYNCOBJ_WAIT. Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-07-15benchmarks/gem_busy: nuke LOCAL_IOCTL_SYNCOBJ_CREATELucas De Marchi
This is DRM_IOCTL_SYNCOBJ_CREATE. Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-07-15benchmarks/gem_exec_tracer: nuke LOCAL_IOCTL_I915_GEM_EXECBUFFER2_WRLucas De Marchi
Use DRM_IOCTL_I915_GEM_EXECBUFFER2_WR from kernel header. Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-05-27lib/i915/gem_create: Add gem_create_extAndrzej Turko
Add a wrapper for gem_create_ext ioctl (a version of gem_create that accepts extensions). In preparation for the driver change implementing it, a local definition of its id and necessary structs have been added, which are to be erased as soon as those definitions appear in the i915_drm.h file. The new ioctl wrapper is added to a separate file. For consistency the wrapper of the old ioctl, gem_create is moved from ioctl_wrappers to gem_create. Signed-off-by: Andrzej Turko <andrzej.turko@linux.intel.com> Cc: Zbigniew Kempczynski <zbigniew.kempczynski@intel.com> Cc: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Chris P Wilson <chris.p.wilson@intel.com> Signed-off-by: Matthew Auld <matthew.auld@intel.com> Acked-by: Petri Latvala <petri.latvala@intel.com>
2021-05-26benchmarks/gem_userptr_benchmark: Remove tests with unsynchronized flagZbigniew Kempczyński
As flag I915_USERPTR_UNSYNCHRONIZED is not supported by the i915 anymore remove tests which tries to use it in the benchmark. Remove benchmark from meson libdrm depending code as it is a little bit confusing. Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin.com>
2021-04-23gitignore: Remove various .gitignore filesPetri Latvala
Now that autotools is gone and you always build to a dedicated build directory with meson, we can remove .gitignore files that only had the purpose of ignoring built binaries in the source directories. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Arkadiusz Hiler <arek@hiler.eu> Reviewed-by: Arkadiusz Hiler <arek@hiler.eu>
2021-04-06Get rid of GNU AutotoolsArkadiusz Hiler
Autotools have been deprecated in favor of Meson since early 2019. Signed-off-by: Arkadiusz Hiler <arek@hiler.eu> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Petri Latvala <petri.latvala@intel.com>
2021-04-06benchmarks: Build gem_exec_tracer with mesonArkadiusz Hiler
Seems it has been overlooked during mesonification. It's a shared module that's meant to be LD_PRELOAD-ed to intercept EXECBUFFER2 calls for the purpose of replaying them later. Signed-off-by: Arkadiusz Hiler <arek@hiler.eu> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Petri Latvala <petri.latvala@intel.com>
2021-01-30meson: Turn on -WerrorAshutosh Dixit
We can choose which compile warnings to enable, but once they are enabled treat all warnings as error. This enforces stricter checks against compile warnings creeping in. v2: Fix redefinition warning errors from i915/gem_userptr_blits v3: Fix the even more pedantic clang compilation v4: Do not alter whitespace in lib/tests/igt_describe! Note: clang does not build assembler/ Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2021-01-11lib/i915: Split gem_create.c from ioctl_wrappers.cAndrzej Turko
In preparation for a variation on the exisiting GEM_CREATE API, split the ioctl from out of the large ioctl_wrappers.c Signed-off-by: Andrzej Turko <andrzej.turko@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-30i915: Rename legacy for_each_engine to for_each_ringChris Wilson
Improve the differentiation between the legacy ring selector ABI and the more recent engine selection API. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Andi Shyti <andi.shyti@intel.com>
2020-12-20benchmarks/gem_latency: Release the user-forcewake before closeChris Wilson
Release the forcewake before closing to avoid the deadlock from atexit. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-11-19Remove unused intel_bufmgr.h headersDominik Grzegorzek
Delete intel_bufmgr include where it is not necessary. Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-11-18gem_wsim: Implement device selectionTvrtko Ursulin
-L and -D <device> on the command line. With no device specified tool tries to find i915 discrete or integrated in that order. v2: * Fix error handling and support render devices. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-11-16gem_wsim: Use CTX_TIMESTAMP for timed spinnersChris Wilson
Use MI_MATH and MI_COND_BBE we can construct a loop that runs for a precise number of clock cycles, as measured by the CTX_TIMESTAMP. We use the CTX_TIMESTAMP (as opposed to the CS_TIMESTAMP) so that the elapsed time is measured local to the context, and the length of the batch is unaffected by preemption. Since the clock ticks at a known frequency, we can directly translate the batch durations into cycles and so remove the requirement for nop calibration, and the often excessively large nop batches. The downside to this is that we need to use engine local registers, and before gen11 there is no support in the CS for relative mmio and so this technique does not support transparent load balancing on a virtual engine before Icelake. A further drawback is the loss of granularity for setting non-preemptible durations as the arbitration is check on every timing loop, rather than after a fixed period of time. A workload is then either preemptible or not, with nothing in between. The reader is welcome to see if it can be improved. v2: More commentary, more code removal. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2020-06-19gem_wsim: Fix calibration handlingTvrtko Ursulin
Intended use case was that run without arguments prints out the calibrations which can be simply copied and pasted to the -n argument and things should just work. Two problems we need to solve: If the print out loops shows zero calibrations (engine not present) they are later rejected and also if some calibration is not given it is only an error if it needs to be used (engine present). Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-06-19gem_wsim: Snippet of a workload extracted from carchaseTvrtko Ursulin
Some frames from the middle of a demo with corresponding buffers. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-06-19gem_wsim: Log max and active working set sizes in verbose modeTvrtko Ursulin
It is useful to know how much memory workload is allocating. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-06-19gem_wsim: Support scaling workload batch durationsTvrtko Ursulin
-f <float> on the command line can be used to scale batch buffer durations in all parsed workloads. Equally -F <float> for delay steps. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-06-19gem_wsim: Support random buffer sizesTvrtko Ursulin
See README for more details. v2: * No need to mess with flags. (Chris) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-06-19gem_wsim: Move BO allocation to a helperTvrtko Ursulin
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-06-19gem_wsim: Show workload timing statsTvrtko Ursulin
Show average/min/max workload iteration and dropped period stats when 'p' command is used. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-06-19gem_wsim: Buffer objects working sets and complex dependenciesTvrtko Ursulin
Add support for defining buffer object working sets and targetting them as data dependencies. For more information please see the README file. v2: * More robustness in parsing here and there. (Chris) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-06-19gem_wsim: Rip out userspace balancingTvrtko Ursulin
Evaluation of userspace load balancing options was how this tool started but since we have settled on doing it in the kernel. Tomorrow we will want to update the tool for new engine interfaces and all this legacy code will just be a distraction. Rip out everything not related to explicit load balancing implemented via context engine maps and adjust the workloads to use it. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-05-11Macros fixes: Removed unused & redundant macrosranjeet kumar
Local macros were declared in several files as a prelude to upstream implementations. Now that we ship include/drm-uapi, we can remove LOCAL as we upstream. Cc: Dixit, Ashutosh <ashutosh.dixit@intel.com> Cc: Tahvanainen Jari <jari.tahvanainen@intel.com> Signed-off-by: ranjeet kumar <ranjeet1.kumar@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-04-28gem_wsim: Fix preempt period assertTvrtko Ursulin
Recently added assert in a common helper used for calculating batch duration and preemption period is harmful when preemption is disabled on a context. Split out into low level and high level helper and use the former for preemption period queries. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-03-06gem_wsim: Mark contexts as non-persistentTvrtko Ursulin
We want to mark workload contexts as non-persistent if possible so that we do not have to worry about leaving long (or infinite!) batches running post exit. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-03-06gem_wsim: Fix calibration for special VCS engine nameTvrtko Ursulin
VCS is a special (non-physical) engine id/name which means load-balancing in legacy workloads. As such when i915 balancing is not enabled it needs to have a calibration as well. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-03-05gem_wsim: Fix calibration for default and virtual engineTvrtko Ursulin
When providing engine calibrations on the command line, we need to apply the one given for RCS to DEFAULT as well. Also when load balancing is used we need to get calibration from one of the real engines from the map which should provide a better match. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-02-14benchmarks/gem_wsim: Avoid labs(unsigned long)Ville Syrjälä
../benchmarks/gem_wsim.c: In function ‘calibrate_nop’: ../benchmarks/gem_wsim.c:2999:4: warning: taking the absolute value of unsigned type ‘long unsigned int’ has no effect [-Wabsolute-value] 2999 | labs(size - last_size) > (size * tolerance_pct / 100)); Frankly the warning looks like nonsense to me, unless the compiler actually optimizes the labs() away. Otherwise there's going to be an implicit cast to signed long anyway since that's what labs() takes. But the warning is easy enough to avoid here so let's do it. Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2020-02-04benchmarks: Drop gem_mmapChris Wilson
Read/write access speed is covered by i915_selftests/perf_memory_regions. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> Cc: Matthew Auld <matthew.auld@intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com>
2020-01-30benchmarks/gem_busy: use gem_mmap__device_coherent()Ashutosh Dixit
Use gem_mmap__device_coherent() in benchmarks/gem_busy for use with devices without a mappable aperture. Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-01-30benchmarks/gem_latency: change gtt to device coherent mappingZbigniew Kempczyński
On newer gens with no mappable aperture we have to switch to GEM_MMAP_OFFSET when reasonable. As gem_mmap__device_coherent() wrapper was written to choose best maping method we can change gtt mapping to it. Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-01-29i915: Drop prefault controlsChris Wilson
They haven't been effective for a long time; so drop them. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-01-24gem_wsim: Distinguish particular engines during calculating nop calibration.Anna Karas
Extend handling -n parameter by accepting multiple values of per engine nop calibration. Add raw numbers handling to set default calibration values. Print copyable and pastable string with calibrations. Allow to switch between calculating in parallel or doing it sequentially. Accepted input values: -n 123456 All calibrations will be set to 123456. -n ENG=value,ENG2=value2,value3 i.e. -n RCS=123456,BCS=345678,999999 RCS engine's value is set to 123456, BCS engine's value is set to 345678, 999999 is copied to rest of engines. All engines must be set; you can either provide values for each of the engines, or you can set specific values and provide a default value for the others. -n value,ENG1=value1,ENG2=value2 First, value is copied to all engines, then value1 overrides ENG1, and finally value2 overrides ENG2. New output follows the pattern: Nop calibrations for 1000us delay is: <eng1>=<v1>,<eng2>=<v2>,... So you can easily copy-paste it to the next invocation. Switching between calculation modes: Run program with -T parameter to calculate calibrations in parallel. The calculations are performed sequentially by default. v2: Get rid of trailing whitespaces. Skip DEFAULT and VCS engines when printing out calibrations. Reject them in the string passed to -n. Re-align rest of help text. Fix accepting unknown engines. v3: Consider all cases of arguments for -n (Tvrtko). -n 10 (raw number) -n RCS (engine without calib) -n AA (neither the engine nor the number) -n RCS=500 (valid eng=val pair) -n RCS=AA (calib is not a number) -n XYZ=10 (engine is not an engine) -n XYZ=AA (combo) v4: Print calculated values (Chris). Do not make any assumptions about the order of the engines (Tvrtko). v5: Suppress the output with -q (Chris). Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Anna Karas <anna.karas@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> [tursulin: fixup mixed plural and singular use in print_engine_calibrations]
2020-01-14i915/perf: Find the associated perf-type for a particular deviceChris Wilson
Since with multiple devices, we may have multiple different perf_pmu each with their own type, we want to find the right one for the job. The tests are run with a specific fd, from which we can extract the appropriate bus-id and find the associated perf-type. The performance monitoring tools are a little more general and not yet ready to probe all device or bind to one in particular, so we just assume the default igfx for the time being. v2: Extract the bus address from out of sysfs v3: A new name for a new decade! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: "Robert M. Fosha" <robert.m.fosha@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Reviewed-by: "Robert M. Fosha" <robert.m.fosha@intel.com> #v2 Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2019-12-03benchmarks: remove igt_skip_on_simulation()Swati Sharma
Removing igt_skip_on_simulation() from benchmarks since this feature is not supported anymore. v2: Rebase Signed-off-by: Swati Sharma <swati2.sharma@intel.com> Signed-off-by: Karthik B S <karthik.b.s@intel.com> Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
2019-11-12lib/igt_list: Update, clean-up and document igt_listArkadiusz Hiler
Our list was something between Wayland and Linux Kernel list implementations, right in the uncanny valley. On top of that it falsely claimed that it's a straight copy from the Wayland project. Let's make our impl more akin to the kernel one to ease the cognitive dissonance for the developers working on all those projects. This patch: * mimics the current kernel list interface * separates IGT helpers in the source files * adds brief explanation and code example for igt-doc * introduces igt_list.c as static inlines are not visible in the docs v2: mimic the kernel instead of wayland (Chris) - _head suffix for the sentinel/link struct - _entry_ in iterator names that go over the elements v3: I forgot to merge this in time and there was another call site that had to be converted in gem_spin_batch.c Cc: Petri Latvala <petri.latvala@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Acked-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-10-26lib/i915: Use explicit iterator names in for_each_engine()Chris Wilson
Provide the iterator name as an explicit macro parameter so that it is known to the caller, and allows for them to properly nest loops over all engines. Fixes: ../tests/i915/gem_exec_schedule.c: In function ‘semaphore_noskip’: ../lib/igt_gt.h:84:44: warning: declaration of ‘e__’ shadows a previous local [-Wshadow] for (const struct intel_execution_engine *e__ = intel_execution_engines;\ ^~~ ../tests/i915/gem_exec_schedule.c:653:2: note: in expansion of macro ‘for_each_physical_engine’ for_each_physical_engine(i915, other) { ^~~~~~~~~~~~~~~~~~~~~~~~ ../lib/igt_gt.h:84:44: note: shadowed declaration is here for (const struct intel_execution_engine *e__ = intel_execution_engines;\ ^~~ ../tests/i915/gem_exec_schedule.c:652:2: note: in expansion of macro ‘for_each_physical_engine’ for_each_physical_engine(i915, engine) { ^~~~~~~~~~~~~~~~~~~~~~~~ ../tests/i915/gem_exec_schedule.c: In function ‘measure_semaphore_power’: ../lib/igt_gt.h:84:44: warning: declaration of ‘e__’ shadows a previous local [-Wshadow] for (const struct intel_execution_engine *e__ = intel_execution_engines;\ ^~~ ../tests/i915/gem_exec_schedule.c:1740:3: note: in expansion of macro ‘for_each_physical_engine’ for_each_physical_engine(i915, engine) { ^~~~~~~~~~~~~~~~~~~~~~~~ ../lib/igt_gt.h:84:44: note: shadowed declaration is here for (const struct intel_execution_engine *e__ = intel_execution_engines;\ ^~~ ../tests/i915/gem_exec_schedule.c:1719:2: note: in expansion of macro ‘for_each_physical_engine’ for_each_physical_engine(i915, signaler) { ^~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Andi Shyti <andi.shyti@intel.com>
2019-10-25benchmarks/gem_wsim: Cleanup register access on exitChris Wilson
Drop the forcewake before libigt tries to wait on it. 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>
2019-08-29lib/intel_mmio: add additional api for multiple devicesDaniel Mrzyglod
Library was limited for reading registers for only one device at a time in igt tests. Changes in this patch give as oportunity to test multiple devices in the same time. v8: pack and rename structure, remove unnecessary field v7: remove unnecessary code v6: Reword patch. Cosmetic changes. Cc: Antonio Argenziano <antonio.argenziano@intel.com> Cc: Daniele Spurio Ceraolo <daniele.ceraolospurio@intel.com> Cc: Katarzyna Dec <katarzyna.dec@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Daniel Mrzyglod <daniel.t.mrzyglod@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-08-28benchmarks: Use labs() for abs(long)Chris Wilson
e.g. benchmarks/gem_wsim.c:2936:4: warning: absolute value function ‘abs’ given an argument of type ‘long int’ but has parameter of type ‘int’ which may cause truncation of value [-Wabsolute-value] Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Simon Ser <simon.ser@intel.com>
2019-06-03benchmarks/gem_wsim: Tidy manual sizeof VLA calculationsChris Wilson
We can use offsetof for the same effect, much tidier with no dummy locals. 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>
2019-05-24benchmarks/gem_wsim: Manually calculate VLA struct sizesChris Wilson
Apparently VLA structs (e.g. struct { int array[count] }) is a gcc extension that clang refuses to support as handling memory layout is too difficult for it. So calculate the size by hand! v2: Use alloca(). 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>
2019-05-23gem_wsim: Allow random seed controlTvrtko Ursulin
New command line option to allow controling the initial pseudo random generator seed in order to allow repeatable runs. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Suggested-by: Chris Wilson <chris@chris-wilson.co.uk> Suggested-by: Simon Ser <simon.ser@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-05-23gem_wsim: Fix prng usageTvrtko Ursulin
Back when gem_wsim used forking it was safe to use the common storage prng, but after converting to threads it no longer is. Fix by storing and using a new per workload seed for batch buffer duration randomness. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>