[igt-dev] [PATCH 00/76] Ensure that file descriptors will be closed on exit

Das, Nirmoy nirmoy.das at linux.intel.com
Fri Sep 30 12:38:19 UTC 2022


On 9/30/2022 2:34 PM, Das, Nirmoy wrote:
>
> Hi Mauro,
>
> Is there any reason we are avoid using |igt_fd_t for patches 27,26,22 ?|
>

|Ah never mind, just realized about igt_skip()|


|Nirmoy|

> |For i915 patches Reviewed-by:| Nirmoy Das<nirmoy.das at intel.com>
>
>
> Regards,
>
> Nirmoy
> ||
>
> On 9/26/2022 8:17 AM, Mauro Carvalho Chehab wrote:
>> From: Mauro Carvalho Chehab<mchehab at kernel.org>
>>
>> GCC is usually smart enough to close devices on exit, but that doesn't work
>> with the logic inside igt_skip(), as it uses longjmp, causing the code to
>> go out of scope. Such scoped variables must be tracked in an outer scope to
>> the skipping subtest.
>>
>> Change the logic on IGT tests in order to avoid keeping device opened at
>> the end of the test.
>>
>> Chris Wilson (76):
>>    lib: Introduce typed cleanups
>>    i915/gem_basic: Close device before exit
>>    i915/gem_flink_basic: Close device before exit
>>    i915/gem_linear_blits: Close device before exit
>>    i915/gem_blits: Close device before exit
>>    i915/gem_close: Close device before exit
>>    i915/gem_create: Close device before exit
>>    i915/gem_ctx_engines: Close device before exit
>>    i915/gem_ctx_shared: Close device before exit
>>    i915/gem_exec_alignment: Close device before exit
>>    i915/gem_render_copy: Close device before exit
>>    i915/gem_render_copy_redux: Close device before exit
>>    i915/gem_media_fill: Close device before exit
>>    i915/gem_userptr_blits: Close device before exit
>>    i915/gem_workarounds: Close device before exit
>>    i915/gem_unref_active_buffers: Close device before exit
>>    i915/gem_exec_endless: Close device before exit
>>    i915/gem_request_retire: Close device before exit
>>    i915/gem_unfence_active_buffers: Close device before exit
>>    i915/i915_pciid: Close device before exit
>>    kms_cursor_legacy: Close device before exit
>>    kms_flip: Close device before exit
>>    kms_pipe_crc_basic: Close device before exit
>>    kms_psr: Close device before exit
>>    kms_flip: Close device before exit
>>    kms_force_connector_basic: Close device before exit
>>    dumb_buffer: Close device before exit
>>    kms_atomic: Close device before exit
>>    kms_atomic_interruptible: Close device before exit
>>    kms_atomic_transition: Close device before exit
>>    i915/kms_big_fb: Close device before exit
>>    i915/kms_ccs: Close device before exit
>>    kms_color: Close device before exit
>>    kms_cursor_crc: Close device before exit
>>    i915/kms_big_joiner: Close device before exit
>>    i915/kms_cdclk: Close device before exit
>>    i915/kms_fence_pin_leak: Close device before exit
>>    i915/kms_flip_scaled_crc: Close device before exit
>>    i915/kms_flip_tiling: Close device before exit
>>    i915/kms_mmap_write_crc: Close device before exit
>>    i915/kms_pipe_b_c_ivb: Close device before exit
>>    i915/kms_psr2_sf: Close device before exit
>>    i915/kms_psr2_su: Close device before exit
>>    i915/kms_pwrite_crc: Close device before exit
>>    kms_flip_event_leak: Close device before exit
>>    kms_hdr: Close device before exit
>>    kms_invalid_mode: Close device before exit
>>    kms_panel_fitting: Close device before exit
>>    kms_plane: Close device before exit
>>    kms_plane_alpha_blend: Close device before exit
>>    kms_plane_cursor: Close device before exit
>>    kms_plane_multiple: Close device before exit
>>    kms_plane_scaling: Close device before exit
>>    kms_properties: Close device before exit
>>    kms_rotation_crc: Close device before exit
>>    kms_sequence: Close device before exit
>>    kms_universal_plane: Close device before exit
>>    kms_vblank: Close device before exit
>>    syncobj_wait: Close device before exit
>>    syncobj_basic: Close device before exit
>>    syncobj_timeline: Close device before exit
>>    drm_import_export: Close device before exit
>>    kms_dp_aux_dev: Close device before exit
>>    kms_hdmi_inject: Close device before exit
>>    kms_3d: Close device before exit
>>    kms_scaling_modes: Close device before exit
>>    kms_dither: Close device before exit
>>    drm_read: Close device before exit
>>    kms_cursor_edge_walk: Close device before exit
>>    kms_plane_lowres: Close device before exit
>>    kms_content_protection: Close device before exit
>>    feature_discovery: Close device before exit
>>    i915/i915_pm_dc: Close device before exit
>>    core_auth: Close(master) before exit
>>    i915/gem_exec_balancer: Close device before exit
>>    i915/gem_ctx_isolation: Close device before exit
>>
>>   lib/igt_core.c                          |   6 ++
>>   lib/igt_core.h                          |   2 +
>>   lib/igt_types.c                         |  17 +++
>>   lib/igt_types.h                         |  47 ++++++++
>>   lib/meson.build                         |   1 +
>>   lib/tests/bad_subtest_type.c            |  19 ++++
>>   lib/tests/igt_types.c                   | 136 ++++++++++++++++++++++++
>>   lib/tests/meson.build                   |   2 +
>>   tests/core_auth.c                       |   8 +-
>>   tests/drm_import_export.c               |   5 +
>>   tests/drm_read.c                        |   4 +-
>>   tests/dumb_buffer.c                     |   4 +
>>   tests/feature_discovery.c               |   5 +-
>>   tests/i915/gem_basic.c                  |   8 +-
>>   tests/i915/gem_blits.c                  |   1 +
>>   tests/i915/gem_close.c                  |   3 +-
>>   tests/i915/gem_create.c                 |   3 +-
>>   tests/i915/gem_ctx_engines.c            |   3 +-
>>   tests/i915/gem_ctx_isolation.c          |   3 +-
>>   tests/i915/gem_ctx_shared.c             |   3 +-
>>   tests/i915/gem_exec_alignment.c         |   3 +-
>>   tests/i915/gem_exec_balancer.c          |   3 +-
>>   tests/i915/gem_exec_endless.c           |   3 +-
>>   tests/i915/gem_flink_basic.c            |  11 +-
>>   tests/i915/gem_linear_blits.c           |   3 +-
>>   tests/i915/gem_media_fill.c             |   1 +
>>   tests/i915/gem_render_copy.c            |   1 +
>>   tests/i915/gem_render_copy_redux.c      |   4 +
>>   tests/i915/gem_request_retire.c         |   5 +-
>>   tests/i915/gem_unfence_active_buffers.c |   1 +
>>   tests/i915/gem_unref_active_buffers.c   |   1 +
>>   tests/i915/gem_userptr_blits.c          |   4 +-
>>   tests/i915/gem_workarounds.c            |   3 +-
>>   tests/i915/i915_pciid.c                 |   2 +
>>   tests/i915/i915_pm_dc.c                 |   1 +
>>   tests/i915/kms_big_fb.c                 |   1 +
>>   tests/i915/kms_big_joiner.c             |   1 +
>>   tests/i915/kms_busy.c                   |   1 +
>>   tests/i915/kms_ccs.c                    |   4 +-
>>   tests/i915/kms_cdclk.c                  |   1 +
>>   tests/i915/kms_fence_pin_leak.c         |   1 +
>>   tests/i915/kms_flip_scaled_crc.c        |   1 +
>>   tests/i915/kms_flip_tiling.c            |   1 +
>>   tests/i915/kms_mmap_write_crc.c         |   1 +
>>   tests/i915/kms_pipe_b_c_ivb.c           |   1 +
>>   tests/i915/kms_psr.c                    |   1 +
>>   tests/i915/kms_psr2_sf.c                |   1 +
>>   tests/i915/kms_psr2_su.c                |   1 +
>>   tests/i915/kms_pwrite_crc.c             |   1 +
>>   tests/kms_3d.c                          |   1 +
>>   tests/kms_atomic.c                      |   1 +
>>   tests/kms_atomic_interruptible.c        |   1 +
>>   tests/kms_atomic_transition.c           |   1 +
>>   tests/kms_color.c                       |   1 +
>>   tests/kms_content_protection.c          |   1 +
>>   tests/kms_cursor_crc.c                  |   1 +
>>   tests/kms_cursor_edge_walk.c            |   4 +-
>>   tests/kms_cursor_legacy.c               |   1 +
>>   tests/kms_dither.c                      |   1 +
>>   tests/kms_dp_aux_dev.c                  |   1 +
>>   tests/kms_flip.c                        |   3 +
>>   tests/kms_flip_event_leak.c             |   1 +
>>   tests/kms_force_connector_basic.c       |   7 +-
>>   tests/kms_hdmi_inject.c                 |   1 +
>>   tests/kms_hdr.c                         |   1 +
>>   tests/kms_invalid_mode.c                |   1 +
>>   tests/kms_panel_fitting.c               |   4 +-
>>   tests/kms_pipe_crc_basic.c              |   1 +
>>   tests/kms_plane.c                       |   1 +
>>   tests/kms_plane_alpha_blend.c           |   1 +
>>   tests/kms_plane_cursor.c                |   1 +
>>   tests/kms_plane_lowres.c                |   4 +-
>>   tests/kms_plane_multiple.c              |   4 +-
>>   tests/kms_plane_scaling.c               |   4 +-
>>   tests/kms_properties.c                  |   1 +
>>   tests/kms_rotation_crc.c                |   1 +
>>   tests/kms_scaling_modes.c               |   4 +-
>>   tests/kms_sequence.c                    |   4 +
>>   tests/kms_universal_plane.c             |   1 +
>>   tests/kms_vblank.c                      |   4 +
>>   tests/syncobj_basic.c                   |   4 +
>>   tests/syncobj_timeline.c                |   4 +
>>   tests/syncobj_wait.c                    |   4 +
>>   83 files changed, 385 insertions(+), 33 deletions(-)
>>   create mode 100644 lib/igt_types.c
>>   create mode 100644 lib/igt_types.h
>>   create mode 100644 lib/tests/bad_subtest_type.c
>>   create mode 100644 lib/tests/igt_types.c
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/igt-dev/attachments/20220930/2d3db376/attachment-0001.htm>


More information about the igt-dev mailing list