Accepting request 1123405 from home:munix9:branches:X11:XOrg

- Update to version 1.28:
  * New meson options testplan, sphinx and xe_driver.
  * Add amdgpu GFX1036, GFX1037 chips.
  * Add xe_pciids.h with Lunar Lake (LNL) support.
  * Use the new procps library libproc2.
  * Add helper for srandom seed initialization.
  * Support for vmwgfx driver.
  * i915_pciids.h updated to include Pontevecchio (PVC) platform.
  * Add OAM formats and support for media engines in perf tests.
  * Support for Xe driver.
  * igt_runner can now dump GPU state on timeout.
  * igt_runner will now use proper 'abort' as result instead of pseudoresult.
  * New vendor agnostic gputop tool.
  * New tool to dump Intel GuC/HuC CSS header.
  * Improve tools intel_watermark, intel_vbt_decode, intel_reg.
  * New way for documenting tests will allow to generate documentation and
    testlists during build, see README.md and test_documentation.md. This
    is mandatory for Intel (both i915 and xe) and kms tests.
  * Move intel specific tests to new directory.
  * Ported and refactored drmlib security tests in amdgpu.
  * Switch DRM selftests to KUnit.
  * Enabled MeteorLake aux ccs tests.
  * Exercise oversized object detection for Xe.
  * Enable validation for VDSC output formats.
  * Add support for Bigjoiner / 8K mode.
  * Use intel_cmds_info library.
  * Use Intel kernel gpu command definitions.
  * Add a basic perf_pmu test.
  * Add test for V3D's Wait BO IOCTL.
  * Add i915_power test for power measurement.
  * Remove sysfs_clients.
- Remove intel-gpu-tools-libproc2_libproc2_library.patch (fixed upstream)
- Remove u_intel-gpu-tools-1.7-fix-bashisms.patch (obsolete)
- Build against libproc2 instead of libprocps
  * intel-gpu-tools-libproc2_libproc2_library.patch
- Update to version 1.27.1:
  * Support for Intel discrete graphics and other new platforms (Andrzej
    Turko, Matt Roper, Clint Taylor, Tejas Upadhyay, et al)
  * Support for MSM driver. (Mark Yacoub, Rob Clark)
  * Support for SRIOV device selection. (Łukasz Łaguna)
  * Tiled display emulation support with chamelium. (Kunal Joshi)
  * Support for Chamelium v3. (Mark Yacoub)
  * Initial FreeBSD support. (Jake Freeland)
  * Structured communication from tests to igt_runner. (Petri Latvala)
  * Removed last remaining uses of libdrm_intel in tests and
    tools. (Zbigniew Kempczyński)
  * Automatic kernel code coverage collection during testing. (Mauro
    Carvalho Chehab)
- Remove intel-gpu-tools_fix-meson.patch
- Disable SUSE_ZNOW to fix failing tests on x86_64
  + https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/102
- Build with meson 0.60 (intel-gpu-tools_fix-meson.patch)
  + https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/107
- Update to version 1.26:
  * Autotools support has been entirely dropped in favor of only meson. (Arkadiusz Hiler)
  * Tests can now signal that the whole test round should be aborted. (Arkadiusz Hiler)
  * Various robustness improvements for Chamelium use. (Arkadiusz Hiler,
    Kunal Joshi, Imre Deak, et al)
  * Device filtering improvements for multi-device use. (Arkadiusz Hiler)
  * Device filtering for various Intel tools like intel_gpu_top. (Ayaz A Siddiqui)
  * Overhauled kernel parameter handling. (Jani Nikula)
  * Introduced an i915 batchbuffer facility. (Zbigniew Kempczyński)
  * Improvements for testing nouveau. (Lyude Paul)
  * More readable and useful output for lsgpu and other tools that list
    devices. (Tvrtko Ursulin)
  * intel_gpu_top can now show per-client busyness stats. (Tvrtko Ursulin)
  * igt_runner can now limit the disk space used by a single test. (Petri Latvala)
- Switch to meson build system, Remove u_respect_cflags.diff (no longer needed)
- Update to version 1.25:
  * Meson build options have been renamed. Please check the news options in
    meson_options.txt and make sure you don't get any warnings when configuring
    the project. (Simon Ser)
  * Compile-testing CI for MIPS. (Guillaume Tucker)
  * Various igt_runner reliability improvements (Petri Latvala & Arkadiusz Hiler)
  * Switched GEM tests to engine discovery. (Tvrtko Ursulin et al)
  * Subtests can now be documented and their descriptions are available in
    generated HTML docs and on the command line via *-describe. Documenting new
    tests is mandatory. (Arkadiusz Hiler)
  * Unified library for EDID creation (Simon Ser)
  * Chamelium port auto-discovery (Simon Ser)
  * Tigerlake support (Lucas De Marchi)
  * Cometlake support (Anusha Srivatsa)
  * Add kernel selftest wrapper for dmabuf (Chris Wilson)
  * Bumped required meson version to 0.47.2 (Arkadiusz Hiler)
  * Rewritten README to be more friendly (Arkadiusz Hiler)
  * Introduced dynamic subsubtests for getting partial result for
    runtime*dependant features (Petri Latvala)
  * IGT can now run on the selected GPU via --device and lsgpu tool (Zbigniew
    Kempczyński)
  * Reduced runtime of many many tests (Chris Wilson et al)
- Update to version 1.24:
  * Bumped required meson version to 0.47. (Arkadiusz Hiler)
  * All the meson build options that used auto, true and false are now first
    class 'feature' options taking auto, enabled and disabled. (Arkadiusz Hiler)
  * Piglit as the primary test executor replaced by mostly drop-in
    compatible igt_runner. (Petri Latvala)
  * Stack traces now contain source file names and line numbers, using
    libdw. (Maarten Lankhorst)
  * Pixman dependency is now mandatory. (Maxime Ripard)
  * The project has moved to gitlab, and uses gitlab's CI to build test
    and sanity test each commit on various distributions and
    architectures. (Arkadiusz Hiler et al)
  * Shader debugger removed due to lack of use and accumulation of
    bitrot. (Arkadiusz Hiler)
  * Added support for testing DP/HDMI audio with the Chamelium device,
    dropping the audio tests that required exotic custom hardware to
    execute. (Simon Ser)
  * Autotools support dropped for various parts of IGT (assembler,
    documentation, etc). (Daniel Vetter)
  * intel-gpu-top can now output data to stdout or a log file for
    noninteractive use. (Tvrtko Ursulin)
- Remove n_disable-build-of-pm_rpm.patch is no longer needed 
- n_disable-build-of-gem_userptr_blits.patch
  * disabled build of gem_userptr_blits test in order to fix build
    on SUSE <= sle15/Leap15
- Release 1.23 (2018-08-08)
  * General changes:
    - Bumped used C standard to gnu11. (Lucas De Marchi)
    - Bumped required meson version to 0.44. (Petri Latvala)
    - Introduced meson options for explicit control over optional dependencies.
     (Petri Latvala)
    - Added a meson option to set runpath for the installed executables.
     (Petri Latvala)
    - GLib is now a mandatory dependency. (Petri Latvala)
    - Added testlists for the vc4 driver. (Maxime Ripard)
    - The project has now finalized its name change and is now IGT GPU Tools,
      docs and install paths are now "igt-gpu-tools". (Arkadiusz Hiler)
    - Added a blacklist for the Intel CI. (Petri Latvala)
  * Library changes:
    - i915_pciids.h updated to include KBL, ICL, WHL and AML.
     (José Roberto de Souza, Paulo Zanoni)
    - Overhaul of gpu_cmds, gpgpu_fill, media_fill and rendercopy.
      (Katarzyna Dec, Lukasz Kalamarz)
    - Added igt_matrix and igt_color_encoding helper libraries. (Ville Syrjälä)
    - IGT now shows the kernel stack trace when reporting a GPU hang. (Chris Wilson)
    - Added Icelake platform support. (Arkadiusz Hiler, Paulo Zanoni)
  * Tools changes:
    - intel-gpu-top was rewritten to be safe to use. (Tvrtko Ursulin)
  * Documentation changes:
    - Documented commit rights in CONTRIBUTING. (Daniel Vetter)
  * Test changes:
    - kms_prs_sink_crc was renamed to kms_psr. (Dhinakaran Pandiyan)
    - kms_frontbuffer_tracking no longer tests sink crc. (Dhinakaran Pandiyan)
    - drm_vma_limiter is no more. (Chris Wilson)
  * And many other bug fixes, improvements, cleanups and new tests.
- Release 1.22 (2018-03-09)
  * General changes:
    - Libudev has been made a mandatory dependency. (Antonio Argenziano)
    - Documentation changed to refer to the new igt-dev mailing
      list. (Rhys Kidd)
  * Library changes:
    - Refactored timer usage for smaller code size. (Chris Wilson)
    - Various fixes to support planar framebuffers. (Maarten Lankhorst)
    - Added support for fetching the most recent CRC without waiting for a
      vblank, along with flushing the queue of already collected
      CRCs. (Maarten Lankhorst)
    - Added a helper to mark BOs purgeable on vc4. (Boris Brezillon)
    - Moved handling of a "cork" BO into lib from various tests.
      (Daniele Ceraolo Spurio)
    - Added support for looping over physical i915 engines, as opposed to
      uABI engines that can alias. (Chris Wilson)
    - Added an accelerated method for reading from WC buffers.
      (Chris Wilson)
  * Tools changes:
    - Improved intel_vbt_decode output, updated the data from current
      kernel. (Jani Nikula)
    - intel_reg can now read/write registers using a given engine.
      (Mika Kuoppala)
    - Aubdump can now simulate enhanced execlist submission, for
      gen11+. (Scott D Phillips)
  * And many other bug fixes, improvements, cleanups and new tests.
- Release 1.21 (2018-01-16)
  * Library changes:
    - Added helpers for using DRM syncobj. (Jason Ekstrand)
    - Refactored several i915 helpers into library functions.
      (Michał Winiarski)
    - Improved the GPU quiescing code to more thoroughly flush old data
      and pending work. (Chris Wilson)
    - Reworked DRM property handling to be more suitable for
      atomic commits. (Maarten Lankhorst)
    - Removed support for legacy CRC API. The generic API has been
      available since kernel 4.10. (Maarten Lankhorst)
    - Opening a DRM device now automatically loads its module. (Chris Wilson)
    - Imported the drm-uapi headers as copies instead of using what's
      installed in the system. (Eric Anholt)
    - Moved the perf code to its own library from
      intel-gpu-overlay. (Tvrtko Ursulin)
    - Removed Android support due to lack of use and
      maintenance. (Arkadiusz Hiler)
    - Upgraded meson to official production status, automake is still kept
      around for now.
  * Tools changes:
    - Improved the output of intel_vbt_decode. (Jani Nikula)
    - intel_error_decode now prints user buffers if they contain debug
      logs. (Chris Wilson)
    - Improved the output of intel_watermark. (Ville Syrjälä,
      Dhinakaran Pandiyan)
    - Aubdump can now simulate execlist submission, converting from ring
      buffer submission method. (Scott D Phillips)
    - intel-gpu-overlay can now show data from perf PMU. (Tvrtko Ursulin,
      Chris Wilson)
    - intel-gpu-overlay now parses tracepoint locations from
      sysfs. (Lionel Landwerlin)
  * Documentation changes:
    - Documentation can now be built with Meson. (Daniel Vetter)
  * And many other bug fixes, improvements, cleanups and new tests.
- adjusted u_respect_cflags.diff
- fix deps for libdrm
- fix build
  * add ./autogen.sh
  * add --enable-gtk-doc
- Release 1.20 (2017-10-04) 
  * Library changes:
    - Added helpers for launching external processes and capturing their
      outputs. (Abdiel Janulgue)
    - Increased max pipe count to 6 to support AMD GPUs. (Leo (Sunpeng) Li)
    - Various improvements for Chamelium support. (Paul Kocialkowski)
    - Added Coffeelake platform support. (Rodrigo Vivi, Anusha Srivatsa)
    - Added Cannonlake platform support. (Rodrigo Vivi)
    - Added support for audio testing. (Paul Kocialkowski)
    - Added preliminary meson build system support. (Daniel Vetter, et al)
      -- Autotools remains the supported build system for now.
  * Tools changes:
    - Refactored video bios data to use definitions copied from the
      kernel. (Jani Nikula)
  * Documentation changes:
    - Added user and developer documentation about Chamelium support to
      aid deploying the platform. (Paul Kocialkowski)
    - Added documentation about the required hardware setup for audio
      testing. (Paul Kocialkowski)
  * Tests changes:
    - Converted remaining shell-script tests to C code (Abdiel Janulgue)
    - Multiple new tests.
  * And many other bug fixes and improvements.
- adjusted u_respect_cflags.diff
- add Source signature file
- Release 1.19 (2017-06-09)
  * Library changes:
    - Changed debugfs handlers to open files for the DRM device in use,
      for setups with more than one DRM device. (Tomeu Vizoso)
    - Added support for 4K and audio HDMI EDID injection. (Abdiel
      Janulgue, Marius Vlad)
    - Added support for AMDGPU devices. (Chris Wilson)
  * Tools changes:
    - intel_error_decode now automatically opens a pager. (Chris Wilson)
    - intel_error_decode now dumps the GuC firmware logs if available.
      (Chris Wilson)
  * Benchmark changes:
    - gem_wsim: New benchmark that simulates command submission
      workloads. (Tvrtko Ursulin)
  * Scripts changes:
    - trace.pl: New tool to parse i915 tracepoints for performance
      analysis. (Tvrtko Ursulin)
    - media-bench.pl: New tool to programmatically analyze simulated media
      workloads using gem_wsim to find the optimal load balancing
      strategy. (Tvrtko Ursulin)
   * Test changes:
     - Imported amdgpu tests from libdrm. (Chris Wilson)
     - Multiple other new tests.
   * And many other bug fixes and improvements.
- SLE merge
  * update to latest version, Stack release 2016Q1
    (fate #315643-315645, 319159-319161, 319618)
- Release 1.18 (2017-03-13)
  * Library changes:
    - Various changes to library functions so that they don't assume Intel
      hardware. (Lyude)
    - Added helper functions for managing synchronization primitives.
      (Robert Foss)
    - Added support for the new generic CRC capture kernel ABI. (Tomeu
      Vizoso)
    - Added Geminilake platform support. (Ander Conselvan de Oliveira)
    - Added helpers for sysfs hotplug events. (Lyude)
    - Added support for hotplug testing with the Chamelium device (Lyude)
  * Tools changes:
    - intel_dp_compliance: New tool for running automated DisplayPort
      compliance tests. (Manasi Navare)
    - Renamed intel_bios_reader to intel_vbt_decode. (Jani Nikula)
    - intel_gvtg_test: New tool for setting up GVT-g guests based on
      KVMGT. (Terrence Xu)
  * Test changes:
    - Multiple new tests.
  * And many other bug fixes and improvements.
- refreshed patches: n_disable-build-of-pm_rpm.patch, u_respect_cflags.diff
- Add u_respect_cflags.diff
- supersedes N_intel-gpu-tools_Fix_libkmod.h_include_path_1320.patch,
  N_intel-gpu-tools_Fix_libkmod.h_include_path_1315.patch,
  N_intel-gpu-tools_Fix_libkmod.h_include_path.patch
- Release 1.17 (2016-12-02)
  * Library changes:
    - Added an iterator that generate primes for creating input data that
      should not fall into any patterns that may be optimised by the
      drivers. (Chris Wilson)
    - Crashes in fixture blocks now print a stacktrace. (Marius Vlad)
    - Added support for various system suspend/resume options. (Imre Deak)
    - Added linked list helpers from the Wayland project. (Lyude)
    - Added a generic dummy workload helper for submitting GPU workloads
      that consume exactly a specified amount of time. (Abdiel Janulgue)
    - Added C functions for driver loading/unloading, pkill and lsof, for
      converting shell script tests to C code. (Marius Vlad)
  * Tools changes:
    - intel_reg: Add Kabylake support. (Jani Nikula)
    - intel_bios_reader: Also dump PSR info. (Ville Syrjälä)
    - intel_guc_logger: New tool for capturing logs from the GuC
      firmware. (Akash Goel)
    - intel_aubdump: Added commandline option to stream the dump to
      another process. (Lionel Landwerlin)
    - intel_aubdump: Annotate the dump with the application name and the
      used PCI ID. (Jason Ekstrand)
  * Benchmark changes:
    - gem_latency: Added support for measuring fence wakeup latencies. (Chris Wilson)
    - prime_lookup: New microbenchmark for stressing prime_fd_to_handle
      and prime_handle_to_fd. (Chris Wilson)
  * Test changes:
    - Multiple new tests.
    - Added an explicit list of tests used for Intel CI. (Petri Latvala)
    - Converted multiple shell script tests to C. (Marius Vlad)
  * And many other bug fixes and improvements.
- add new deps
  * pkgconfig(libkmod)
  * pkgconfig(libprocps)
- rebase patches
- fix libkmod.h include path
  * add N_intel-gpu-tools_Fix_libkmod.h_include_path_1315.patch
  * add N_intel-gpu-tools_Fix_libkmod.h_include_path_1320.patch
  * add N_intel-gpu-tools_Fix_libkmod.h_include_path.patch
- Update to version 1.16
A new intel-gpu-tools quarterly release is available with the following
changes:
- Build automatically tests required when issueing a make check, Tests/subtests
that receive a crash signal should print a backtrace when i-g-t is built with
libunwind support (Marius Vlad)
- lib/igt_kms: Force connector probing on first use (Chris Wilson)
- vc4: Add a test for BO lookup failure error path (Eric Anholt)
- tests/gem_mocs_settings: Remove direct register tests,
and added RC6 tests (Peter Antoine)
- Check for libdrm_intel and build if present, Add stubs for intel_bufmgr
(Robert Foss)
- igt/gem_mmap_gtt: Add a test to detect non-WC access (Chris Wilson)
- Various documentation improvements (Daniel Vetter)
- Added new tests: tests/kms_rmfb and tests/kms_atomic_transition, a test for
fastboot, tests/kms_panel_fitting, and a test that only tries to set the
current property values back, tests/kms_properties. Various improvements to
tests/kms_cursor_legacy (Maarten Lankhorst)
- lib/igt_kms: Use pipes for committing, not outputs and assign pipe properties
in pipe init and many other improvements (Maarten Lankhorst)
- tests/gem_workarounds: read test added as a basic test, fix assertion of num
of regs (Mika Kuoppala)
- Various improvements to tools/intel_bios_reader and tools/intel_reg (Ville
Syrj�l�)
- lib: Add x86 cpuid based feature detection (Chris Wilson)
- demos/intel_sprite_on: Instead of looping until the first disconnected port
is found, now go through all possible connectors, drawing the sprite on any
connected display. (Jim Bride)
- Multiple improvements to lib/igt_kms (Robert Foss)
- lib/igt_aux: Framework for measuring latency in raising signals (Chris
Wilson)
- Various modifications to intel_chipset: Replace lookup of GT size with
computation, remove unused PCI_CHIP ids, converting platforms names using
device info (Chris Wilson)
- tests/kms_chv_cursor_fail: Run the tests with fewer steps
(Maarten Lankhorst)
- lib/intel_chipset: Add more Kabylake PCI IDs and removed PCI IDs that are no
longer listed as Kabylake (Rodrigo Vivi)
- Basic framework for GVT-g testing has landed (Chris Wilson)
- Various improvements to tests/kms_flip (Ville Syrj�l�)
- igt/kms_cursor_legacy: Add a rudimentary test to detect stalled cursors,
detect pageflip errors and check that cursor updates do not stall flips
(Chris Wilson)
- vGEM support: lib and added tests/vgem_basic, tests/vgem_slow and
tests/vgem_reload_basic (Chris Wilson)
- Various fixes to tests/kms_frontbuffer_tracking: prefer BLT drawing, recreate
FBS at every subtest and properly handle mixing GTT and WC mmaps (Paulo Zanoni)
- Replace drv_missed_irq_hang script with a C-equivalent: tests/drv_missed_irq
(Chris Wilson)
- Added a test case for polling dma-buf fences: tests/prime_busy (Chris Wilson)
- lib/igt_gt: Omit illegal instruction on gen8+ and time
constrains on hang detection (igt/gem_reset_stats) (Mika Kuoppala)
- Added tests/kms_invalid_dotclock, a test that makes sure every modeset gets
rejected by the kernel if the requested dotclock is beyond the hardware
capabilities (Ville Syrj�l�)
- tests/gem_stolen: Verify contents of stolen-backed objects across
hibernation, fix for no_mmap subtest and check for available stolen memory size
(Ankitprasad Sharma)
- tests/core_prop_blob: Add invalid tests to set fb props (Daniel Vetter)
- Many more fixes and improvements.
Update to version 1.15
- New KMS test: tests/kms_cursor_legacy (Stress legacy cursor ioctl)
(Chris Wilson)
- Several GEM tests have been removed from BAT: tests/gem_exec_whisper,
tests/gem_sync (dropped individual engines), test/gem_cs_prefetch (replaced
by test/gem_exec_gttfill), tests/gem_ctx_param_basic (got relabeled
to tests/gem_ctx_param) (Chris Wilson)
- build: Skip configure step if is NOCONFIGURE set (Tomeu Vizoso)
- tools/intel_bios_reader: Added options for dumping individual panels, specific
section, hex format and other various fixes (Jani Nikula)
- build: Add optional --enable-werror
(hard-fail in case of compiler warnings) (Marius Vlad)
- New KMS test: tests/prime_mmap_kms (show case dma-buf new API
and processes restrictions) (Tiago Vignatti)
- Several tests have gained to ability to be run on different platforms
than Intel: tests/testdisplay (Tomeu Vizoso), tests/kms_panel_fitting
(Robert Foss), tests/kms_flip_event_leak, tests/kms_flip (Tomeu Vizoso).
- compute exitcode first: In the case of running multiple subtests which all
happen to be skipped, igt_exitcode is 0, but the final exit code will be 77.
(Chris Wilson)
- Shorten tests/kms_flip test (Tvrtko Ursulin)
- Half the timeout for suspend to RAM and a third for suspend to disk
(Marius Vlad)
- lib: Pass format instead of bpp to create_bo_for_fb (Ville Syrjälä)
- Removed from tests/test-list.txt, tests/gem_concurrent_all and added
tests/test-list-full.txt that contains all the tests. This will speed
up considerably piglit when starting tests. (Gabriel Feceoru)
- piglit changed its behaviour to prevent overwriting the results. A fairly new
version of piglit is required to run i-g-t tests. (Gabriel Feceoru)
- lib: Replace drmIoctl() with a layer of indirection (Chris Wilson)
- Adding missing Broxton PCI IDs (Rodrigo Vivi)
- Added COMMIT_ATOMIC (lib/igt_kms, w/ tests/kms_rotation_crc).
Requires nuclear_pageflip parameter turned on in the i915 driver.
(Mayuresh Gharpure, Pratik Vishwakarma)
- man/: rewrite manual pages in reStructuredText (Jani Nikula)
- tests/drv_module_reload_basic: perform fault injection (Chris Wilson)
with various improvements (Imre Deak)
- Removed tests/gem_multi_bsd_sync_loop which was superseded by
tests/gem_ring_sync_loop and tests/gem_dummy_reloc_loop by
tests/gem_exec_reloc (Chris Wilson)
- New GEM tests: tests/gem_exec_whisper, tests/gem_exec_store,
test/gem_exec_gttfill, tests/gem_exec_suspend, tests/gem_exec_flush
(Chris Wilson)
- New benchmarks: benchmarks/gem_syslatency, benchmarks/gem_exec_fault
(Chris Wilson)
- tests/gem_exec_nop included in BAT (Chris Wilson)
- tests/pm_rpm: Fix crash on machines that lack LLC (David Weinehall)
- lib/igt_fb: Fix domain tracking for GTT cairo surfaces (Chris Wilson)
- Add igt_subtest_group to allow igt_fixture for only a subset of subtests
without skipping/failing all subsequent subtests. (Daniel Vetter)
- Many more fixes and improvements.
Added python3-docutils to BuildRequires, since manual pages are now built
via rst2man.
- Update to version 1.14
  * New test: gem_create validate parameters for GEM_CREATE ioctl
    (Ankitprasad Sharma)
  * New test: gem_softpin exercise the userptr ioctl to create shared
    buffers between CPU and GPU (Vinay Belgaumkar)
  * New tests: prime_mmap_coherency/kms_mmap_write_crc cache coherency
    tests (Tiago Vignatti)
  * New test: prime_mmap mmap() on dma-buf fds (Rob Bradford)
  * New test: gem_exec_reloc sanity check of execbuf-ioctl relocations (Chris
    Wilson)
  * New test: gem_exec_basic sanity check of execbuf-ioctl rings (Chris Wilson)
  * improved igt_hang_ring() infrastructure for generic hang injection support
    in the core library (Chris Wilson)
  * new igt_pm library to collect power management testing helpers (David
    Weinehall)
  * lig/igt_vc4: VC4 support library (Eric Anholt)
  * kms_frontbuffer_tracking: included in BAT (Paulo Zanoni)
  * kms_psr_sink_crc: Add BAT test for PSR active (Rodrigo Vivi)
  * gem_wait: test superseded by gem_latency in benchmarks (Chris Wilson)
  * igt_core: Fix logging to display extended line (Derek Morton)
  * igt_core: Expand --run-subtest functionality (Derek Morton)
  * kms_force_connector_basic: various fixes and included in BAT set (Daniel
    Vetter)
  * Many other improvements and bug fixes.
- Update to version 1.13:
  + New tests:
    - kms_atomic tests atomic mode setting.
    - core_prop_blob tests blob properties.
    - gem_request_retire targets request retirement code paths.
    - core_setmaster_vs_auth checks that drop/setMaster correctly
      transfer master state.
  + Wildcard characters are now accepted when using the
    --run-subtest command line option to specify multiple subtests
    to run.
  + Add support for Broxton in intel_audio_dump.
  + Added Kabylake support.
  + Many other bug fixes and improvements.
- Add pkgconfig(libudev) and pkgconfig(xrandr) BuildRequires,
  configure looks for them so lets build with those supported too.
- intel-gpu-tools 1.12
  - Various new tests and tools
  - New statistical analysis functions. (Damien Lespiau)
  - New benchmark tests. (Chris Wilson)
  - Old register tools that were superseded by intel_reg have been removed.
  - Various tests have been marked "basic", to indicate they are suitable for
    use in basic acceptance testing. (Jesse Barnes)
  - Per-ring gem_storedw_loop tests combined into a single test with subtests.
    (Jesse Barnes)
  - New "aubdump" tool, used to launch an application and capture rendering to
    an AUB file. (Kristian Høgsberg Kristensen)
  - Cherryview support added to intel_display_poller. (Ville Syrjälä)
  - Skylake and Broadwell support added to gem_gpgpu_fill tests.
    (Dominik Zeromski)
  - Support for running core drm tests on any platform. (Micah Fedke)
  - Many other bug fixes
- supersedes patch 'u_build-fixes.patch"
- use correct filelist macros 
- Update to version 1.11
  * Various new tests and tools
  * Single combined test list (supported by piglit since commit 8a122bb)
  * Optional dependency on libunwind to provide automatic stack traces on test
    failures. (Thomas Wood)
  * Add optional default debug and optimisation flags for tests to enable better
    stack traces and debugging. (Thomas Wood)
  * Test programs are now installed into libexec. This is useful when building a
    complete software stack for a DUT from scratch. (Building and installing
    tests can still be disabled by the --disable-tests configure flag.)
    (Joonas Lahtinen)
  * New tool to decode watermark registers (Ville Syrjälä)
  * Timeout mechanism now reports test as failed
  * Introduce intel_reg as the one Intel graphics register multitool to replace
    intel_reg_read, intel_reg_write, intel_iosf_sb_read, intel_iosf_sb_write,
    intel_vga_read, intel_vga_write, intel_reg_dumper, intel_reg_snapshot,
    and quick_dump.py. (Jani Nikula)
  * Add functions to manipulate i915.ko parameters and ensure features are enabled
    for testing. (Paulo Zanoni)
- supersedes u_Fix-pointer-cast-in-order-to-fix-build-on-32bit-arch.patch
- added new buildrequires to gtk-doc and libunwind
- added /usr/lib/intel-gpu-tools/* and /usr/share/intel-gpu-tools/* to filelist
- u_Fix-pointer-cast-in-order-to-fix-build-on-32bit-arch.patch
  * fixes build on 32bit 
- Update to version 1.10
  * New frequency manipulation tool (intel_gpu_frequency)
  * Adjustments for the Solaris port (Alan Coopersmith).
  * Remove tests/NAMING-CONVENTION since it's all in the docbook now,
    to avoid divergent conventions.
  * New CRITICAL log level for really serious stuff (Thomas Wood).
  * Interactive test mode can now be enabled by the shared cmdline
    option --interactive-debug=$var (Rodrigo Vivi).
  * Improved logging to kmsg to better line up test runs with kernel
    messages (Chris Wilson).
  * Record all log levels (including disabled levels) in a ringbuffer
    and dump that on test failures for quicker diagnostics of automated
    test run results (Thomas Wood).
  * A lot of small polish all over the test library.
  * Piles of new testcases and improvements to existing ones as usual.
- reenabled post build checks
- u_build-fixes.patch
  * fix post build checks 
- Update to version 1.9:
  + Patches refactored for new sources
  + post-build-checks disabled, due to check failure:
    I: Program returns random data in a function
    E: intel-gpu-tools no-return-in-nonvoid-function
       intel_renderstate_gen8.c:441
  + Dropped:
    - n_missing_check-ndebug.h.patch
    - intel-gpu-tools-1.7.tar.bz2
  + Added:
    - intel-gpu-tools-1.9.tar.bz2
  + Changes from version 1.7
    - More Android porting
    - Fixes to documentation warnings
    - Updates to UPDATE, MAINTAINERS, and README
    - lib:
      - Fix out of tree build of version.h
      - added function to lock memory into RAM
      - add option log domain filtering
      - introduce log domains
      - igt_debugfs: Don't setup crc in _new
      - igt_debugfs: Throw away the two first CRCs
      - igt.cocci: Deal with min/max/swap
      - add swap() macro
      - always reset connectors after the state is forced
      - remove igt_edid.h
    - tests:
      - gem_tiled_swapping: use igt_info logging wrapper
      - replaced 3D test images
      - kms_cursor_crc: Restore the valid pipe/connector combo check
      - kms_mmio_vs_cs_flip: Count valid tests for all crtcs
      - kms_flip:
        * Target the back buffer with the dummy load
        * Calibrate the dummy load delay in kms_flip
        * Use fixed size (2kx2k) buffers for dummy load
        * Refactor blit code
      - Run lib/igt.cocci
      - pm_rps: vlv:
        * roundmiddle point to freq supported by HW
        * load gpu for idle min/max tests\
        * wait for freq to settleo
      - add gem_gpgpu_fill to .gitignore
      - use base edid
    - tools:
      - add missing copyright headers
      - terminate getopt_long long option arrays properly
    - drv_hangman: Remove unused function
    - kms_cursor_crc: Remove value to 'return' in a void function
    - igt/drm_read: Require that pipe 0 is active
    - igt/drm_read: Abuse read(drm)
    - intel_error_decode: Decode the ERROR register on Sandybridge
      and Ivybridge
    - gem_bad_reloc: Don't flip-flop between SKIP and PASS
- rename intel-gpu-tools-1.7-fix-bashisms.patch to 
  u_intel-gpu-tools-1.7-fix-bashisms.patch according to our patch
  guidelines
- fix bashism in intel_gpu_abrt script that uses bash-specific
  constructions
- add patches:
  * intel-gpu-tools-1.7-fix-bashisms.patch
- update to release 1.7; Here goes a new i-g-t quarterly release
  with the following changes:
  * Piles of API documentation for the core i-g-t testing libraries.
  * Improved igt loggin, now also with igt_vlog (for va_args printf-style
    logging).
  * Polish for the igt_debugfs library.
  * Split out igt_fb library from igt_kms, cleanup of the igt_kms functions.
  * Android porting patches (Tim Gore, Tvrtko Ursulin).
  * Piles more tests as usual.
  * Support for building libcairo based tests on Android. Set ANDROID_HAS_CAIRO=1
    in the build enviroment when you have this (Tim Gore).
  * Timeout support in igt_aux, see igt_set_timeout (Thomas).
  * Documentation for the testrunner interface like exit codes, subtest
    enumeration and log output. Should help other people to run the tests in their own framework.
  * Make swig an optional dependency (Damien).
  * Helpers for runtime pm tests in igt_aux.
- rename n_disable-build-of-pm_pc8.patch to n_disable-build-of-pm_rpm.patch,
  since test has been renamed
- update to release 1.6
  * Changes to support Broadwell in the test suite. (Ben, Damien, et al.)
  * Updated (now working again!) Android support from Oscar Mateo.
  * Test coverage through i-g-t is now officially an integral part of any drm/i915
    feature work and also for bugfixes. For more details see:
      http://blog.ffwll.ch/2013/11/testing-requirements-for-drmi915.html
  * Fix the gen4asm build depency handling, now that the assembler is included in
    i-g-t (Ben).
  * Improve the cairo object lifetime management of the kmstest helpers (Chris).
  * Allow register access to succeed if i915 is loaded but debugfs isn't found
    (i.e. nomodeset is used)
  * New kernel modesetting helper library for simpler testcases (Damien).
  * New structure logging support for tests. Message at the WARN level be
    reflected in the piglit result, also included igt_warn_on macros to simplify
    test asserts which should just result in warnings, but not in a test abort.
  * Broadwell support for intel_audio_dump (Mengdong Lin).
  * API documentation support (Thomas)
- n_missing_check-ndebug.h.patch
  * added missing include file in order to fix build
- refreshed n_disable-build-of-pm_pc8.patch
- added missing pkgconfig(dri2proto)
- added missing LICENSE file
- update to release 1.5
- n_disable-build-of-pm_pc8.patch
  * disables build for pm_pc8 test app for now
- removed obsolete patches
  * intel-gpu-tools-no-test.diff
  * u_intel-gpu-tools-no_m4_dir.patch
- renamed latest patch according to our policy 
- Removed AC_CONFIG_MACRO_DIR([m4]) from configure.ac to fix
  build with new automake
- Update to version 1.3:
  New intel-gpu-tools release with too much stuff changed. Biggest part is
  improvements to the testsuit, but also some other neat things:
  + dpf tool for handling l3 remapping on gen7
  + robustify against wc gtt mappings
  + improvements to the reg_dumper and register read/write tools
  + haswell support
- Packaging changes:
  + Added cairo to BuildRequires (we need this now)
  + changed intel-gpu-tools-no-test.diff to speed up compilation
- change it to exclusivearch, as it also does not exist on ARM
- exclude ppc, ppc64. There is no intel graphic
- updated to version 1.2:
  support for recent Intel graphic chips, many fixes
  See ChangeLog for details
- Don't build test directory (to simplify the packaging)
- Split intel-gpu-tools from xorg-x11-driver-video.
  Initial version: 1.0.2-20101210-292ae45.

OBS-URL: https://build.opensuse.org/request/show/1123405
OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/intel-gpu-tools?expand=0&rev=11
This commit is contained in:
Tejas Guruswamy 2023-11-05 21:21:10 +00:00 committed by Git OBS Bridge
parent 5958fe57b4
commit 0e59820f31
8 changed files with 65 additions and 522 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:93b9a4816ed22b5145bb61024314c8a65caeea991ce93027643f1d40723bf417
size 2321940

Binary file not shown.

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ffcbdf61bd495803d9ae9dfa83e2fe04b8f583a2296fe059c1d5dd135a8a3b15
size 2597284

Binary file not shown.

View File

@ -1,491 +0,0 @@
Description: Link to libproc2
libproc2 is the new library for libprocps
Author: Craig Small <csmall@debian.org>
Bug-Debian: https://bugs.debian.org/1024221
Reviewed-by: Craig Small <csmall@debian.org>
Last-Update: 2022-12-22
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/lib/igt_aux.c
+++ b/lib/igt_aux.c
@@ -52,8 +52,16 @@
#include <assert.h>
#include <grp.h>
+#ifdef HAVE_LIBPROCPS
#include <proc/readproc.h>
+#endif
+#ifdef HAVE_LIBPROC2
+#include <libproc2/pids.h>
+#endif
+
#include <libudev.h>
+#include <linux/limits.h>
+#include <dirent.h>
#include "drmtest.h"
#include "i915_drm.h"
@@ -1217,6 +1225,7 @@ void igt_unlock_mem(void)
*/
int igt_is_process_running(const char *comm)
{
+#if HAVE_LIBPROCPS
PROCTAB *proc;
proc_t *proc_info;
bool found = false;
@@ -1235,6 +1244,26 @@ int igt_is_process_running(const char *c
closeproc(proc);
return found;
+#endif
+#ifdef HAVE_LIBPROC2
+ enum pids_item Item[] = { PIDS_CMD };
+ struct pids_info *info = NULL;
+ struct pids_stack *stack;
+ char *pid_comm;
+ bool found = false;
+
+ if (procps_pids_new(&info, Item, 1) < 0)
+ return false;
+ while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) {
+ pid_comm = PIDS_VAL(0, str, stack, info);
+ if (!strncasecmp(pid_comm, comm, strlen(pid_comm))) {
+ found = true;
+ break;
+ }
+ }
+ procps_pids_unref(&info);
+ return found;
+#endif
}
/**
@@ -1251,6 +1280,7 @@ int igt_is_process_running(const char *c
*/
int igt_terminate_process(int sig, const char *comm)
{
+#ifdef HAVE_LIBPROCPS
PROCTAB *proc;
proc_t *proc_info;
int err = 0;
@@ -1272,6 +1302,29 @@ int igt_terminate_process(int sig, const
closeproc(proc);
return err;
+#endif
+#ifdef HAVE_LIBPROC2
+ enum pids_item Items[] = { PIDS_ID_PID, PIDS_CMD };
+ struct pids_info *info = NULL;
+ struct pids_stack *stack;
+ char *pid_comm;
+ int pid;
+ int err = 0;
+
+ if (procps_pids_new(&info, Items, 2) < 0)
+ return -errno;
+ while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) {
+ pid = PIDS_VAL(0, s_int, stack, info);
+ pid_comm = PIDS_VAL(1, str, stack, info);
+ if (!strncasecmp(pid_comm, comm, strlen(pid_comm))) {
+ if (kill(pid, sig) < 0)
+ err = -errno;
+ break;
+ }
+ }
+ procps_pids_unref(&info);
+ return err;
+#endif
}
struct pinfo {
@@ -1341,9 +1394,9 @@ igt_show_stat_header(void)
}
static void
-igt_show_stat(proc_t *info, int *state, const char *fn)
+igt_show_stat(const pid_t tid, const char *cmd, int *state, const char *fn)
{
- struct pinfo p = { .pid = info->tid, .comm = info->cmd, .fn = fn };
+ struct pinfo p = { .pid = tid, .comm = cmd, .fn = fn };
if (!*state)
igt_show_stat_header();
@@ -1353,7 +1406,7 @@ igt_show_stat(proc_t *info, int *state,
}
static void
-__igt_lsof_fds(proc_t *proc_info, int *state, char *proc_path, const char *dir)
+__igt_lsof_fds(const pid_t tid, const char *cmd, int *state, char *proc_path, const char *dir)
{
struct dirent *d;
struct stat st;
@@ -1400,7 +1453,7 @@ again:
dirn = dirname(copy_fd_lnk);
if (!strncmp(dir, dirn, strlen(dir)))
- igt_show_stat(proc_info, state, fd_lnk);
+ igt_show_stat(tid, cmd, state, fd_lnk);
free(copy_fd_lnk);
free(fd_lnk);
@@ -1416,13 +1469,14 @@ again:
static void
__igt_lsof(const char *dir)
{
- PROCTAB *proc;
- proc_t *proc_info;
-
char path[30];
char *name_lnk;
struct stat st;
int state = 0;
+#ifdef HAVE_LIBPROCPS
+ PROCTAB *proc;
+ proc_t *proc_info;
+
proc = openproc(PROC_FILLCOM | PROC_FILLSTAT | PROC_FILLARG);
igt_assert(proc != NULL);
@@ -1456,6 +1510,44 @@ __igt_lsof(const char *dir)
}
closeproc(proc);
+#endif
+#ifdef HAVE_LIBPROC2
+ enum pids_item Items[] = { PIDS_ID_PID, PIDS_CMD };
+ struct pids_info *info = NULL;
+ struct pids_stack *stack;
+
+ if (procps_pids_new(&info, Items, 2) < 0)
+ return;
+ while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) {
+ ssize_t read;
+ int tid = PIDS_VAL(0, s_int, stack, info);
+ char *pid_comm = PIDS_VAL(1, str, stack, info);
+
+ /* check current working directory */
+ memset(path, 0, sizeof(path));
+ snprintf(path, sizeof(path), "/proc/%d/cwd", tid);
+
+ if (stat(path, &st) == -1)
+ continue;
+
+ name_lnk = malloc(st.st_size + 1);
+
+ igt_assert((read = readlink(path, name_lnk, st.st_size + 1)));
+ name_lnk[read] = '\0';
+
+ if (!strncmp(dir, name_lnk, strlen(dir)))
+ igt_show_stat(tid, pid_comm, &state, name_lnk);
+
+ /* check also fd, seems that lsof(8) doesn't look here */
+ memset(path, 0, sizeof(path));
+ snprintf(path, sizeof(path), "/proc/%d/fd", tid);
+
+ __igt_lsof_fds(tid, pid_comm, &state, path, dir);
+
+ free(name_lnk);
+ }
+ procps_pids_unref(&info);
+#endif
}
/**
@@ -1490,7 +1582,7 @@ igt_lsof(const char *dpath)
free(sanitized);
}
-static void pulseaudio_unload_module(proc_t *proc_info)
+static void pulseaudio_unload_module(const uid_t euid, const gid_t egid)
{
struct igt_helper_process pa_proc = {};
char xdg_dir[PATH_MAX];
@@ -1498,14 +1590,14 @@ static void pulseaudio_unload_module(pro
struct passwd *pw;
igt_fork_helper(&pa_proc) {
- pw = getpwuid(proc_info->euid);
+ pw = getpwuid(euid);
homedir = pw->pw_dir;
- snprintf(xdg_dir, sizeof(xdg_dir), "/run/user/%d", proc_info->euid);
+ snprintf(xdg_dir, sizeof(xdg_dir), "/run/user/%d", euid);
igt_info("Request pulseaudio to stop using audio device\n");
- setgid(proc_info->egid);
- setuid(proc_info->euid);
+ setgid(egid);
+ setuid(euid);
clearenv();
setenv("HOME", homedir, 1);
setenv("XDG_RUNTIME_DIR",xdg_dir, 1);
@@ -1524,10 +1616,12 @@ static void pipewire_reserve_wait(void)
char xdg_dir[PATH_MAX];
const char *homedir;
struct passwd *pw;
- proc_t *proc_info;
- PROCTAB *proc;
+ int tid=0, euid, egid;
+#ifdef HAVE_LIBPROCPS
igt_fork_helper(&pw_reserve_proc) {
+ proc_t *proc_info;
+ PROCTAB *proc;
igt_info("Preventing pipewire-pulse to use the audio drivers\n");
proc = openproc(PROC_FILLCOM | PROC_FILLSTAT | PROC_FILLARG);
@@ -1539,21 +1633,44 @@ static void pipewire_reserve_wait(void)
freeproc(proc_info);
}
closeproc(proc);
+ tid = proc_info->tid;
+ euid = proc_info->euid;
+ egid = proc_info->egid;
+ freeproc(proc_info);
+#endif
+#ifdef HAVE_LIBPROC2
+ igt_fork(child, 1) {
+ enum pids_item Items[] = { PIDS_ID_PID, PIDS_ID_EUID, PIDS_ID_EGID };
+ enum rel_items { EU_PID, EU_EUID, EU_EGID };
+ struct pids_info *info = NULL;
+ struct pids_stack *stack;
+
+ igt_info("Preventing pipewire-pulse to use the audio drivers\n");
+
+ if (procps_pids_new(&info, Items, 3) < 0)
+ return;
+ while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) {
+ tid = PIDS_VAL(EU_PID, s_int, stack, info);
+ if (pipewire_pulse_pid == tid)
+ break;
+ }
+ euid = PIDS_VAL(EU_EUID, s_int, stack, info);
+ egid = PIDS_VAL(EU_EGID, s_int, stack, info);
+ procps_pids_unref(&info);
+#endif
/* Sanity check: if it can't find the process, it means it has gone */
- if (pipewire_pulse_pid != proc_info->tid)
+ if (pipewire_pulse_pid != tid)
exit(0);
- pw = getpwuid(proc_info->euid);
+ pw = getpwuid(euid);
homedir = pw->pw_dir;
- snprintf(xdg_dir, sizeof(xdg_dir), "/run/user/%d", proc_info->euid);
- setgid(proc_info->egid);
- setuid(proc_info->euid);
+ snprintf(xdg_dir, sizeof(xdg_dir), "/run/user/%d", euid);
+ setgid(egid);
+ setuid(euid);
clearenv();
setenv("HOME", homedir, 1);
setenv("XDG_RUNTIME_DIR",xdg_dir, 1);
- freeproc(proc_info);
-
/*
* pw-reserve will run in background. It will only exit when
* igt_kill_children() is called later on. So, it shouldn't
@@ -1570,9 +1687,7 @@ static void pipewire_reserve_wait(void)
int pipewire_pulse_start_reserve(void)
{
bool is_pw_reserve_running = false;
- proc_t *proc_info;
int attempts = 0;
- PROCTAB *proc;
if (!pipewire_pulse_pid)
return 0;
@@ -1584,6 +1699,10 @@ int pipewire_pulse_start_reserve(void)
* pipewire version 0.3.50 or upper.
*/
for (attempts = 0; attempts < PIPEWIRE_RESERVE_MAX_TIME; attempts++) {
+#ifdef HAVE_LIBPROCPS
+ proc_t *proc_info;
+ PROCTAB *proc;
+
usleep(1000);
proc = openproc(PROC_FILLCOM | PROC_FILLSTAT | PROC_FILLARG);
igt_assert(proc != NULL);
@@ -1598,6 +1717,25 @@ int pipewire_pulse_start_reserve(void)
freeproc(proc_info);
}
closeproc(proc);
+#endif
+#ifdef HAVE_LIBPROC2
+ enum pids_item Items[] = { PIDS_ID_PID, PIDS_CMD };
+ struct pids_info *info = NULL;
+ struct pids_stack *stack;
+
+ usleep(1000);
+
+ if (procps_pids_new(&info, Items, 2) < 0)
+ return 1;
+ while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) {
+ if (!strcmp(PIDS_VAL(1, str, stack, info), "pw-reserve")) {
+ is_pw_reserve_running = true;
+ pipewire_pw_reserve_pid = PIDS_VAL(0, s_int, stack, info);
+ break;
+ }
+ }
+ procps_pids_unref(&info);
+#endif
if (is_pw_reserve_running)
break;
}
@@ -1645,7 +1783,7 @@ void pipewire_pulse_stop_reserve(void)
* If the check fails, it means that the process can simply be killed.
*/
static int
-__igt_lsof_audio_and_kill_proc(proc_t *proc_info, char *proc_path)
+__igt_lsof_audio_and_kill_proc(const pid_t tid, const char *cmd, const uid_t euid, const gid_t egid, char *proc_path)
{
const char *audio_dev = "/dev/snd/";
char path[PATH_MAX * 2];
@@ -1670,10 +1808,10 @@ __igt_lsof_audio_and_kill_proc(proc_t *p
* 2) unload/unbind the the audio driver(s);
* 3) stop the pw-reserve thread.
*/
- if (!strcmp(proc_info->cmd, "pipewire-pulse")) {
+ if (!strcmp(cmd, "pipewire-pulse")) {
igt_info("process %d (%s) is using audio device. Should be requested to stop using them.\n",
- proc_info->tid, proc_info->cmd);
- pipewire_pulse_pid = proc_info->tid;
+ tid, cmd);
+ pipewire_pulse_pid = tid;
return 0;
}
/*
@@ -1685,9 +1823,9 @@ __igt_lsof_audio_and_kill_proc(proc_t *p
* will respawn them. So, just ignore here, they'll honor pw-reserve,
* when the time comes.
*/
- if (!strcmp(proc_info->cmd, "pipewire-media-session"))
+ if (!strcmp(cmd, "pipewire-media-session"))
return 0;
- if (!strcmp(proc_info->cmd, "wireplumber"))
+ if (!strcmp(cmd, "wireplumber"))
return 0;
dp = opendir(proc_path);
@@ -1723,22 +1861,22 @@ __igt_lsof_audio_and_kill_proc(proc_t *p
* enough to unbind audio modules and won't cause race issues
* with systemd trying to reload it.
*/
- if (!strcmp(proc_info->cmd, "pulseaudio")) {
- pulseaudio_unload_module(proc_info);
+ if (!strcmp(cmd, "pulseaudio")) {
+ pulseaudio_unload_module(euid, egid);
break;
}
/* For all other processes, just kill them */
igt_info("process %d (%s) is using audio device. Should be terminated.\n",
- proc_info->tid, proc_info->cmd);
+ tid, cmd);
- if (kill(proc_info->tid, SIGTERM) < 0) {
+ if (kill(tid, SIGTERM) < 0) {
igt_info("Fail to terminate %s (pid: %d) with SIGTERM\n",
- proc_info->cmd, proc_info->tid);
- if (kill(proc_info->tid, SIGABRT) < 0) {
+ cmd, tid);
+ if (kill(tid, SIGABRT) < 0) {
fail++;
igt_info("Fail to terminate %s (pid: %d) with SIGABRT\n",
- proc_info->cmd, proc_info->tid);
+ cmd, tid);
}
}
@@ -1760,9 +1898,10 @@ int
igt_lsof_kill_audio_processes(void)
{
char path[PATH_MAX];
+ int fail = 0;
+#ifdef HAVE_LIBPROCPS
proc_t *proc_info;
PROCTAB *proc;
- int fail = 0;
proc = openproc(PROC_FILLCOM | PROC_FILLSTAT | PROC_FILLARG);
igt_assert(proc != NULL);
@@ -1772,12 +1911,35 @@ igt_lsof_kill_audio_processes(void)
if (snprintf(path, sizeof(path), "/proc/%d/fd", proc_info->tid) < 1)
fail++;
else
- fail += __igt_lsof_audio_and_kill_proc(proc_info, path);
+ fail += __igt_lsof_audio_and_kill_proc(proc_info->pid, proc_info->cmd, proc_info->euid, proc_info->egid, path);
freeproc(proc_info);
}
closeproc(proc);
+#endif
+#ifdef HAVE_LIBPROC2
+ enum pids_item Items[] = { PIDS_ID_PID, PIDS_CMD, PIDS_ID_EUID, PIDS_ID_EGID };
+ enum rel_items { EU_PID, EU_CMD, EU_EUID, EU_EGID };
+ struct pids_info *info = NULL;
+ struct pids_stack *stack;
+ pid_t tid;
+
+ if (procps_pids_new(&info, Items, 4) < 0)
+ return 1;
+ while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) {
+ tid = PIDS_VAL(EU_PID, s_int, stack, info);
+ if (snprintf(path, sizeof(path), "/proc/%d/fd", tid) < 1)
+ fail++;
+ else
+ fail += __igt_lsof_audio_and_kill_proc(tid,
+ PIDS_VAL(EU_CMD, str, stack, info),
+ PIDS_VAL(EU_EUID, s_int, stack, info),
+ PIDS_VAL(EU_EGID, s_int, stack, info),
+ path);
+ }
+ procps_pids_unref(&info);
+#endif
return fail;
}
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -105,7 +105,6 @@ lib_deps = [
libdrm,
libdw,
libkmod,
- libprocps,
libudev,
math,
pciaccess,
@@ -169,6 +168,12 @@ if chamelium.found()
lib_sources += 'monitor_edids/monitor_edids_helper.c'
endif
+if libprocps.found()
+ lib_deps += libprocps
+else
+ lib_deps += libproc2
+endif
+
if get_option('srcdir') != ''
srcdir = join_paths(get_option('srcdir'), 'tests')
else
--- a/meson.build
+++ b/meson.build
@@ -120,7 +120,15 @@ build_info += 'With libdrm: ' + ','.join
pciaccess = dependency('pciaccess', version : '>=0.10')
libkmod = dependency('libkmod')
-libprocps = dependency('libprocps', required : true)
+libprocps = dependency('libprocps', required : false)
+libproc2 = dependency('libproc2', required : false)
+if libprocps.found()
+ config.set('HAVE_LIBPROCPS', 1)
+elif libproc2.found()
+ config.set('HAVE_LIBPROC2', 1)
+else
+ error('Either libprocps or libproc2 is required')
+endif
libunwind = dependency('libunwind', required : get_option('libunwind'))
build_info += 'With libunwind: @0@'.format(libunwind.found())

View File

@ -1,3 +1,41 @@
-------------------------------------------------------------------
Sun Nov 5 09:48:04 UTC 2023 - munix9@googlemail.com
- Update to version 1.28:
* New meson options testplan, sphinx and xe_driver.
* Add amdgpu GFX1036, GFX1037 chips.
* Add xe_pciids.h with Lunar Lake (LNL) support.
* Use the new procps library libproc2.
* Add helper for srandom seed initialization.
* Support for vmwgfx driver.
* i915_pciids.h updated to include Pontevecchio (PVC) platform.
* Add OAM formats and support for media engines in perf tests.
* Support for Xe driver.
* igt_runner can now dump GPU state on timeout.
* igt_runner will now use proper 'abort' as result instead of pseudoresult.
* New vendor agnostic gputop tool.
* New tool to dump Intel GuC/HuC CSS header.
* Improve tools intel_watermark, intel_vbt_decode, intel_reg.
* New way for documenting tests will allow to generate documentation and
testlists during build, see README.md and test_documentation.md. This
is mandatory for Intel (both i915 and xe) and kms tests.
* Move intel specific tests to new directory.
* Ported and refactored drmlib security tests in amdgpu.
* Switch DRM selftests to KUnit.
* Enabled MeteorLake aux ccs tests.
* Exercise oversized object detection for Xe.
* Enable validation for VDSC output formats.
* Add support for Bigjoiner / 8K mode.
* Use intel_cmds_info library.
* Use Intel kernel gpu command definitions.
* Add a basic perf_pmu test.
* Add test for V3D's Wait BO IOCTL.
* Add i915_power test for power measurement.
* Remove sysfs_clients.
- Remove intel-gpu-tools-libproc2_libproc2_library.patch (fixed upstream)
- Remove u_intel-gpu-tools-1.7-fix-bashisms.patch (obsolete)
-------------------------------------------------------------------
Thu Apr 20 00:55:37 UTC 2023 - Tejas Guruswamy <tejas.guruswamy@opensuse.org>
@ -7,7 +45,7 @@ Thu Apr 20 00:55:37 UTC 2023 - Tejas Guruswamy <tejas.guruswamy@opensuse.org>
-------------------------------------------------------------------
Sat Mar 4 04:16:41 UTC 2023 - Tejas Guruswamy <tejas.guruswamy@opensuse.org>
- Update to version 1.27.1:
- Update to version 1.27.1:
* Support for Intel discrete graphics and other new platforms (Andrzej
Turko, Matt Roper, Clint Taylor, Tejas Upadhyay, et al)
* Support for MSM driver. (Mark Yacoub, Rob Clark)

View File

@ -17,18 +17,16 @@
Name: intel-gpu-tools
Version: 1.27.1
Version: 1.28
Release: 0
Summary: Collection of tools for development and testing of the Intel DRM driver
License: MIT
Group: Development/Tools/Other
URL: https://xorg.freedesktop.org/
Source0: http://xorg.freedesktop.org/releases/individual/app/igt-gpu-tools-%{version}.tar.xz
Source1: http://xorg.freedesktop.org/releases/individual/app/igt-gpu-tools-%{version}.tar.xz.sig
Patch0: u_%{name}-1.7-fix-bashisms.patch
Patch1: intel-gpu-tools-libproc2_libproc2_library.patch
Source0: https://xorg.freedesktop.org/releases/individual/app/igt-gpu-tools-%{version}.tar.xz
Source1: https://xorg.freedesktop.org/releases/individual/app/igt-gpu-tools-%{version}.tar.xz.sig
BuildRequires: bison
BuildRequires: fdupes
BuildRequires: flex
BuildRequires: meson
BuildRequires: peg
@ -54,6 +52,7 @@ BuildRequires: pkgconfig(xrandr)
BuildRequires: pkgconfig(xv)
# This was part of the xorg-x11-driver-video package up to version 7.6
Conflicts: xorg-x11-driver-video <= 7.6
Provides: igt-gpu-tools = %{version}
# Intel GPU is only available on x86 and x86-64
ExclusiveArch: %{ix86} x86_64
@ -70,30 +69,37 @@ Requires: %{name} = %{version}
Development files and library headers for %{name}
%prep
%setup -q -n igt-gpu-tools-%{version}
%patch0
#Only works with libproc2, not libprocps, despite description
%patch1 -p1
%autosetup -n igt-gpu-tools-%{version}
%build
#Tests fail on x86_64 with -z now
#https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/102
export SUSE_ZNOW=0
%meson
# Tests fail on x86_64 with -z now
# https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/102
%meson -Dc_link_args="-z lazy"
%meson_build
# build documentation
ninja -C %{_vpath_builddir} igt-gpu-tools-doc
%install
%meson_install
sed -i 's#/usr/bin/env python3#/usr/bin/python3#' %{buildroot}%{_bindir}/code_cov_gather_on_test
# fix env-script-interpreter
sed -i 's#/usr/bin/env python3#/usr/bin/python3#' \
%{buildroot}%{_bindir}/{code_cov_gather_on_test,intel-gfx-fw-info}
%fdupes %{buildroot}%{_libexecdir}
%check
%meson_test
%post -p /sbin/ldconfig
%if 0%{?suse_version} > 1500
%ldconfig_scriptlets
%else
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%endif
%files
%doc README.md
%doc NEWS README.md
%license COPYING
%{_bindir}/*
%{_libexecdir}/igt-gpu-tools/

View File

@ -1,10 +0,0 @@
Index: tools/intel_gpu_abrt
===================================================================
--- tools/intel_gpu_abrt.orig
+++ tools/intel_gpu_abrt
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
if [ $(id -ru) -ne 0 ]; then
echo "$0 must be run as root"