Age | Commit message (Collapse) | Author | Files | Lines |
|
Use PRI[du]64 as necessary for 32bit builds.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
Don't use the encoded information within the PCI-ID for the GT value, as
the rules keep changing. Use the device info instead.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
_open_pmu() was calling perf_igfx_open_group() which in turn was
calling igt_perf_type_id("i915") each time.
By making _open_pmu() take type as a parameter and call
igt_perf_open_group() we achieve two things:
* we use the correct type for engines->device instead of the
hardcoded "i915"
* optimization - we call igt_perf_type_id() once - it's reading
sysfs
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Signed-off-by: Ayaz A Siddiqui <ayaz.siddiqui@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
In intel_gpu_top device path was hard coded for integrated GPU.
With this patch we:
* use igt_device_scan library for device scanning,
* make discrete GPU the default one,
* provided options for card selection.
v2:
* explicitly set ret to EXIT_SUCCESS after all the other uses
* fix use after free of opt_device (Tvrtko)
* use EXIT_FAILURE instead of "1" (Tvrtko)
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Signed-off-by: Ayaz A Siddiqui <ayaz.siddiqui@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Adding eDP support for Link Layer Compliance tool
of DP-PHY test automation. Current Implementation
of this compliance tool can be used for dp and eDP
both. Hence extending to eDP too.
Signed-off-by: Nidhi Gupta <nidhi1.gupta@intel.com>
Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Animesh Manna <animesh.manna@intel.com>
Link: https://patchwork.freedesktop.org/series/72783/#rev2
|
|
It was missing a ")" to be properly parsed.
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
|
|
The additional alignment added when writing into the output was not
accounted in the header. This is preventing reading the recorded data.
Instead of adding the alignment when writing, just account for it when
querying the topology.
v2: Use calloc
Drop unused var
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: f08865e58cd3 ("tools: add i915 perf recorder tool")
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Add poll delay parameter to the i915-perf-recorder tool so that the user
can set the frequency of the poll timer that checks for available
reports in the OA buffer.
v2:
- Change poll period parameter type to match kernel interface (Lionel)
- Update to use poll period in the code (Ashutosh)
v3:
- Change command line paramter to poll-period (Ashutosh)
- Fix the version check for the feature (Ashutosh)
Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
|
|
Remove the _dump half of the pair of recorder command structs and use
a plain array of uint8_ts instead. Leave the struct in a comment to
act as documentation.
As a drive-by fix, add include guards to i915_perf_recorder_commands.h
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
|
|
Reading & printing out data recorded with i915-perf-recorder.
v2: Autotools support
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
A tool recording i915-perf data along with device description &
timestamp correlation points for mapping data to CPU tracepoints.
The format is mostly described in perf_data.h.
v2: Autotools support
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
This library contains the database of performance metrics for each
supported generation as well as its associated programming.
It also allow for the user to get human readable data out of HW
generated data.
v2: Switch a few python scripts to python3
v3: Fix some python2-ism
s/lkf/ehl/
Autotools support
v4: set soversion on i915_perf.so
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
If we don't recognise a buffer in the state, we claim it is a "batch
buffer" and so confuse the user.
Reported-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
Superseded by intel_dump_gpu in Mesa.
Signed-off-by: Matt Turner <mattst88@gmail.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
As tiling is not used we use the device coherent mapping instead of
mmap_gtt.
v2:
instead of skipping device coherent mapping is used. [Ashutosh]
Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
|
|
Convert open-coded for loops to __for_each_static_engine. That takes
care of the last direct user of intel_execution_engines2.
More work is needed to make intel_reg support dynamically queried
engines but this restores the old functionality.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Added the TigerLake register spec file and a register delta file
that contain additional registers corresponding to TigerLake.
The spec file uses the icelake file along with the newly added
register file for TGL register definations.
Suggested-by: Swati Sharma <swati2.sharma@intel.com>
Signed-off-by: John Machado <john.machado@intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
../tools/intel_panel_fitter.c: In function ‘change_screen_size’:
../tools/intel_panel_fitter.c:183:10: warning: taking the absolute value of unsigned type ‘uint32_t’ {aka ‘unsigned int’} has no effect [-Wabsolute-value]
183 | pos_x = abs((info.tot_width - dst_width)) / 2;
| ^~~
../tools/intel_panel_fitter.c:184:10: warning: taking the absolute value of unsigned type ‘uint32_t’ {aka ‘unsigned int’} has no effect [-Wabsolute-value]
184 | pos_y = abs((info.tot_height - dst_height)) / 2;
| ^~~
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
../tools/cnl_compute_wrpll.c: In function ‘cnl_ddi_calculate_wrpll2’:
../tools/cnl_compute_wrpll.c:216:21: warning: taking the absolute value of unsigned type ‘uint32_t’ {aka ‘unsigned int’} has no effect [-Wabsolute-value]
216 | dco_centrality = abs(dco - dco_mid);
| ^~~
../tools/cnl_compute_wrpll.c: In function ‘test_multipliers’:
../tools/cnl_compute_wrpll.c:258:21: warning: taking the absolute value of unsigned type ‘unsigned int’ has no effect [-Wabsolute-value]
258 | dco_centrality = abs(dco - dco_mid);
| ^~~
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
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>
|
|
A batch is now known as the batch, not a plain old gtt_offset which
could be anyone!
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Andi Shyti <andi.shyti@intel.com>
|
|
Tool uses device selection API to scan and display GPU devices.
It can be used to check filter correctness as well as order
of applying the filters (.igtrc, IGT_DEVICE and --device argument).
v2 (Arek):
* don't print chip as it's no longer there
* make it a second patch, before any alterations to igt_core or drmtest
* use only a single filter
v3 (Arek):
* use igt_load_igtrc() (Petri)
* add usage example (Chris)
* general logic cleanup
LONG EXAMPLE:
$ ./build/tools/lsgpu --help
usage: lsgpu [options]
Options:
-p, --print-details Print devices with details
-v, --list-vendors List recognized vendors
-l, --list-filter-types List registered device filters types
-d, --device filter Device filter, can be given multiple times
-h, --help Show this help message and exit
$ ./build/tools/lsgpu
sys:/sys/devices/pci0000:00/0000:00:02.0/drm/card0
subsystem : drm
drm card : /dev/dri/card0
parent : sys:/sys/devices/pci0000:00/0000:00:02.0
sys:/sys/devices/pci0000:00/0000:00:02.0/drm/renderD128
subsystem : drm
drm render : /dev/dri/renderD128
parent : sys:/sys/devices/pci0000:00/0000:00:02.0
sys:/sys/devices/platform/vgem/drm/card1
subsystem : drm
drm card : /dev/dri/card1
parent : sys:/sys/devices/platform/vgem
sys:/sys/devices/platform/vgem/drm/renderD129
subsystem : drm
drm render : /dev/dri/renderD129
parent : sys:/sys/devices/platform/vgem
sys:/sys/devices/pci0000:00/0000:00:02.0
subsystem : pci
drm card : /dev/dri/card0
drm render : /dev/dri/renderD128
vendor : 8086
device : 5927
sys:/sys/devices/platform/vgem
subsystem : platform
drm card : /dev/dri/card1
drm render : /dev/dri/renderD129
$ ./build/tools/lsgpu -l
Filter types:
---
filter syntax
---
sys sys:/sys/devices/pci0000:00/0000:00:02.0
find device by its sysfs path
drm drm:/dev/dri/* path
find drm device by /dev/dri/* node
pci pci:[vendor=%04x/name][,device=%04x][,card=%d]
vendor is hex number or vendor name
$ ./build/tools/lsgpu -d pci:vendor=Intel
Notice: Using --device filters
=== Device filter ===
pci:vendor=Intel
=== Testing device open ===
Device detail:
subsystem : pci
drm card : /dev/dri/card0
drm render : /dev/dri/renderD128
Device /dev/dri/card0 successfully opened
Device /dev/dri/renderD128 successfully opened
-------------------------------------------
$ ./build/tools/lsgpu -d pci:vendor=intel
Notice: Using --device filters
=== Device filter ===
pci:vendor=intel
=== Testing device open ===
Device detail:
subsystem : pci
drm card : /dev/dri/card0
drm render : /dev/dri/renderD128
Device /dev/dri/card0 successfully opened
Device /dev/dri/renderD128 successfully opened
-------------------------------------------
$ ./build/tools/lsgpu -d pci:vendor=intel -p
Notice: Using --device filters
=== Device filter ===
pci:vendor=intel
=== Testing device open ===
Device detail:
subsystem : pci
drm card : /dev/dri/card0
drm render : /dev/dri/renderD128
Device /dev/dri/card0 successfully opened
Device /dev/dri/renderD128 successfully opened
========== pci:/sys/devices/pci0000:00/0000:00:02.0 ==========
card device : /dev/dri/card0
render device : /dev/dri/renderD128
[properties]
DEVPATH : /devices/pci0000:00/0000:00:02.0
DRIVER : i915
FWUPD_GUID : 0x8086:0x5927
ID_MODEL_FROM_DATABASE : Iris Plus Graphics 650
ID_PCI_CLASS_FROM_DATABASE : Display controller
ID_PCI_INTERFACE_FROM_DATABASE : VGA controller
ID_PCI_SUBCLASS_FROM_DATABASE : VGA compatible controller
ID_VENDOR_FROM_DATABASE : Intel Corporation
MODALIAS : pci:v00008086d00005927sv00008086sd00002068bc03sc00i00
PCI_CLASS : 30000
PCI_ID : 8086:5927
PCI_SLOT_NAME : 0000:00:02.0
PCI_SUBSYS_ID : 8086:2068
SUBSYSTEM : pci
USEC_INITIALIZED : 22881171
[attributes]
ari_enabled : 0
boot_vga : 1
broken_parity_status : 0
class : 0x030000
consistent_dma_mask_bits : 39
current_link_speed : Unknown speed
current_link_width : 0
d3cold_allowed : 1
device : 0x5927
dma_mask_bits : 39
driver_override : (null)
enable : 1
firmware_node : LNXVIDEO:00
index : 1
irq : 129
label : CPU
local_cpulist : 0-3
local_cpus : f
max_link_speed : Unknown speed
max_link_width : 255
msi_bus : 1
numa_node : -1
revision : 0x06
subsystem : pci
subsystem_device : 0x2068
subsystem_vendor : 0x8086
vendor : 0x8086
-------------------------------------------
Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
Removing igt_skip_on_simulation() from tools 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>
|
|
Decode block 56.
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Update intel_vbt_defs.h from kernel commit 96815f3d8b50 ("drm/i915/bios:
add compression parameter block definition"). Also includes other
changes that weren't synced before.
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
HDMI 2.0 compliance tests needs 4K modes with YUV encoding.
This test selects 4K modes based on specified VIC.
v2:
- rename to amd_hdmi_compliance
- replace fprintf with igt_info/warn
- use EXIT_SUCCESS/FAILURE in exit()
Signed-off-by: Stylon Wang <stylon.wang@amd.com>
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
|
|
The curse of using libigt where it is not wanted; in this case calling
drop-caches while we hold the forcewake is a recipe for a long wait.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
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>
|
|
We were missing the level and control method.
Reviewed-by: Simon Ser <simon.ser@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Similar to other panel type indexed arrays.
Reviewed-by: Simon Ser <simon.ser@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
e points into the buffer pointed to by p.
Fixes: dfda0b6aecce ("intel_reg: introduce one intel_reg tool to rule them all")
Reviewed-by: Simon Ser <simon.ser@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
There is a new field for PSR2 training pattern duration in VBT versions
>= 226, decode that.
v2: Changed to fixed-width types(Ville)
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
A single 32-bit PSR2 training pattern field follows the sixteen element
array of PSR table entries as per VBT spec. But, we incorrectly define
this PSR2 field for each of PSR table entries. The result of this is
that the PSR1 training pattern duration for any panel_type != 0 will be
parsed incorrectly.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
With the fancy second slice of Haswell, we lost support for Ivybridge
with its paltry single slice.
Fixes: 8ddcfd6882a9 ("intel_l3_parity: slice support")
Testcase: igt/tools_test/sysfs_l3_parity
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
In kernel macro BIT is used to set value 1 on a given BIT, while in
this tool it was checking value of given bit in register.
So it was renamed.
Signed-off-by: Lukasz Kalamarz <lukasz.kalamarz@intel.com>
Cc: Zhenyu Wang <zhenyu.z.wang@intel.com>
Cc: Wu Fengguang <fengguang.wu@intel.com>
Cc: Katarzyna Dec <katarzyna.dec@intel.com>
Cc: Michal Winiarski <michal.winiarski@intel.com>
Reviewed-by: Katarzyna Dec <katarzyna.dec@intel.com>
|
|
Sync up to commit f41c615310d2 ("drm/i915/bios: add an enum for BDB
block IDs") in kernel intel_vbt_defs.h, and update the tool with the
struct renames.
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Since upgrade to Meson 0.46.0 we can have multiple binaries with the
same name. Let's re-enable build of igt_stats!
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
We need to keep igt working on linus and dif, or Joonas gets very upset.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Andi Shyti <andi.shyti@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Andi Shyti <andi.shyti@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
While I'm pretty confident that no one cares to use libigt.so or
lib_aubdump.so anywhere outside of igt, many distributions including
Fedora and Debian strongly suggest that packages have some sort of so
versioning, even if it's just '0'. So, let's fulfill that minimum
requirement to make this easier to package.
Acked-by: Petri Latvala <petri.latvala@intel.com>
Acked-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Lyude Paul <lyude@redhat.com>
|
|
One significant usecase for intel_reg/etc. is to be able to examine
the hardware state *before* loading the driver. If the tool forces
the driver to load we've totally lost that capability.
This reverts commit 8ae86621d6fff60b6e20c6b0f9b336785c935b0f.
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Michał Winiarski <michal.winiarski@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>
|
|
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>
|
|
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>
|
|
Cross check against the element dumper return value to catch
inconsistencies.
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
The spec is totally confused when it comes to the GPIO flags byte.
To allow us to inspect that the decoded result at least seems
sensible let's also dump the raw byte. Should at least show if
some bits are set which we're not expecting.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
The v3 GPIO seq is three bytes, not two. Decode it correctly.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
A new -o command switch enables logging to a file.
v2:
* Support "-o -" for explicit stdout selection. (Chris Wilson)
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=108689
Cc: Eero Tamminen <eero.t.tamminen@intel.com>
Cc: 3.14pi@ukr.net
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Two new output modes are added: listing of text data to standard out (-l
on the command line), and dumping of JSON formatted records (-J), also to
standard out.
The first mode is selected automatically when non-interactive standard out
is detected.
Example of text output:
Freq MHz IRQ RC6 Power IMC MiB/s RCS/0 BCS/0 VCS/0 VCS/1 VECS/0
req act /s % W rd wr % se wa % se wa % se wa % se wa % se wa
0 0 0 0 0.00 360 0 0.00 0 0 0.00 0 0 0.00 0 0 0.00 0 0 0.00 0 0
350 350 0 100 0.00 35 2 0.00 0 0 0.00 0 0 0.00 0 0 0.00 0 0 0.00 0 0
350 350 0 100 0.00 34 2 0.00 0 0 0.00 0 0 0.00 0 0 0.00 0 0 0.00 0 0
350 350 0 100 0.00 143 6 0.00 0 0 0.00 0 0 0.00 0 0 0.00 0 0 0.00 0 0
350 350 0 100 0.00 169 7 0.00 0 0 0.00 0 0 0.00 0 0 0.00 0 0 0.00 0 0
350 350 0 100 0.00 169 7 0.00 0 0 0.00 0 0 0.00 0 0 0.00 0 0 0.00 0 0
Example of JSON output:
{
"period": {
"duration": 1002.525224,
"unit": "ms"
},
"frequency": {
"requested": 349.118398,
"actual": 349.118398,
"unit": "MHz"
},
"interrupts": {
"count": 0.000000,
"unit": "irq/s"
},
"rc6": {
"value": 99.897752,
"unit": "%"
},
"power": {
"value": 0.000000,
"unit": "W"
},
"imc-bandwidth": {
"reads": 149.683843,
"writes": 6.104093,
"unit": "MiB/s"
},
"engines": {
"Render/3D/0": {
"busy": 0.000000,
"sema": 0.000000,
"wait": 0.000000,
"unit": "%"
},
"Blitter/0": {
"busy": 0.000000,
"sema": 0.000000,
"wait": 0.000000,
"unit": "%"
},
"Video/0": {
"busy": 0.000000,
"sema": 0.000000,
"wait": 0.000000,
"unit": "%"
},
"Video/1": {
"busy": 0.000000,
"sema": 0.000000,
"wait": 0.000000,
"unit": "%"
},
"VideoEnhance/0": {
"busy": 0.000000,
"sema": 0.000000,
"wait": 0.000000,
"unit": "%"
}
}
}
v2:
* Show example output in commit message.
* Install signal handler to complete output on SIGINT. (Chris Wilson)
v3:
* Use asprintf where possible. (Chris Wilson)
v4:
* Check asprintf return value, not the pointer.
* Rename fmt_d/dd to fmt_width/precision. (Chris Wilson)
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=108689
Cc: Eero Tamminen <eero.t.tamminen@intel.com>
Cc: 3.14pi@ukr.net
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|