All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t] tooling: Add linux's .clang-format
@ 2022-07-26 19:01 Jim Shargo
  2022-07-27 10:52 ` Petri Latvala
  0 siblings, 1 reply; 15+ messages in thread
From: Jim Shargo @ 2022-07-26 19:01 UTC (permalink / raw)
  To: Development mailing list for IGT GPU Tools, Petri Latvala,
	Arkadiusz Hiler
  Cc: Jim Shargo

As I was authoring my first patchset for IGT, I found myself fighting
the tooling a bit to get everything right. I had to add a bunch of extra
command line args to use my linux checkout's formatting rules to get the
style right.

I grabbed this from a recent checkout of torvald's repo.

The commit I used was: e0dccc3b76fb35bb257b4118367a883073d7390e

I've also updated CONTRIBUTING.md with a link to git-clang-format, which
is a useful tool for using clang-format from git just on a commit's
changes.

Signed-off-by: Jim Shargo <jshargo@chromium.org>
---
 .clang-format   | 682 ++++++++++++++++++++++++++++++++++++++++++++++++
 CONTRIBUTING.md |   8 +-
 2 files changed, 687 insertions(+), 3 deletions(-)
 create mode 100644 .clang-format

diff --git a/.clang-format b/.clang-format
new file mode 100644
index 00000000..9b87ea1f
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,682 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# clang-format configuration file. Intended for clang-format >= 11.
+#
+# For more information, see:
+#
+#   Documentation/process/clang-format.rst
+#   https://clang.llvm.org/docs/ClangFormat.html
+#   https://clang.llvm.org/docs/ClangFormatStyleOptions.html
+#
+---
+AccessModifierOffset: -4
+AlignAfterOpenBracket: Align
+AlignConsecutiveAssignments: false
+AlignConsecutiveDeclarations: false
+AlignEscapedNewlines: Left
+AlignOperands: true
+AlignTrailingComments: false
+AllowAllParametersOfDeclarationOnNextLine: false
+AllowShortBlocksOnASingleLine: false
+AllowShortCaseLabelsOnASingleLine: false
+AllowShortFunctionsOnASingleLine: None
+AllowShortIfStatementsOnASingleLine: false
+AllowShortLoopsOnASingleLine: false
+AlwaysBreakAfterDefinitionReturnType: None
+AlwaysBreakAfterReturnType: None
+AlwaysBreakBeforeMultilineStrings: false
+AlwaysBreakTemplateDeclarations: false
+BinPackArguments: true
+BinPackParameters: true
+BraceWrapping:
+  AfterClass: false
+  AfterControlStatement: false
+  AfterEnum: false
+  AfterFunction: true
+  AfterNamespace: true
+  AfterObjCDeclaration: false
+  AfterStruct: false
+  AfterUnion: false
+  AfterExternBlock: false
+  BeforeCatch: false
+  BeforeElse: false
+  IndentBraces: false
+  SplitEmptyFunction: true
+  SplitEmptyRecord: true
+  SplitEmptyNamespace: true
+BreakBeforeBinaryOperators: None
+BreakBeforeBraces: Custom
+BreakBeforeInheritanceComma: false
+BreakBeforeTernaryOperators: false
+BreakConstructorInitializersBeforeComma: false
+BreakConstructorInitializers: BeforeComma
+BreakAfterJavaFieldAnnotations: false
+BreakStringLiterals: false
+ColumnLimit: 80
+CommentPragmas: '^ IWYU pragma:'
+CompactNamespaces: false
+ConstructorInitializerAllOnOneLineOrOnePerLine: false
+ConstructorInitializerIndentWidth: 8
+ContinuationIndentWidth: 8
+Cpp11BracedListStyle: false
+DerivePointerAlignment: false
+DisableFormat: false
+ExperimentalAutoDetectBinPacking: false
+FixNamespaceComments: false
+
+# Taken from:
+#   git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ tools/ \
+#   | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$,  - '\1'," \
+#   | LC_ALL=C sort -u
+ForEachMacros:
+  - '__ata_qc_for_each'
+  - '__bio_for_each_bvec'
+  - '__bio_for_each_segment'
+  - '__evlist__for_each_entry'
+  - '__evlist__for_each_entry_continue'
+  - '__evlist__for_each_entry_from'
+  - '__evlist__for_each_entry_reverse'
+  - '__evlist__for_each_entry_safe'
+  - '__for_each_mem_range'
+  - '__for_each_mem_range_rev'
+  - '__for_each_thread'
+  - '__hlist_for_each_rcu'
+  - '__map__for_each_symbol_by_name'
+  - '__perf_evlist__for_each_entry'
+  - '__perf_evlist__for_each_entry_reverse'
+  - '__perf_evlist__for_each_entry_safe'
+  - '__rq_for_each_bio'
+  - '__shost_for_each_device'
+  - 'apei_estatus_for_each_section'
+  - 'ata_for_each_dev'
+  - 'ata_for_each_link'
+  - 'ata_qc_for_each'
+  - 'ata_qc_for_each_raw'
+  - 'ata_qc_for_each_with_internal'
+  - 'ax25_for_each'
+  - 'ax25_uid_for_each'
+  - 'bio_for_each_bvec'
+  - 'bio_for_each_bvec_all'
+  - 'bio_for_each_folio_all'
+  - 'bio_for_each_integrity_vec'
+  - 'bio_for_each_segment'
+  - 'bio_for_each_segment_all'
+  - 'bio_list_for_each'
+  - 'bip_for_each_vec'
+  - 'bond_for_each_slave'
+  - 'bond_for_each_slave_rcu'
+  - 'bpf__perf_for_each_map'
+  - 'bpf__perf_for_each_map_named'
+  - 'bpf_for_each_spilled_reg'
+  - 'bpf_object__for_each_map'
+  - 'bpf_object__for_each_program'
+  - 'bpf_object__for_each_safe'
+  - 'bpf_perf_object__for_each'
+  - 'btree_for_each_safe128'
+  - 'btree_for_each_safe32'
+  - 'btree_for_each_safe64'
+  - 'btree_for_each_safel'
+  - 'card_for_each_dev'
+  - 'cgroup_taskset_for_each'
+  - 'cgroup_taskset_for_each_leader'
+  - 'cpufreq_for_each_efficient_entry_idx'
+  - 'cpufreq_for_each_entry'
+  - 'cpufreq_for_each_entry_idx'
+  - 'cpufreq_for_each_valid_entry'
+  - 'cpufreq_for_each_valid_entry_idx'
+  - 'css_for_each_child'
+  - 'css_for_each_descendant_post'
+  - 'css_for_each_descendant_pre'
+  - 'damon_for_each_region'
+  - 'damon_for_each_region_safe'
+  - 'damon_for_each_scheme'
+  - 'damon_for_each_scheme_safe'
+  - 'damon_for_each_target'
+  - 'damon_for_each_target_safe'
+  - 'data__for_each_file'
+  - 'data__for_each_file_new'
+  - 'data__for_each_file_start'
+  - 'device_for_each_child_node'
+  - 'displayid_iter_for_each'
+  - 'dma_fence_array_for_each'
+  - 'dma_fence_chain_for_each'
+  - 'dma_fence_unwrap_for_each'
+  - 'dma_resv_for_each_fence'
+  - 'dma_resv_for_each_fence_unlocked'
+  - 'do_for_each_ftrace_op'
+  - 'drm_atomic_crtc_for_each_plane'
+  - 'drm_atomic_crtc_state_for_each_plane'
+  - 'drm_atomic_crtc_state_for_each_plane_state'
+  - 'drm_atomic_for_each_plane_damage'
+  - 'drm_client_for_each_connector_iter'
+  - 'drm_client_for_each_modeset'
+  - 'drm_connector_for_each_possible_encoder'
+  - 'drm_for_each_bridge_in_chain'
+  - 'drm_for_each_connector_iter'
+  - 'drm_for_each_crtc'
+  - 'drm_for_each_crtc_reverse'
+  - 'drm_for_each_encoder'
+  - 'drm_for_each_encoder_mask'
+  - 'drm_for_each_fb'
+  - 'drm_for_each_legacy_plane'
+  - 'drm_for_each_plane'
+  - 'drm_for_each_plane_mask'
+  - 'drm_for_each_privobj'
+  - 'drm_mm_for_each_hole'
+  - 'drm_mm_for_each_node'
+  - 'drm_mm_for_each_node_in_range'
+  - 'drm_mm_for_each_node_safe'
+  - 'dsa_switch_for_each_available_port'
+  - 'dsa_switch_for_each_cpu_port'
+  - 'dsa_switch_for_each_port'
+  - 'dsa_switch_for_each_port_continue_reverse'
+  - 'dsa_switch_for_each_port_safe'
+  - 'dsa_switch_for_each_user_port'
+  - 'dsa_tree_for_each_user_port'
+  - 'dso__for_each_symbol'
+  - 'dsos__for_each_with_build_id'
+  - 'elf_hash_for_each_possible'
+  - 'elf_section__for_each_rel'
+  - 'elf_section__for_each_rela'
+  - 'elf_symtab__for_each_symbol'
+  - 'evlist__for_each_cpu'
+  - 'evlist__for_each_entry'
+  - 'evlist__for_each_entry_continue'
+  - 'evlist__for_each_entry_from'
+  - 'evlist__for_each_entry_reverse'
+  - 'evlist__for_each_entry_safe'
+  - 'flow_action_for_each'
+  - 'for_each_acpi_dev_match'
+  - 'for_each_active_dev_scope'
+  - 'for_each_active_drhd_unit'
+  - 'for_each_active_iommu'
+  - 'for_each_aggr_pgid'
+  - 'for_each_available_child_of_node'
+  - 'for_each_bench'
+  - 'for_each_bio'
+  - 'for_each_board_func_rsrc'
+  - 'for_each_btf_ext_rec'
+  - 'for_each_btf_ext_sec'
+  - 'for_each_bvec'
+  - 'for_each_card_auxs'
+  - 'for_each_card_auxs_safe'
+  - 'for_each_card_components'
+  - 'for_each_card_dapms'
+  - 'for_each_card_pre_auxs'
+  - 'for_each_card_prelinks'
+  - 'for_each_card_rtds'
+  - 'for_each_card_rtds_safe'
+  - 'for_each_card_widgets'
+  - 'for_each_card_widgets_safe'
+  - 'for_each_cgroup_storage_type'
+  - 'for_each_child_of_node'
+  - 'for_each_clear_bit'
+  - 'for_each_clear_bit_from'
+  - 'for_each_clear_bitrange'
+  - 'for_each_clear_bitrange_from'
+  - 'for_each_cmd'
+  - 'for_each_cmsghdr'
+  - 'for_each_collection'
+  - 'for_each_comp_order'
+  - 'for_each_compatible_node'
+  - 'for_each_component_dais'
+  - 'for_each_component_dais_safe'
+  - 'for_each_console'
+  - 'for_each_cpu'
+  - 'for_each_cpu_and'
+  - 'for_each_cpu_not'
+  - 'for_each_cpu_wrap'
+  - 'for_each_dapm_widgets'
+  - 'for_each_dedup_cand'
+  - 'for_each_dev_addr'
+  - 'for_each_dev_scope'
+  - 'for_each_dma_cap_mask'
+  - 'for_each_dpcm_be'
+  - 'for_each_dpcm_be_rollback'
+  - 'for_each_dpcm_be_safe'
+  - 'for_each_dpcm_fe'
+  - 'for_each_drhd_unit'
+  - 'for_each_dss_dev'
+  - 'for_each_efi_memory_desc'
+  - 'for_each_efi_memory_desc_in_map'
+  - 'for_each_element'
+  - 'for_each_element_extid'
+  - 'for_each_element_id'
+  - 'for_each_endpoint_of_node'
+  - 'for_each_event'
+  - 'for_each_event_tps'
+  - 'for_each_evictable_lru'
+  - 'for_each_fib6_node_rt_rcu'
+  - 'for_each_fib6_walker_rt'
+  - 'for_each_free_mem_pfn_range_in_zone'
+  - 'for_each_free_mem_pfn_range_in_zone_from'
+  - 'for_each_free_mem_range'
+  - 'for_each_free_mem_range_reverse'
+  - 'for_each_func_rsrc'
+  - 'for_each_group_evsel'
+  - 'for_each_group_member'
+  - 'for_each_hstate'
+  - 'for_each_if'
+  - 'for_each_inject_fn'
+  - 'for_each_insn'
+  - 'for_each_insn_prefix'
+  - 'for_each_intid'
+  - 'for_each_iommu'
+  - 'for_each_ip_tunnel_rcu'
+  - 'for_each_irq_nr'
+  - 'for_each_lang'
+  - 'for_each_link_codecs'
+  - 'for_each_link_cpus'
+  - 'for_each_link_platforms'
+  - 'for_each_lru'
+  - 'for_each_matching_node'
+  - 'for_each_matching_node_and_match'
+  - 'for_each_mem_pfn_range'
+  - 'for_each_mem_range'
+  - 'for_each_mem_range_rev'
+  - 'for_each_mem_region'
+  - 'for_each_member'
+  - 'for_each_memory'
+  - 'for_each_migratetype_order'
+  - 'for_each_missing_reg'
+  - 'for_each_net'
+  - 'for_each_net_continue_reverse'
+  - 'for_each_net_rcu'
+  - 'for_each_netdev'
+  - 'for_each_netdev_continue'
+  - 'for_each_netdev_continue_rcu'
+  - 'for_each_netdev_continue_reverse'
+  - 'for_each_netdev_feature'
+  - 'for_each_netdev_in_bond_rcu'
+  - 'for_each_netdev_rcu'
+  - 'for_each_netdev_reverse'
+  - 'for_each_netdev_safe'
+  - 'for_each_new_connector_in_state'
+  - 'for_each_new_crtc_in_state'
+  - 'for_each_new_mst_mgr_in_state'
+  - 'for_each_new_plane_in_state'
+  - 'for_each_new_plane_in_state_reverse'
+  - 'for_each_new_private_obj_in_state'
+  - 'for_each_new_reg'
+  - 'for_each_node'
+  - 'for_each_node_by_name'
+  - 'for_each_node_by_type'
+  - 'for_each_node_mask'
+  - 'for_each_node_state'
+  - 'for_each_node_with_cpus'
+  - 'for_each_node_with_property'
+  - 'for_each_nonreserved_multicast_dest_pgid'
+  - 'for_each_of_allnodes'
+  - 'for_each_of_allnodes_from'
+  - 'for_each_of_cpu_node'
+  - 'for_each_of_pci_range'
+  - 'for_each_old_connector_in_state'
+  - 'for_each_old_crtc_in_state'
+  - 'for_each_old_mst_mgr_in_state'
+  - 'for_each_old_plane_in_state'
+  - 'for_each_old_private_obj_in_state'
+  - 'for_each_oldnew_connector_in_state'
+  - 'for_each_oldnew_crtc_in_state'
+  - 'for_each_oldnew_mst_mgr_in_state'
+  - 'for_each_oldnew_plane_in_state'
+  - 'for_each_oldnew_plane_in_state_reverse'
+  - 'for_each_oldnew_private_obj_in_state'
+  - 'for_each_online_cpu'
+  - 'for_each_online_node'
+  - 'for_each_online_pgdat'
+  - 'for_each_path'
+  - 'for_each_pci_bridge'
+  - 'for_each_pci_dev'
+  - 'for_each_pcm_streams'
+  - 'for_each_physmem_range'
+  - 'for_each_populated_zone'
+  - 'for_each_possible_cpu'
+  - 'for_each_present_cpu'
+  - 'for_each_prime_number'
+  - 'for_each_prime_number_from'
+  - 'for_each_probe_cache_entry'
+  - 'for_each_process'
+  - 'for_each_process_thread'
+  - 'for_each_prop_codec_conf'
+  - 'for_each_prop_dai_codec'
+  - 'for_each_prop_dai_cpu'
+  - 'for_each_prop_dlc_codecs'
+  - 'for_each_prop_dlc_cpus'
+  - 'for_each_prop_dlc_platforms'
+  - 'for_each_property_of_node'
+  - 'for_each_reg'
+  - 'for_each_reg_filtered'
+  - 'for_each_registered_fb'
+  - 'for_each_requested_gpio'
+  - 'for_each_requested_gpio_in_range'
+  - 'for_each_reserved_mem_range'
+  - 'for_each_reserved_mem_region'
+  - 'for_each_rtd_codec_dais'
+  - 'for_each_rtd_components'
+  - 'for_each_rtd_cpu_dais'
+  - 'for_each_rtd_dais'
+  - 'for_each_script'
+  - 'for_each_sec'
+  - 'for_each_set_bit'
+  - 'for_each_set_bit_from'
+  - 'for_each_set_bitrange'
+  - 'for_each_set_bitrange_from'
+  - 'for_each_set_clump8'
+  - 'for_each_sg'
+  - 'for_each_sg_dma_page'
+  - 'for_each_sg_page'
+  - 'for_each_sgtable_dma_page'
+  - 'for_each_sgtable_dma_sg'
+  - 'for_each_sgtable_page'
+  - 'for_each_sgtable_sg'
+  - 'for_each_shell_test'
+  - 'for_each_sibling_event'
+  - 'for_each_subelement'
+  - 'for_each_subelement_extid'
+  - 'for_each_subelement_id'
+  - 'for_each_sublist'
+  - 'for_each_subsystem'
+  - 'for_each_supported_activate_fn'
+  - 'for_each_supported_inject_fn'
+  - 'for_each_test'
+  - 'for_each_thread'
+  - 'for_each_token'
+  - 'for_each_unicast_dest_pgid'
+  - 'for_each_vsi'
+  - 'for_each_wakeup_source'
+  - 'for_each_zone'
+  - 'for_each_zone_zonelist'
+  - 'for_each_zone_zonelist_nodemask'
+  - 'func_for_each_insn'
+  - 'fwnode_for_each_available_child_node'
+  - 'fwnode_for_each_child_node'
+  - 'fwnode_graph_for_each_endpoint'
+  - 'gadget_for_each_ep'
+  - 'genradix_for_each'
+  - 'genradix_for_each_from'
+  - 'hash_for_each'
+  - 'hash_for_each_possible'
+  - 'hash_for_each_possible_rcu'
+  - 'hash_for_each_possible_rcu_notrace'
+  - 'hash_for_each_possible_safe'
+  - 'hash_for_each_rcu'
+  - 'hash_for_each_safe'
+  - 'hashmap__for_each_entry'
+  - 'hashmap__for_each_entry_safe'
+  - 'hashmap__for_each_key_entry'
+  - 'hashmap__for_each_key_entry_safe'
+  - 'hctx_for_each_ctx'
+  - 'hists__for_each_format'
+  - 'hists__for_each_sort_list'
+  - 'hlist_bl_for_each_entry'
+  - 'hlist_bl_for_each_entry_rcu'
+  - 'hlist_bl_for_each_entry_safe'
+  - 'hlist_for_each'
+  - 'hlist_for_each_entry'
+  - 'hlist_for_each_entry_continue'
+  - 'hlist_for_each_entry_continue_rcu'
+  - 'hlist_for_each_entry_continue_rcu_bh'
+  - 'hlist_for_each_entry_from'
+  - 'hlist_for_each_entry_from_rcu'
+  - 'hlist_for_each_entry_rcu'
+  - 'hlist_for_each_entry_rcu_bh'
+  - 'hlist_for_each_entry_rcu_notrace'
+  - 'hlist_for_each_entry_safe'
+  - 'hlist_for_each_entry_srcu'
+  - 'hlist_for_each_safe'
+  - 'hlist_nulls_for_each_entry'
+  - 'hlist_nulls_for_each_entry_from'
+  - 'hlist_nulls_for_each_entry_rcu'
+  - 'hlist_nulls_for_each_entry_safe'
+  - 'i3c_bus_for_each_i2cdev'
+  - 'i3c_bus_for_each_i3cdev'
+  - 'idr_for_each_entry'
+  - 'idr_for_each_entry_continue'
+  - 'idr_for_each_entry_continue_ul'
+  - 'idr_for_each_entry_ul'
+  - 'in_dev_for_each_ifa_rcu'
+  - 'in_dev_for_each_ifa_rtnl'
+  - 'inet_bind_bucket_for_each'
+  - 'inet_lhash2_for_each_icsk'
+  - 'inet_lhash2_for_each_icsk_continue'
+  - 'inet_lhash2_for_each_icsk_rcu'
+  - 'intlist__for_each_entry'
+  - 'intlist__for_each_entry_safe'
+  - 'kcore_copy__for_each_phdr'
+  - 'key_for_each'
+  - 'key_for_each_safe'
+  - 'klp_for_each_func'
+  - 'klp_for_each_func_safe'
+  - 'klp_for_each_func_static'
+  - 'klp_for_each_object'
+  - 'klp_for_each_object_safe'
+  - 'klp_for_each_object_static'
+  - 'kunit_suite_for_each_test_case'
+  - 'kvm_for_each_memslot'
+  - 'kvm_for_each_memslot_in_gfn_range'
+  - 'kvm_for_each_vcpu'
+  - 'libbpf_nla_for_each_attr'
+  - 'list_for_each'
+  - 'list_for_each_codec'
+  - 'list_for_each_codec_safe'
+  - 'list_for_each_continue'
+  - 'list_for_each_entry'
+  - 'list_for_each_entry_continue'
+  - 'list_for_each_entry_continue_rcu'
+  - 'list_for_each_entry_continue_reverse'
+  - 'list_for_each_entry_from'
+  - 'list_for_each_entry_from_rcu'
+  - 'list_for_each_entry_from_reverse'
+  - 'list_for_each_entry_lockless'
+  - 'list_for_each_entry_rcu'
+  - 'list_for_each_entry_reverse'
+  - 'list_for_each_entry_safe'
+  - 'list_for_each_entry_safe_continue'
+  - 'list_for_each_entry_safe_from'
+  - 'list_for_each_entry_safe_reverse'
+  - 'list_for_each_entry_srcu'
+  - 'list_for_each_from'
+  - 'list_for_each_prev'
+  - 'list_for_each_prev_safe'
+  - 'list_for_each_safe'
+  - 'llist_for_each'
+  - 'llist_for_each_entry'
+  - 'llist_for_each_entry_safe'
+  - 'llist_for_each_safe'
+  - 'map__for_each_symbol'
+  - 'map__for_each_symbol_by_name'
+  - 'map_for_each_event'
+  - 'map_for_each_metric'
+  - 'maps__for_each_entry'
+  - 'maps__for_each_entry_safe'
+  - 'mci_for_each_dimm'
+  - 'media_device_for_each_entity'
+  - 'media_device_for_each_intf'
+  - 'media_device_for_each_link'
+  - 'media_device_for_each_pad'
+  - 'msi_for_each_desc'
+  - 'nanddev_io_for_each_page'
+  - 'netdev_for_each_lower_dev'
+  - 'netdev_for_each_lower_private'
+  - 'netdev_for_each_lower_private_rcu'
+  - 'netdev_for_each_mc_addr'
+  - 'netdev_for_each_uc_addr'
+  - 'netdev_for_each_upper_dev_rcu'
+  - 'netdev_hw_addr_list_for_each'
+  - 'nft_rule_for_each_expr'
+  - 'nla_for_each_attr'
+  - 'nla_for_each_nested'
+  - 'nlmsg_for_each_attr'
+  - 'nlmsg_for_each_msg'
+  - 'nr_neigh_for_each'
+  - 'nr_neigh_for_each_safe'
+  - 'nr_node_for_each'
+  - 'nr_node_for_each_safe'
+  - 'of_for_each_phandle'
+  - 'of_property_for_each_string'
+  - 'of_property_for_each_u32'
+  - 'pci_bus_for_each_resource'
+  - 'pcl_for_each_chunk'
+  - 'pcl_for_each_segment'
+  - 'pcm_for_each_format'
+  - 'perf_config_items__for_each_entry'
+  - 'perf_config_sections__for_each_entry'
+  - 'perf_config_set__for_each_entry'
+  - 'perf_cpu_map__for_each_cpu'
+  - 'perf_evlist__for_each_entry'
+  - 'perf_evlist__for_each_entry_reverse'
+  - 'perf_evlist__for_each_entry_safe'
+  - 'perf_evlist__for_each_evsel'
+  - 'perf_evlist__for_each_mmap'
+  - 'perf_hpp_list__for_each_format'
+  - 'perf_hpp_list__for_each_format_safe'
+  - 'perf_hpp_list__for_each_sort_list'
+  - 'perf_hpp_list__for_each_sort_list_safe'
+  - 'perf_pmu__for_each_hybrid_pmu'
+  - 'ping_portaddr_for_each_entry'
+  - 'plist_for_each'
+  - 'plist_for_each_continue'
+  - 'plist_for_each_entry'
+  - 'plist_for_each_entry_continue'
+  - 'plist_for_each_entry_safe'
+  - 'plist_for_each_safe'
+  - 'pnp_for_each_card'
+  - 'pnp_for_each_dev'
+  - 'protocol_for_each_card'
+  - 'protocol_for_each_dev'
+  - 'queue_for_each_hw_ctx'
+  - 'radix_tree_for_each_slot'
+  - 'radix_tree_for_each_tagged'
+  - 'rb_for_each'
+  - 'rbtree_postorder_for_each_entry_safe'
+  - 'rdma_for_each_block'
+  - 'rdma_for_each_port'
+  - 'rdma_umem_for_each_dma_block'
+  - 'resort_rb__for_each_entry'
+  - 'resource_list_for_each_entry'
+  - 'resource_list_for_each_entry_safe'
+  - 'rhl_for_each_entry_rcu'
+  - 'rhl_for_each_rcu'
+  - 'rht_for_each'
+  - 'rht_for_each_entry'
+  - 'rht_for_each_entry_from'
+  - 'rht_for_each_entry_rcu'
+  - 'rht_for_each_entry_rcu_from'
+  - 'rht_for_each_entry_safe'
+  - 'rht_for_each_from'
+  - 'rht_for_each_rcu'
+  - 'rht_for_each_rcu_from'
+  - 'rq_for_each_bvec'
+  - 'rq_for_each_segment'
+  - 'rq_list_for_each'
+  - 'rq_list_for_each_safe'
+  - 'scsi_for_each_prot_sg'
+  - 'scsi_for_each_sg'
+  - 'sctp_for_each_hentry'
+  - 'sctp_skb_for_each'
+  - 'sec_for_each_insn'
+  - 'sec_for_each_insn_continue'
+  - 'sec_for_each_insn_from'
+  - 'shdma_for_each_chan'
+  - 'shost_for_each_device'
+  - 'sk_for_each'
+  - 'sk_for_each_bound'
+  - 'sk_for_each_entry_offset_rcu'
+  - 'sk_for_each_from'
+  - 'sk_for_each_rcu'
+  - 'sk_for_each_safe'
+  - 'sk_nulls_for_each'
+  - 'sk_nulls_for_each_from'
+  - 'sk_nulls_for_each_rcu'
+  - 'snd_array_for_each'
+  - 'snd_pcm_group_for_each_entry'
+  - 'snd_soc_dapm_widget_for_each_path'
+  - 'snd_soc_dapm_widget_for_each_path_safe'
+  - 'snd_soc_dapm_widget_for_each_sink_path'
+  - 'snd_soc_dapm_widget_for_each_source_path'
+  - 'strlist__for_each_entry'
+  - 'strlist__for_each_entry_safe'
+  - 'sym_for_each_insn'
+  - 'sym_for_each_insn_continue_reverse'
+  - 'symbols__for_each_entry'
+  - 'tb_property_for_each'
+  - 'tcf_act_for_each_action'
+  - 'tcf_exts_for_each_action'
+  - 'udp_portaddr_for_each_entry'
+  - 'udp_portaddr_for_each_entry_rcu'
+  - 'usb_hub_for_each_child'
+  - 'v4l2_device_for_each_subdev'
+  - 'v4l2_m2m_for_each_dst_buf'
+  - 'v4l2_m2m_for_each_dst_buf_safe'
+  - 'v4l2_m2m_for_each_src_buf'
+  - 'v4l2_m2m_for_each_src_buf_safe'
+  - 'virtio_device_for_each_vq'
+  - 'while_for_each_ftrace_op'
+  - 'xa_for_each'
+  - 'xa_for_each_marked'
+  - 'xa_for_each_range'
+  - 'xa_for_each_start'
+  - 'xas_for_each'
+  - 'xas_for_each_conflict'
+  - 'xas_for_each_marked'
+  - 'xbc_array_for_each_value'
+  - 'xbc_for_each_key_value'
+  - 'xbc_node_for_each_array_value'
+  - 'xbc_node_for_each_child'
+  - 'xbc_node_for_each_key_value'
+  - 'xbc_node_for_each_subkey'
+  - 'zorro_for_each_dev'
+
+IncludeBlocks: Preserve
+IncludeCategories:
+  - Regex: '.*'
+    Priority: 1
+IncludeIsMainRegex: '(Test)?$'
+IndentCaseLabels: false
+IndentGotoLabels: false
+IndentPPDirectives: None
+IndentWidth: 8
+IndentWrappedFunctionNames: false
+JavaScriptQuotes: Leave
+JavaScriptWrapImports: true
+KeepEmptyLinesAtTheStartOfBlocks: false
+MacroBlockBegin: ''
+MacroBlockEnd: ''
+MaxEmptyLinesToKeep: 1
+NamespaceIndentation: None
+ObjCBinPackProtocolList: Auto
+ObjCBlockIndentWidth: 8
+ObjCSpaceAfterProperty: true
+ObjCSpaceBeforeProtocolList: true
+
+# Taken from git's rules
+PenaltyBreakAssignment: 10
+PenaltyBreakBeforeFirstCallParameter: 30
+PenaltyBreakComment: 10
+PenaltyBreakFirstLessLess: 0
+PenaltyBreakString: 10
+PenaltyExcessCharacter: 100
+PenaltyReturnTypeOnItsOwnLine: 60
+
+PointerAlignment: Right
+ReflowComments: false
+SortIncludes: false
+SortUsingDeclarations: false
+SpaceAfterCStyleCast: false
+SpaceAfterTemplateKeyword: true
+SpaceBeforeAssignmentOperators: true
+SpaceBeforeCtorInitializerColon: true
+SpaceBeforeInheritanceColon: true
+SpaceBeforeParens: ControlStatementsExceptForEachMacros
+SpaceBeforeRangeBasedForLoopColon: true
+SpaceInEmptyParentheses: false
+SpacesBeforeTrailingComments: 1
+SpacesInAngles: false
+SpacesInContainerLiterals: false
+SpacesInCStyleCastParentheses: false
+SpacesInParentheses: false
+SpacesInSquareBrackets: false
+Standard: Cpp03
+TabWidth: 8
+UseTab: Always
+...
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6d1294ad..8d7320b7 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -10,8 +10,9 @@ improvements for documentation and new tools and testcases.
 The Code
 --------
 
-- The code should follow kernel coding style:
-  https://www.kernel.org/doc/html/latest/process/coding-style.html
+- The code should follow [kernel coding style](coding-style). Before
+  sending out a patch, changes can be formatted with
+  [git-clang-format](git-clang-format).
 
 - Testcases (subtests) have to use minus signs (-) as a word separator.
   The generated documentation contains glossary of commonly used terms.
@@ -30,9 +31,10 @@ The Code
   provided by the igt library. The semantic patch lib/igt.cocci can help with
   more automatic conversions.
 
+[coding-style]: https://www.kernel.org/doc/html/latest/process/coding-style.html
+[git-clang-format]: https://github.com/llvm-mirror/clang/blob/master/tools/clang-format/git-clang-format
 [igt-describe]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
 
-
 Sending Patches
 ---------------
 
-- 
2.37.1.359.gd136c6c3e2-goog

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] tooling: Add linux's .clang-format
  2022-07-26 19:01 [igt-dev] [PATCH i-g-t] tooling: Add linux's .clang-format Jim Shargo
@ 2022-07-27 10:52 ` Petri Latvala
  2022-07-27 20:10   ` Jim Shargo
                     ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Petri Latvala @ 2022-07-27 10:52 UTC (permalink / raw)
  To: Jim Shargo; +Cc: Development mailing list for IGT GPU Tools

On Tue, Jul 26, 2022 at 03:01:00PM -0400, Jim Shargo wrote:
> As I was authoring my first patchset for IGT, I found myself fighting
> the tooling a bit to get everything right. I had to add a bunch of extra
> command line args to use my linux checkout's formatting rules to get the
> style right.
> 
> I grabbed this from a recent checkout of torvald's repo.
> 
> The commit I used was: e0dccc3b76fb35bb257b4118367a883073d7390e
> 
> I've also updated CONTRIBUTING.md with a link to git-clang-format, which
> is a useful tool for using clang-format from git just on a commit's
> changes.
> 
> Signed-off-by: Jim Shargo <jshargo@chromium.org>



I tried to get a clang-format configuration together myself some years
ago and absolutely failed. This is getting closer to being useful!

Some incorrectness I found:

/*
* multiline comments are indented
* weirdly. Or rather aligned weirdly.
*/

igt_subtest_group, igt_subtest, igt_until_timeout blocks have their {
incorrectly placed, should be on the same line like with for loops,
instead of on their own line.

Since you're adding pointers to the tooling in CONTRIBUTING (thanks
for that!) can you also add a note about the .editorconfig file? I
suspect many new people haven't even realized it's there...


-- 
Petri Latvala


> ---
>  .clang-format   | 682 ++++++++++++++++++++++++++++++++++++++++++++++++
>  CONTRIBUTING.md |   8 +-
>  2 files changed, 687 insertions(+), 3 deletions(-)
>  create mode 100644 .clang-format
> 
> diff --git a/.clang-format b/.clang-format
> new file mode 100644
> index 00000000..9b87ea1f
> --- /dev/null
> +++ b/.clang-format
> @@ -0,0 +1,682 @@
> +# SPDX-License-Identifier: GPL-2.0
> +#
> +# clang-format configuration file. Intended for clang-format >= 11.
> +#
> +# For more information, see:
> +#
> +#   Documentation/process/clang-format.rst
> +#   https://clang.llvm.org/docs/ClangFormat.html
> +#   https://clang.llvm.org/docs/ClangFormatStyleOptions.html
> +#
> +---
> +AccessModifierOffset: -4
> +AlignAfterOpenBracket: Align
> +AlignConsecutiveAssignments: false
> +AlignConsecutiveDeclarations: false
> +AlignEscapedNewlines: Left
> +AlignOperands: true
> +AlignTrailingComments: false
> +AllowAllParametersOfDeclarationOnNextLine: false
> +AllowShortBlocksOnASingleLine: false
> +AllowShortCaseLabelsOnASingleLine: false
> +AllowShortFunctionsOnASingleLine: None
> +AllowShortIfStatementsOnASingleLine: false
> +AllowShortLoopsOnASingleLine: false
> +AlwaysBreakAfterDefinitionReturnType: None
> +AlwaysBreakAfterReturnType: None
> +AlwaysBreakBeforeMultilineStrings: false
> +AlwaysBreakTemplateDeclarations: false
> +BinPackArguments: true
> +BinPackParameters: true
> +BraceWrapping:
> +  AfterClass: false
> +  AfterControlStatement: false
> +  AfterEnum: false
> +  AfterFunction: true
> +  AfterNamespace: true
> +  AfterObjCDeclaration: false
> +  AfterStruct: false
> +  AfterUnion: false
> +  AfterExternBlock: false
> +  BeforeCatch: false
> +  BeforeElse: false
> +  IndentBraces: false
> +  SplitEmptyFunction: true
> +  SplitEmptyRecord: true
> +  SplitEmptyNamespace: true
> +BreakBeforeBinaryOperators: None
> +BreakBeforeBraces: Custom
> +BreakBeforeInheritanceComma: false
> +BreakBeforeTernaryOperators: false
> +BreakConstructorInitializersBeforeComma: false
> +BreakConstructorInitializers: BeforeComma
> +BreakAfterJavaFieldAnnotations: false
> +BreakStringLiterals: false
> +ColumnLimit: 80
> +CommentPragmas: '^ IWYU pragma:'
> +CompactNamespaces: false
> +ConstructorInitializerAllOnOneLineOrOnePerLine: false
> +ConstructorInitializerIndentWidth: 8
> +ContinuationIndentWidth: 8
> +Cpp11BracedListStyle: false
> +DerivePointerAlignment: false
> +DisableFormat: false
> +ExperimentalAutoDetectBinPacking: false
> +FixNamespaceComments: false
> +
> +# Taken from:
> +#   git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ tools/ \
> +#   | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$,  - '\1'," \
> +#   | LC_ALL=C sort -u
> +ForEachMacros:
> +  - '__ata_qc_for_each'
> +  - '__bio_for_each_bvec'
> +  - '__bio_for_each_segment'
> +  - '__evlist__for_each_entry'
> +  - '__evlist__for_each_entry_continue'
> +  - '__evlist__for_each_entry_from'
> +  - '__evlist__for_each_entry_reverse'
> +  - '__evlist__for_each_entry_safe'
> +  - '__for_each_mem_range'
> +  - '__for_each_mem_range_rev'
> +  - '__for_each_thread'
> +  - '__hlist_for_each_rcu'
> +  - '__map__for_each_symbol_by_name'
> +  - '__perf_evlist__for_each_entry'
> +  - '__perf_evlist__for_each_entry_reverse'
> +  - '__perf_evlist__for_each_entry_safe'
> +  - '__rq_for_each_bio'
> +  - '__shost_for_each_device'
> +  - 'apei_estatus_for_each_section'
> +  - 'ata_for_each_dev'
> +  - 'ata_for_each_link'
> +  - 'ata_qc_for_each'
> +  - 'ata_qc_for_each_raw'
> +  - 'ata_qc_for_each_with_internal'
> +  - 'ax25_for_each'
> +  - 'ax25_uid_for_each'
> +  - 'bio_for_each_bvec'
> +  - 'bio_for_each_bvec_all'
> +  - 'bio_for_each_folio_all'
> +  - 'bio_for_each_integrity_vec'
> +  - 'bio_for_each_segment'
> +  - 'bio_for_each_segment_all'
> +  - 'bio_list_for_each'
> +  - 'bip_for_each_vec'
> +  - 'bond_for_each_slave'
> +  - 'bond_for_each_slave_rcu'
> +  - 'bpf__perf_for_each_map'
> +  - 'bpf__perf_for_each_map_named'
> +  - 'bpf_for_each_spilled_reg'
> +  - 'bpf_object__for_each_map'
> +  - 'bpf_object__for_each_program'
> +  - 'bpf_object__for_each_safe'
> +  - 'bpf_perf_object__for_each'
> +  - 'btree_for_each_safe128'
> +  - 'btree_for_each_safe32'
> +  - 'btree_for_each_safe64'
> +  - 'btree_for_each_safel'
> +  - 'card_for_each_dev'
> +  - 'cgroup_taskset_for_each'
> +  - 'cgroup_taskset_for_each_leader'
> +  - 'cpufreq_for_each_efficient_entry_idx'
> +  - 'cpufreq_for_each_entry'
> +  - 'cpufreq_for_each_entry_idx'
> +  - 'cpufreq_for_each_valid_entry'
> +  - 'cpufreq_for_each_valid_entry_idx'
> +  - 'css_for_each_child'
> +  - 'css_for_each_descendant_post'
> +  - 'css_for_each_descendant_pre'
> +  - 'damon_for_each_region'
> +  - 'damon_for_each_region_safe'
> +  - 'damon_for_each_scheme'
> +  - 'damon_for_each_scheme_safe'
> +  - 'damon_for_each_target'
> +  - 'damon_for_each_target_safe'
> +  - 'data__for_each_file'
> +  - 'data__for_each_file_new'
> +  - 'data__for_each_file_start'
> +  - 'device_for_each_child_node'
> +  - 'displayid_iter_for_each'
> +  - 'dma_fence_array_for_each'
> +  - 'dma_fence_chain_for_each'
> +  - 'dma_fence_unwrap_for_each'
> +  - 'dma_resv_for_each_fence'
> +  - 'dma_resv_for_each_fence_unlocked'
> +  - 'do_for_each_ftrace_op'
> +  - 'drm_atomic_crtc_for_each_plane'
> +  - 'drm_atomic_crtc_state_for_each_plane'
> +  - 'drm_atomic_crtc_state_for_each_plane_state'
> +  - 'drm_atomic_for_each_plane_damage'
> +  - 'drm_client_for_each_connector_iter'
> +  - 'drm_client_for_each_modeset'
> +  - 'drm_connector_for_each_possible_encoder'
> +  - 'drm_for_each_bridge_in_chain'
> +  - 'drm_for_each_connector_iter'
> +  - 'drm_for_each_crtc'
> +  - 'drm_for_each_crtc_reverse'
> +  - 'drm_for_each_encoder'
> +  - 'drm_for_each_encoder_mask'
> +  - 'drm_for_each_fb'
> +  - 'drm_for_each_legacy_plane'
> +  - 'drm_for_each_plane'
> +  - 'drm_for_each_plane_mask'
> +  - 'drm_for_each_privobj'
> +  - 'drm_mm_for_each_hole'
> +  - 'drm_mm_for_each_node'
> +  - 'drm_mm_for_each_node_in_range'
> +  - 'drm_mm_for_each_node_safe'
> +  - 'dsa_switch_for_each_available_port'
> +  - 'dsa_switch_for_each_cpu_port'
> +  - 'dsa_switch_for_each_port'
> +  - 'dsa_switch_for_each_port_continue_reverse'
> +  - 'dsa_switch_for_each_port_safe'
> +  - 'dsa_switch_for_each_user_port'
> +  - 'dsa_tree_for_each_user_port'
> +  - 'dso__for_each_symbol'
> +  - 'dsos__for_each_with_build_id'
> +  - 'elf_hash_for_each_possible'
> +  - 'elf_section__for_each_rel'
> +  - 'elf_section__for_each_rela'
> +  - 'elf_symtab__for_each_symbol'
> +  - 'evlist__for_each_cpu'
> +  - 'evlist__for_each_entry'
> +  - 'evlist__for_each_entry_continue'
> +  - 'evlist__for_each_entry_from'
> +  - 'evlist__for_each_entry_reverse'
> +  - 'evlist__for_each_entry_safe'
> +  - 'flow_action_for_each'
> +  - 'for_each_acpi_dev_match'
> +  - 'for_each_active_dev_scope'
> +  - 'for_each_active_drhd_unit'
> +  - 'for_each_active_iommu'
> +  - 'for_each_aggr_pgid'
> +  - 'for_each_available_child_of_node'
> +  - 'for_each_bench'
> +  - 'for_each_bio'
> +  - 'for_each_board_func_rsrc'
> +  - 'for_each_btf_ext_rec'
> +  - 'for_each_btf_ext_sec'
> +  - 'for_each_bvec'
> +  - 'for_each_card_auxs'
> +  - 'for_each_card_auxs_safe'
> +  - 'for_each_card_components'
> +  - 'for_each_card_dapms'
> +  - 'for_each_card_pre_auxs'
> +  - 'for_each_card_prelinks'
> +  - 'for_each_card_rtds'
> +  - 'for_each_card_rtds_safe'
> +  - 'for_each_card_widgets'
> +  - 'for_each_card_widgets_safe'
> +  - 'for_each_cgroup_storage_type'
> +  - 'for_each_child_of_node'
> +  - 'for_each_clear_bit'
> +  - 'for_each_clear_bit_from'
> +  - 'for_each_clear_bitrange'
> +  - 'for_each_clear_bitrange_from'
> +  - 'for_each_cmd'
> +  - 'for_each_cmsghdr'
> +  - 'for_each_collection'
> +  - 'for_each_comp_order'
> +  - 'for_each_compatible_node'
> +  - 'for_each_component_dais'
> +  - 'for_each_component_dais_safe'
> +  - 'for_each_console'
> +  - 'for_each_cpu'
> +  - 'for_each_cpu_and'
> +  - 'for_each_cpu_not'
> +  - 'for_each_cpu_wrap'
> +  - 'for_each_dapm_widgets'
> +  - 'for_each_dedup_cand'
> +  - 'for_each_dev_addr'
> +  - 'for_each_dev_scope'
> +  - 'for_each_dma_cap_mask'
> +  - 'for_each_dpcm_be'
> +  - 'for_each_dpcm_be_rollback'
> +  - 'for_each_dpcm_be_safe'
> +  - 'for_each_dpcm_fe'
> +  - 'for_each_drhd_unit'
> +  - 'for_each_dss_dev'
> +  - 'for_each_efi_memory_desc'
> +  - 'for_each_efi_memory_desc_in_map'
> +  - 'for_each_element'
> +  - 'for_each_element_extid'
> +  - 'for_each_element_id'
> +  - 'for_each_endpoint_of_node'
> +  - 'for_each_event'
> +  - 'for_each_event_tps'
> +  - 'for_each_evictable_lru'
> +  - 'for_each_fib6_node_rt_rcu'
> +  - 'for_each_fib6_walker_rt'
> +  - 'for_each_free_mem_pfn_range_in_zone'
> +  - 'for_each_free_mem_pfn_range_in_zone_from'
> +  - 'for_each_free_mem_range'
> +  - 'for_each_free_mem_range_reverse'
> +  - 'for_each_func_rsrc'
> +  - 'for_each_group_evsel'
> +  - 'for_each_group_member'
> +  - 'for_each_hstate'
> +  - 'for_each_if'
> +  - 'for_each_inject_fn'
> +  - 'for_each_insn'
> +  - 'for_each_insn_prefix'
> +  - 'for_each_intid'
> +  - 'for_each_iommu'
> +  - 'for_each_ip_tunnel_rcu'
> +  - 'for_each_irq_nr'
> +  - 'for_each_lang'
> +  - 'for_each_link_codecs'
> +  - 'for_each_link_cpus'
> +  - 'for_each_link_platforms'
> +  - 'for_each_lru'
> +  - 'for_each_matching_node'
> +  - 'for_each_matching_node_and_match'
> +  - 'for_each_mem_pfn_range'
> +  - 'for_each_mem_range'
> +  - 'for_each_mem_range_rev'
> +  - 'for_each_mem_region'
> +  - 'for_each_member'
> +  - 'for_each_memory'
> +  - 'for_each_migratetype_order'
> +  - 'for_each_missing_reg'
> +  - 'for_each_net'
> +  - 'for_each_net_continue_reverse'
> +  - 'for_each_net_rcu'
> +  - 'for_each_netdev'
> +  - 'for_each_netdev_continue'
> +  - 'for_each_netdev_continue_rcu'
> +  - 'for_each_netdev_continue_reverse'
> +  - 'for_each_netdev_feature'
> +  - 'for_each_netdev_in_bond_rcu'
> +  - 'for_each_netdev_rcu'
> +  - 'for_each_netdev_reverse'
> +  - 'for_each_netdev_safe'
> +  - 'for_each_new_connector_in_state'
> +  - 'for_each_new_crtc_in_state'
> +  - 'for_each_new_mst_mgr_in_state'
> +  - 'for_each_new_plane_in_state'
> +  - 'for_each_new_plane_in_state_reverse'
> +  - 'for_each_new_private_obj_in_state'
> +  - 'for_each_new_reg'
> +  - 'for_each_node'
> +  - 'for_each_node_by_name'
> +  - 'for_each_node_by_type'
> +  - 'for_each_node_mask'
> +  - 'for_each_node_state'
> +  - 'for_each_node_with_cpus'
> +  - 'for_each_node_with_property'
> +  - 'for_each_nonreserved_multicast_dest_pgid'
> +  - 'for_each_of_allnodes'
> +  - 'for_each_of_allnodes_from'
> +  - 'for_each_of_cpu_node'
> +  - 'for_each_of_pci_range'
> +  - 'for_each_old_connector_in_state'
> +  - 'for_each_old_crtc_in_state'
> +  - 'for_each_old_mst_mgr_in_state'
> +  - 'for_each_old_plane_in_state'
> +  - 'for_each_old_private_obj_in_state'
> +  - 'for_each_oldnew_connector_in_state'
> +  - 'for_each_oldnew_crtc_in_state'
> +  - 'for_each_oldnew_mst_mgr_in_state'
> +  - 'for_each_oldnew_plane_in_state'
> +  - 'for_each_oldnew_plane_in_state_reverse'
> +  - 'for_each_oldnew_private_obj_in_state'
> +  - 'for_each_online_cpu'
> +  - 'for_each_online_node'
> +  - 'for_each_online_pgdat'
> +  - 'for_each_path'
> +  - 'for_each_pci_bridge'
> +  - 'for_each_pci_dev'
> +  - 'for_each_pcm_streams'
> +  - 'for_each_physmem_range'
> +  - 'for_each_populated_zone'
> +  - 'for_each_possible_cpu'
> +  - 'for_each_present_cpu'
> +  - 'for_each_prime_number'
> +  - 'for_each_prime_number_from'
> +  - 'for_each_probe_cache_entry'
> +  - 'for_each_process'
> +  - 'for_each_process_thread'
> +  - 'for_each_prop_codec_conf'
> +  - 'for_each_prop_dai_codec'
> +  - 'for_each_prop_dai_cpu'
> +  - 'for_each_prop_dlc_codecs'
> +  - 'for_each_prop_dlc_cpus'
> +  - 'for_each_prop_dlc_platforms'
> +  - 'for_each_property_of_node'
> +  - 'for_each_reg'
> +  - 'for_each_reg_filtered'
> +  - 'for_each_registered_fb'
> +  - 'for_each_requested_gpio'
> +  - 'for_each_requested_gpio_in_range'
> +  - 'for_each_reserved_mem_range'
> +  - 'for_each_reserved_mem_region'
> +  - 'for_each_rtd_codec_dais'
> +  - 'for_each_rtd_components'
> +  - 'for_each_rtd_cpu_dais'
> +  - 'for_each_rtd_dais'
> +  - 'for_each_script'
> +  - 'for_each_sec'
> +  - 'for_each_set_bit'
> +  - 'for_each_set_bit_from'
> +  - 'for_each_set_bitrange'
> +  - 'for_each_set_bitrange_from'
> +  - 'for_each_set_clump8'
> +  - 'for_each_sg'
> +  - 'for_each_sg_dma_page'
> +  - 'for_each_sg_page'
> +  - 'for_each_sgtable_dma_page'
> +  - 'for_each_sgtable_dma_sg'
> +  - 'for_each_sgtable_page'
> +  - 'for_each_sgtable_sg'
> +  - 'for_each_shell_test'
> +  - 'for_each_sibling_event'
> +  - 'for_each_subelement'
> +  - 'for_each_subelement_extid'
> +  - 'for_each_subelement_id'
> +  - 'for_each_sublist'
> +  - 'for_each_subsystem'
> +  - 'for_each_supported_activate_fn'
> +  - 'for_each_supported_inject_fn'
> +  - 'for_each_test'
> +  - 'for_each_thread'
> +  - 'for_each_token'
> +  - 'for_each_unicast_dest_pgid'
> +  - 'for_each_vsi'
> +  - 'for_each_wakeup_source'
> +  - 'for_each_zone'
> +  - 'for_each_zone_zonelist'
> +  - 'for_each_zone_zonelist_nodemask'
> +  - 'func_for_each_insn'
> +  - 'fwnode_for_each_available_child_node'
> +  - 'fwnode_for_each_child_node'
> +  - 'fwnode_graph_for_each_endpoint'
> +  - 'gadget_for_each_ep'
> +  - 'genradix_for_each'
> +  - 'genradix_for_each_from'
> +  - 'hash_for_each'
> +  - 'hash_for_each_possible'
> +  - 'hash_for_each_possible_rcu'
> +  - 'hash_for_each_possible_rcu_notrace'
> +  - 'hash_for_each_possible_safe'
> +  - 'hash_for_each_rcu'
> +  - 'hash_for_each_safe'
> +  - 'hashmap__for_each_entry'
> +  - 'hashmap__for_each_entry_safe'
> +  - 'hashmap__for_each_key_entry'
> +  - 'hashmap__for_each_key_entry_safe'
> +  - 'hctx_for_each_ctx'
> +  - 'hists__for_each_format'
> +  - 'hists__for_each_sort_list'
> +  - 'hlist_bl_for_each_entry'
> +  - 'hlist_bl_for_each_entry_rcu'
> +  - 'hlist_bl_for_each_entry_safe'
> +  - 'hlist_for_each'
> +  - 'hlist_for_each_entry'
> +  - 'hlist_for_each_entry_continue'
> +  - 'hlist_for_each_entry_continue_rcu'
> +  - 'hlist_for_each_entry_continue_rcu_bh'
> +  - 'hlist_for_each_entry_from'
> +  - 'hlist_for_each_entry_from_rcu'
> +  - 'hlist_for_each_entry_rcu'
> +  - 'hlist_for_each_entry_rcu_bh'
> +  - 'hlist_for_each_entry_rcu_notrace'
> +  - 'hlist_for_each_entry_safe'
> +  - 'hlist_for_each_entry_srcu'
> +  - 'hlist_for_each_safe'
> +  - 'hlist_nulls_for_each_entry'
> +  - 'hlist_nulls_for_each_entry_from'
> +  - 'hlist_nulls_for_each_entry_rcu'
> +  - 'hlist_nulls_for_each_entry_safe'
> +  - 'i3c_bus_for_each_i2cdev'
> +  - 'i3c_bus_for_each_i3cdev'
> +  - 'idr_for_each_entry'
> +  - 'idr_for_each_entry_continue'
> +  - 'idr_for_each_entry_continue_ul'
> +  - 'idr_for_each_entry_ul'
> +  - 'in_dev_for_each_ifa_rcu'
> +  - 'in_dev_for_each_ifa_rtnl'
> +  - 'inet_bind_bucket_for_each'
> +  - 'inet_lhash2_for_each_icsk'
> +  - 'inet_lhash2_for_each_icsk_continue'
> +  - 'inet_lhash2_for_each_icsk_rcu'
> +  - 'intlist__for_each_entry'
> +  - 'intlist__for_each_entry_safe'
> +  - 'kcore_copy__for_each_phdr'
> +  - 'key_for_each'
> +  - 'key_for_each_safe'
> +  - 'klp_for_each_func'
> +  - 'klp_for_each_func_safe'
> +  - 'klp_for_each_func_static'
> +  - 'klp_for_each_object'
> +  - 'klp_for_each_object_safe'
> +  - 'klp_for_each_object_static'
> +  - 'kunit_suite_for_each_test_case'
> +  - 'kvm_for_each_memslot'
> +  - 'kvm_for_each_memslot_in_gfn_range'
> +  - 'kvm_for_each_vcpu'
> +  - 'libbpf_nla_for_each_attr'
> +  - 'list_for_each'
> +  - 'list_for_each_codec'
> +  - 'list_for_each_codec_safe'
> +  - 'list_for_each_continue'
> +  - 'list_for_each_entry'
> +  - 'list_for_each_entry_continue'
> +  - 'list_for_each_entry_continue_rcu'
> +  - 'list_for_each_entry_continue_reverse'
> +  - 'list_for_each_entry_from'
> +  - 'list_for_each_entry_from_rcu'
> +  - 'list_for_each_entry_from_reverse'
> +  - 'list_for_each_entry_lockless'
> +  - 'list_for_each_entry_rcu'
> +  - 'list_for_each_entry_reverse'
> +  - 'list_for_each_entry_safe'
> +  - 'list_for_each_entry_safe_continue'
> +  - 'list_for_each_entry_safe_from'
> +  - 'list_for_each_entry_safe_reverse'
> +  - 'list_for_each_entry_srcu'
> +  - 'list_for_each_from'
> +  - 'list_for_each_prev'
> +  - 'list_for_each_prev_safe'
> +  - 'list_for_each_safe'
> +  - 'llist_for_each'
> +  - 'llist_for_each_entry'
> +  - 'llist_for_each_entry_safe'
> +  - 'llist_for_each_safe'
> +  - 'map__for_each_symbol'
> +  - 'map__for_each_symbol_by_name'
> +  - 'map_for_each_event'
> +  - 'map_for_each_metric'
> +  - 'maps__for_each_entry'
> +  - 'maps__for_each_entry_safe'
> +  - 'mci_for_each_dimm'
> +  - 'media_device_for_each_entity'
> +  - 'media_device_for_each_intf'
> +  - 'media_device_for_each_link'
> +  - 'media_device_for_each_pad'
> +  - 'msi_for_each_desc'
> +  - 'nanddev_io_for_each_page'
> +  - 'netdev_for_each_lower_dev'
> +  - 'netdev_for_each_lower_private'
> +  - 'netdev_for_each_lower_private_rcu'
> +  - 'netdev_for_each_mc_addr'
> +  - 'netdev_for_each_uc_addr'
> +  - 'netdev_for_each_upper_dev_rcu'
> +  - 'netdev_hw_addr_list_for_each'
> +  - 'nft_rule_for_each_expr'
> +  - 'nla_for_each_attr'
> +  - 'nla_for_each_nested'
> +  - 'nlmsg_for_each_attr'
> +  - 'nlmsg_for_each_msg'
> +  - 'nr_neigh_for_each'
> +  - 'nr_neigh_for_each_safe'
> +  - 'nr_node_for_each'
> +  - 'nr_node_for_each_safe'
> +  - 'of_for_each_phandle'
> +  - 'of_property_for_each_string'
> +  - 'of_property_for_each_u32'
> +  - 'pci_bus_for_each_resource'
> +  - 'pcl_for_each_chunk'
> +  - 'pcl_for_each_segment'
> +  - 'pcm_for_each_format'
> +  - 'perf_config_items__for_each_entry'
> +  - 'perf_config_sections__for_each_entry'
> +  - 'perf_config_set__for_each_entry'
> +  - 'perf_cpu_map__for_each_cpu'
> +  - 'perf_evlist__for_each_entry'
> +  - 'perf_evlist__for_each_entry_reverse'
> +  - 'perf_evlist__for_each_entry_safe'
> +  - 'perf_evlist__for_each_evsel'
> +  - 'perf_evlist__for_each_mmap'
> +  - 'perf_hpp_list__for_each_format'
> +  - 'perf_hpp_list__for_each_format_safe'
> +  - 'perf_hpp_list__for_each_sort_list'
> +  - 'perf_hpp_list__for_each_sort_list_safe'
> +  - 'perf_pmu__for_each_hybrid_pmu'
> +  - 'ping_portaddr_for_each_entry'
> +  - 'plist_for_each'
> +  - 'plist_for_each_continue'
> +  - 'plist_for_each_entry'
> +  - 'plist_for_each_entry_continue'
> +  - 'plist_for_each_entry_safe'
> +  - 'plist_for_each_safe'
> +  - 'pnp_for_each_card'
> +  - 'pnp_for_each_dev'
> +  - 'protocol_for_each_card'
> +  - 'protocol_for_each_dev'
> +  - 'queue_for_each_hw_ctx'
> +  - 'radix_tree_for_each_slot'
> +  - 'radix_tree_for_each_tagged'
> +  - 'rb_for_each'
> +  - 'rbtree_postorder_for_each_entry_safe'
> +  - 'rdma_for_each_block'
> +  - 'rdma_for_each_port'
> +  - 'rdma_umem_for_each_dma_block'
> +  - 'resort_rb__for_each_entry'
> +  - 'resource_list_for_each_entry'
> +  - 'resource_list_for_each_entry_safe'
> +  - 'rhl_for_each_entry_rcu'
> +  - 'rhl_for_each_rcu'
> +  - 'rht_for_each'
> +  - 'rht_for_each_entry'
> +  - 'rht_for_each_entry_from'
> +  - 'rht_for_each_entry_rcu'
> +  - 'rht_for_each_entry_rcu_from'
> +  - 'rht_for_each_entry_safe'
> +  - 'rht_for_each_from'
> +  - 'rht_for_each_rcu'
> +  - 'rht_for_each_rcu_from'
> +  - 'rq_for_each_bvec'
> +  - 'rq_for_each_segment'
> +  - 'rq_list_for_each'
> +  - 'rq_list_for_each_safe'
> +  - 'scsi_for_each_prot_sg'
> +  - 'scsi_for_each_sg'
> +  - 'sctp_for_each_hentry'
> +  - 'sctp_skb_for_each'
> +  - 'sec_for_each_insn'
> +  - 'sec_for_each_insn_continue'
> +  - 'sec_for_each_insn_from'
> +  - 'shdma_for_each_chan'
> +  - 'shost_for_each_device'
> +  - 'sk_for_each'
> +  - 'sk_for_each_bound'
> +  - 'sk_for_each_entry_offset_rcu'
> +  - 'sk_for_each_from'
> +  - 'sk_for_each_rcu'
> +  - 'sk_for_each_safe'
> +  - 'sk_nulls_for_each'
> +  - 'sk_nulls_for_each_from'
> +  - 'sk_nulls_for_each_rcu'
> +  - 'snd_array_for_each'
> +  - 'snd_pcm_group_for_each_entry'
> +  - 'snd_soc_dapm_widget_for_each_path'
> +  - 'snd_soc_dapm_widget_for_each_path_safe'
> +  - 'snd_soc_dapm_widget_for_each_sink_path'
> +  - 'snd_soc_dapm_widget_for_each_source_path'
> +  - 'strlist__for_each_entry'
> +  - 'strlist__for_each_entry_safe'
> +  - 'sym_for_each_insn'
> +  - 'sym_for_each_insn_continue_reverse'
> +  - 'symbols__for_each_entry'
> +  - 'tb_property_for_each'
> +  - 'tcf_act_for_each_action'
> +  - 'tcf_exts_for_each_action'
> +  - 'udp_portaddr_for_each_entry'
> +  - 'udp_portaddr_for_each_entry_rcu'
> +  - 'usb_hub_for_each_child'
> +  - 'v4l2_device_for_each_subdev'
> +  - 'v4l2_m2m_for_each_dst_buf'
> +  - 'v4l2_m2m_for_each_dst_buf_safe'
> +  - 'v4l2_m2m_for_each_src_buf'
> +  - 'v4l2_m2m_for_each_src_buf_safe'
> +  - 'virtio_device_for_each_vq'
> +  - 'while_for_each_ftrace_op'
> +  - 'xa_for_each'
> +  - 'xa_for_each_marked'
> +  - 'xa_for_each_range'
> +  - 'xa_for_each_start'
> +  - 'xas_for_each'
> +  - 'xas_for_each_conflict'
> +  - 'xas_for_each_marked'
> +  - 'xbc_array_for_each_value'
> +  - 'xbc_for_each_key_value'
> +  - 'xbc_node_for_each_array_value'
> +  - 'xbc_node_for_each_child'
> +  - 'xbc_node_for_each_key_value'
> +  - 'xbc_node_for_each_subkey'
> +  - 'zorro_for_each_dev'
> +
> +IncludeBlocks: Preserve
> +IncludeCategories:
> +  - Regex: '.*'
> +    Priority: 1
> +IncludeIsMainRegex: '(Test)?$'
> +IndentCaseLabels: false
> +IndentGotoLabels: false
> +IndentPPDirectives: None
> +IndentWidth: 8
> +IndentWrappedFunctionNames: false
> +JavaScriptQuotes: Leave
> +JavaScriptWrapImports: true
> +KeepEmptyLinesAtTheStartOfBlocks: false
> +MacroBlockBegin: ''
> +MacroBlockEnd: ''
> +MaxEmptyLinesToKeep: 1
> +NamespaceIndentation: None
> +ObjCBinPackProtocolList: Auto
> +ObjCBlockIndentWidth: 8
> +ObjCSpaceAfterProperty: true
> +ObjCSpaceBeforeProtocolList: true
> +
> +# Taken from git's rules
> +PenaltyBreakAssignment: 10
> +PenaltyBreakBeforeFirstCallParameter: 30
> +PenaltyBreakComment: 10
> +PenaltyBreakFirstLessLess: 0
> +PenaltyBreakString: 10
> +PenaltyExcessCharacter: 100
> +PenaltyReturnTypeOnItsOwnLine: 60
> +
> +PointerAlignment: Right
> +ReflowComments: false
> +SortIncludes: false
> +SortUsingDeclarations: false
> +SpaceAfterCStyleCast: false
> +SpaceAfterTemplateKeyword: true
> +SpaceBeforeAssignmentOperators: true
> +SpaceBeforeCtorInitializerColon: true
> +SpaceBeforeInheritanceColon: true
> +SpaceBeforeParens: ControlStatementsExceptForEachMacros
> +SpaceBeforeRangeBasedForLoopColon: true
> +SpaceInEmptyParentheses: false
> +SpacesBeforeTrailingComments: 1
> +SpacesInAngles: false
> +SpacesInContainerLiterals: false
> +SpacesInCStyleCastParentheses: false
> +SpacesInParentheses: false
> +SpacesInSquareBrackets: false
> +Standard: Cpp03
> +TabWidth: 8
> +UseTab: Always
> +...
> diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
> index 6d1294ad..8d7320b7 100644
> --- a/CONTRIBUTING.md
> +++ b/CONTRIBUTING.md
> @@ -10,8 +10,9 @@ improvements for documentation and new tools and testcases.
>  The Code
>  --------
>  
> -- The code should follow kernel coding style:
> -  https://www.kernel.org/doc/html/latest/process/coding-style.html
> +- The code should follow [kernel coding style](coding-style). Before
> +  sending out a patch, changes can be formatted with
> +  [git-clang-format](git-clang-format).
>  
>  - Testcases (subtests) have to use minus signs (-) as a word separator.
>    The generated documentation contains glossary of commonly used terms.
> @@ -30,9 +31,10 @@ The Code
>    provided by the igt library. The semantic patch lib/igt.cocci can help with
>    more automatic conversions.
>  
> +[coding-style]: https://www.kernel.org/doc/html/latest/process/coding-style.html
> +[git-clang-format]: https://github.com/llvm-mirror/clang/blob/master/tools/clang-format/git-clang-format
>  [igt-describe]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
>  
> -
>  Sending Patches
>  ---------------
>  
> -- 
> 2.37.1.359.gd136c6c3e2-goog
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] tooling: Add linux's .clang-format
  2022-07-27 10:52 ` Petri Latvala
@ 2022-07-27 20:10   ` Jim Shargo
  2022-07-27 20:21   ` [igt-dev] [PATCH i-g-t v2] " Jim Shargo
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 15+ messages in thread
From: Jim Shargo @ 2022-07-27 20:10 UTC (permalink / raw)
  To: Petri Latvala; +Cc: Jim Shargo, Development mailing list for IGT GPU Tools

Thanks for the kind, quick, and thoughtful review! I think I figured
out the tricks to make these things work. Follow-up incoming.

Also, when updating the file, I found it really nice to use `watch` to
compare and eval the changes:

  $  watch -n1 "sdiff format-test.c <(clang-format format-test.c)"

or

  $ watch -n1 "cat format-test.c; clang-format format-test.c"



On Wed, Jul 27, 2022 at 6:55 AM Petri Latvala <petri.latvala@intel.com> wrote:
>
> On Tue, Jul 26, 2022 at 03:01:00PM -0400, Jim Shargo wrote:
> > As I was authoring my first patchset for IGT, I found myself fighting
> > the tooling a bit to get everything right. I had to add a bunch of extra
> > command line args to use my linux checkout's formatting rules to get the
> > style right.
> >
> > I grabbed this from a recent checkout of torvald's repo.
> >
> > The commit I used was: e0dccc3b76fb35bb257b4118367a883073d7390e
> >
> > I've also updated CONTRIBUTING.md with a link to git-clang-format, which
> > is a useful tool for using clang-format from git just on a commit's
> > changes.
> >
> > Signed-off-by: Jim Shargo <jshargo@chromium.org>
>
>
>
> I tried to get a clang-format configuration together myself some years
> ago and absolutely failed. This is getting closer to being useful!
>
> Some incorrectness I found:
>
> /*
> * multiline comments are indented
> * weirdly. Or rather aligned weirdly.
> */
>
> igt_subtest_group, igt_subtest, igt_until_timeout blocks have their {
> incorrectly placed, should be on the same line like with for loops,
> instead of on their own line.
>
> Since you're adding pointers to the tooling in CONTRIBUTING (thanks
> for that!) can you also add a note about the .editorconfig file? I
> suspect many new people haven't even realized it's there...
>
>
> --
> Petri Latvala
>
>
> > ---
> >  .clang-format   | 682 ++++++++++++++++++++++++++++++++++++++++++++++++
> >  CONTRIBUTING.md |   8 +-
> >  2 files changed, 687 insertions(+), 3 deletions(-)
> >  create mode 100644 .clang-format
> >
> > diff --git a/.clang-format b/.clang-format
> > new file mode 100644
> > index 00000000..9b87ea1f
> > --- /dev/null
> > +++ b/.clang-format
> > @@ -0,0 +1,682 @@
> > +# SPDX-License-Identifier: GPL-2.0
> > +#
> > +# clang-format configuration file. Intended for clang-format >= 11.
> > +#
> > +# For more information, see:
> > +#
> > +#   Documentation/process/clang-format.rst
> > +#   https://clang.llvm.org/docs/ClangFormat.html
> > +#   https://clang.llvm.org/docs/ClangFormatStyleOptions.html
> > +#
> > +---
> > +AccessModifierOffset: -4
> > +AlignAfterOpenBracket: Align
> > +AlignConsecutiveAssignments: false
> > +AlignConsecutiveDeclarations: false
> > +AlignEscapedNewlines: Left
> > +AlignOperands: true
> > +AlignTrailingComments: false
> > +AllowAllParametersOfDeclarationOnNextLine: false
> > +AllowShortBlocksOnASingleLine: false
> > +AllowShortCaseLabelsOnASingleLine: false
> > +AllowShortFunctionsOnASingleLine: None
> > +AllowShortIfStatementsOnASingleLine: false
> > +AllowShortLoopsOnASingleLine: false
> > +AlwaysBreakAfterDefinitionReturnType: None
> > +AlwaysBreakAfterReturnType: None
> > +AlwaysBreakBeforeMultilineStrings: false
> > +AlwaysBreakTemplateDeclarations: false
> > +BinPackArguments: true
> > +BinPackParameters: true
> > +BraceWrapping:
> > +  AfterClass: false
> > +  AfterControlStatement: false
> > +  AfterEnum: false
> > +  AfterFunction: true
> > +  AfterNamespace: true
> > +  AfterObjCDeclaration: false
> > +  AfterStruct: false
> > +  AfterUnion: false
> > +  AfterExternBlock: false
> > +  BeforeCatch: false
> > +  BeforeElse: false
> > +  IndentBraces: false
> > +  SplitEmptyFunction: true
> > +  SplitEmptyRecord: true
> > +  SplitEmptyNamespace: true
> > +BreakBeforeBinaryOperators: None
> > +BreakBeforeBraces: Custom
> > +BreakBeforeInheritanceComma: false
> > +BreakBeforeTernaryOperators: false
> > +BreakConstructorInitializersBeforeComma: false
> > +BreakConstructorInitializers: BeforeComma
> > +BreakAfterJavaFieldAnnotations: false
> > +BreakStringLiterals: false
> > +ColumnLimit: 80
> > +CommentPragmas: '^ IWYU pragma:'
> > +CompactNamespaces: false
> > +ConstructorInitializerAllOnOneLineOrOnePerLine: false
> > +ConstructorInitializerIndentWidth: 8
> > +ContinuationIndentWidth: 8
> > +Cpp11BracedListStyle: false
> > +DerivePointerAlignment: false
> > +DisableFormat: false
> > +ExperimentalAutoDetectBinPacking: false
> > +FixNamespaceComments: false
> > +
> > +# Taken from:
> > +#   git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ tools/ \
> > +#   | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$,  - '\1'," \
> > +#   | LC_ALL=C sort -u
> > +ForEachMacros:
> > +  - '__ata_qc_for_each'
> > +  - '__bio_for_each_bvec'
> > +  - '__bio_for_each_segment'
> > +  - '__evlist__for_each_entry'
> > +  - '__evlist__for_each_entry_continue'
> > +  - '__evlist__for_each_entry_from'
> > +  - '__evlist__for_each_entry_reverse'
> > +  - '__evlist__for_each_entry_safe'
> > +  - '__for_each_mem_range'
> > +  - '__for_each_mem_range_rev'
> > +  - '__for_each_thread'
> > +  - '__hlist_for_each_rcu'
> > +  - '__map__for_each_symbol_by_name'
> > +  - '__perf_evlist__for_each_entry'
> > +  - '__perf_evlist__for_each_entry_reverse'
> > +  - '__perf_evlist__for_each_entry_safe'
> > +  - '__rq_for_each_bio'
> > +  - '__shost_for_each_device'
> > +  - 'apei_estatus_for_each_section'
> > +  - 'ata_for_each_dev'
> > +  - 'ata_for_each_link'
> > +  - 'ata_qc_for_each'
> > +  - 'ata_qc_for_each_raw'
> > +  - 'ata_qc_for_each_with_internal'
> > +  - 'ax25_for_each'
> > +  - 'ax25_uid_for_each'
> > +  - 'bio_for_each_bvec'
> > +  - 'bio_for_each_bvec_all'
> > +  - 'bio_for_each_folio_all'
> > +  - 'bio_for_each_integrity_vec'
> > +  - 'bio_for_each_segment'
> > +  - 'bio_for_each_segment_all'
> > +  - 'bio_list_for_each'
> > +  - 'bip_for_each_vec'
> > +  - 'bond_for_each_slave'
> > +  - 'bond_for_each_slave_rcu'
> > +  - 'bpf__perf_for_each_map'
> > +  - 'bpf__perf_for_each_map_named'
> > +  - 'bpf_for_each_spilled_reg'
> > +  - 'bpf_object__for_each_map'
> > +  - 'bpf_object__for_each_program'
> > +  - 'bpf_object__for_each_safe'
> > +  - 'bpf_perf_object__for_each'
> > +  - 'btree_for_each_safe128'
> > +  - 'btree_for_each_safe32'
> > +  - 'btree_for_each_safe64'
> > +  - 'btree_for_each_safel'
> > +  - 'card_for_each_dev'
> > +  - 'cgroup_taskset_for_each'
> > +  - 'cgroup_taskset_for_each_leader'
> > +  - 'cpufreq_for_each_efficient_entry_idx'
> > +  - 'cpufreq_for_each_entry'
> > +  - 'cpufreq_for_each_entry_idx'
> > +  - 'cpufreq_for_each_valid_entry'
> > +  - 'cpufreq_for_each_valid_entry_idx'
> > +  - 'css_for_each_child'
> > +  - 'css_for_each_descendant_post'
> > +  - 'css_for_each_descendant_pre'
> > +  - 'damon_for_each_region'
> > +  - 'damon_for_each_region_safe'
> > +  - 'damon_for_each_scheme'
> > +  - 'damon_for_each_scheme_safe'
> > +  - 'damon_for_each_target'
> > +  - 'damon_for_each_target_safe'
> > +  - 'data__for_each_file'
> > +  - 'data__for_each_file_new'
> > +  - 'data__for_each_file_start'
> > +  - 'device_for_each_child_node'
> > +  - 'displayid_iter_for_each'
> > +  - 'dma_fence_array_for_each'
> > +  - 'dma_fence_chain_for_each'
> > +  - 'dma_fence_unwrap_for_each'
> > +  - 'dma_resv_for_each_fence'
> > +  - 'dma_resv_for_each_fence_unlocked'
> > +  - 'do_for_each_ftrace_op'
> > +  - 'drm_atomic_crtc_for_each_plane'
> > +  - 'drm_atomic_crtc_state_for_each_plane'
> > +  - 'drm_atomic_crtc_state_for_each_plane_state'
> > +  - 'drm_atomic_for_each_plane_damage'
> > +  - 'drm_client_for_each_connector_iter'
> > +  - 'drm_client_for_each_modeset'
> > +  - 'drm_connector_for_each_possible_encoder'
> > +  - 'drm_for_each_bridge_in_chain'
> > +  - 'drm_for_each_connector_iter'
> > +  - 'drm_for_each_crtc'
> > +  - 'drm_for_each_crtc_reverse'
> > +  - 'drm_for_each_encoder'
> > +  - 'drm_for_each_encoder_mask'
> > +  - 'drm_for_each_fb'
> > +  - 'drm_for_each_legacy_plane'
> > +  - 'drm_for_each_plane'
> > +  - 'drm_for_each_plane_mask'
> > +  - 'drm_for_each_privobj'
> > +  - 'drm_mm_for_each_hole'
> > +  - 'drm_mm_for_each_node'
> > +  - 'drm_mm_for_each_node_in_range'
> > +  - 'drm_mm_for_each_node_safe'
> > +  - 'dsa_switch_for_each_available_port'
> > +  - 'dsa_switch_for_each_cpu_port'
> > +  - 'dsa_switch_for_each_port'
> > +  - 'dsa_switch_for_each_port_continue_reverse'
> > +  - 'dsa_switch_for_each_port_safe'
> > +  - 'dsa_switch_for_each_user_port'
> > +  - 'dsa_tree_for_each_user_port'
> > +  - 'dso__for_each_symbol'
> > +  - 'dsos__for_each_with_build_id'
> > +  - 'elf_hash_for_each_possible'
> > +  - 'elf_section__for_each_rel'
> > +  - 'elf_section__for_each_rela'
> > +  - 'elf_symtab__for_each_symbol'
> > +  - 'evlist__for_each_cpu'
> > +  - 'evlist__for_each_entry'
> > +  - 'evlist__for_each_entry_continue'
> > +  - 'evlist__for_each_entry_from'
> > +  - 'evlist__for_each_entry_reverse'
> > +  - 'evlist__for_each_entry_safe'
> > +  - 'flow_action_for_each'
> > +  - 'for_each_acpi_dev_match'
> > +  - 'for_each_active_dev_scope'
> > +  - 'for_each_active_drhd_unit'
> > +  - 'for_each_active_iommu'
> > +  - 'for_each_aggr_pgid'
> > +  - 'for_each_available_child_of_node'
> > +  - 'for_each_bench'
> > +  - 'for_each_bio'
> > +  - 'for_each_board_func_rsrc'
> > +  - 'for_each_btf_ext_rec'
> > +  - 'for_each_btf_ext_sec'
> > +  - 'for_each_bvec'
> > +  - 'for_each_card_auxs'
> > +  - 'for_each_card_auxs_safe'
> > +  - 'for_each_card_components'
> > +  - 'for_each_card_dapms'
> > +  - 'for_each_card_pre_auxs'
> > +  - 'for_each_card_prelinks'
> > +  - 'for_each_card_rtds'
> > +  - 'for_each_card_rtds_safe'
> > +  - 'for_each_card_widgets'
> > +  - 'for_each_card_widgets_safe'
> > +  - 'for_each_cgroup_storage_type'
> > +  - 'for_each_child_of_node'
> > +  - 'for_each_clear_bit'
> > +  - 'for_each_clear_bit_from'
> > +  - 'for_each_clear_bitrange'
> > +  - 'for_each_clear_bitrange_from'
> > +  - 'for_each_cmd'
> > +  - 'for_each_cmsghdr'
> > +  - 'for_each_collection'
> > +  - 'for_each_comp_order'
> > +  - 'for_each_compatible_node'
> > +  - 'for_each_component_dais'
> > +  - 'for_each_component_dais_safe'
> > +  - 'for_each_console'
> > +  - 'for_each_cpu'
> > +  - 'for_each_cpu_and'
> > +  - 'for_each_cpu_not'
> > +  - 'for_each_cpu_wrap'
> > +  - 'for_each_dapm_widgets'
> > +  - 'for_each_dedup_cand'
> > +  - 'for_each_dev_addr'
> > +  - 'for_each_dev_scope'
> > +  - 'for_each_dma_cap_mask'
> > +  - 'for_each_dpcm_be'
> > +  - 'for_each_dpcm_be_rollback'
> > +  - 'for_each_dpcm_be_safe'
> > +  - 'for_each_dpcm_fe'
> > +  - 'for_each_drhd_unit'
> > +  - 'for_each_dss_dev'
> > +  - 'for_each_efi_memory_desc'
> > +  - 'for_each_efi_memory_desc_in_map'
> > +  - 'for_each_element'
> > +  - 'for_each_element_extid'
> > +  - 'for_each_element_id'
> > +  - 'for_each_endpoint_of_node'
> > +  - 'for_each_event'
> > +  - 'for_each_event_tps'
> > +  - 'for_each_evictable_lru'
> > +  - 'for_each_fib6_node_rt_rcu'
> > +  - 'for_each_fib6_walker_rt'
> > +  - 'for_each_free_mem_pfn_range_in_zone'
> > +  - 'for_each_free_mem_pfn_range_in_zone_from'
> > +  - 'for_each_free_mem_range'
> > +  - 'for_each_free_mem_range_reverse'
> > +  - 'for_each_func_rsrc'
> > +  - 'for_each_group_evsel'
> > +  - 'for_each_group_member'
> > +  - 'for_each_hstate'
> > +  - 'for_each_if'
> > +  - 'for_each_inject_fn'
> > +  - 'for_each_insn'
> > +  - 'for_each_insn_prefix'
> > +  - 'for_each_intid'
> > +  - 'for_each_iommu'
> > +  - 'for_each_ip_tunnel_rcu'
> > +  - 'for_each_irq_nr'
> > +  - 'for_each_lang'
> > +  - 'for_each_link_codecs'
> > +  - 'for_each_link_cpus'
> > +  - 'for_each_link_platforms'
> > +  - 'for_each_lru'
> > +  - 'for_each_matching_node'
> > +  - 'for_each_matching_node_and_match'
> > +  - 'for_each_mem_pfn_range'
> > +  - 'for_each_mem_range'
> > +  - 'for_each_mem_range_rev'
> > +  - 'for_each_mem_region'
> > +  - 'for_each_member'
> > +  - 'for_each_memory'
> > +  - 'for_each_migratetype_order'
> > +  - 'for_each_missing_reg'
> > +  - 'for_each_net'
> > +  - 'for_each_net_continue_reverse'
> > +  - 'for_each_net_rcu'
> > +  - 'for_each_netdev'
> > +  - 'for_each_netdev_continue'
> > +  - 'for_each_netdev_continue_rcu'
> > +  - 'for_each_netdev_continue_reverse'
> > +  - 'for_each_netdev_feature'
> > +  - 'for_each_netdev_in_bond_rcu'
> > +  - 'for_each_netdev_rcu'
> > +  - 'for_each_netdev_reverse'
> > +  - 'for_each_netdev_safe'
> > +  - 'for_each_new_connector_in_state'
> > +  - 'for_each_new_crtc_in_state'
> > +  - 'for_each_new_mst_mgr_in_state'
> > +  - 'for_each_new_plane_in_state'
> > +  - 'for_each_new_plane_in_state_reverse'
> > +  - 'for_each_new_private_obj_in_state'
> > +  - 'for_each_new_reg'
> > +  - 'for_each_node'
> > +  - 'for_each_node_by_name'
> > +  - 'for_each_node_by_type'
> > +  - 'for_each_node_mask'
> > +  - 'for_each_node_state'
> > +  - 'for_each_node_with_cpus'
> > +  - 'for_each_node_with_property'
> > +  - 'for_each_nonreserved_multicast_dest_pgid'
> > +  - 'for_each_of_allnodes'
> > +  - 'for_each_of_allnodes_from'
> > +  - 'for_each_of_cpu_node'
> > +  - 'for_each_of_pci_range'
> > +  - 'for_each_old_connector_in_state'
> > +  - 'for_each_old_crtc_in_state'
> > +  - 'for_each_old_mst_mgr_in_state'
> > +  - 'for_each_old_plane_in_state'
> > +  - 'for_each_old_private_obj_in_state'
> > +  - 'for_each_oldnew_connector_in_state'
> > +  - 'for_each_oldnew_crtc_in_state'
> > +  - 'for_each_oldnew_mst_mgr_in_state'
> > +  - 'for_each_oldnew_plane_in_state'
> > +  - 'for_each_oldnew_plane_in_state_reverse'
> > +  - 'for_each_oldnew_private_obj_in_state'
> > +  - 'for_each_online_cpu'
> > +  - 'for_each_online_node'
> > +  - 'for_each_online_pgdat'
> > +  - 'for_each_path'
> > +  - 'for_each_pci_bridge'
> > +  - 'for_each_pci_dev'
> > +  - 'for_each_pcm_streams'
> > +  - 'for_each_physmem_range'
> > +  - 'for_each_populated_zone'
> > +  - 'for_each_possible_cpu'
> > +  - 'for_each_present_cpu'
> > +  - 'for_each_prime_number'
> > +  - 'for_each_prime_number_from'
> > +  - 'for_each_probe_cache_entry'
> > +  - 'for_each_process'
> > +  - 'for_each_process_thread'
> > +  - 'for_each_prop_codec_conf'
> > +  - 'for_each_prop_dai_codec'
> > +  - 'for_each_prop_dai_cpu'
> > +  - 'for_each_prop_dlc_codecs'
> > +  - 'for_each_prop_dlc_cpus'
> > +  - 'for_each_prop_dlc_platforms'
> > +  - 'for_each_property_of_node'
> > +  - 'for_each_reg'
> > +  - 'for_each_reg_filtered'
> > +  - 'for_each_registered_fb'
> > +  - 'for_each_requested_gpio'
> > +  - 'for_each_requested_gpio_in_range'
> > +  - 'for_each_reserved_mem_range'
> > +  - 'for_each_reserved_mem_region'
> > +  - 'for_each_rtd_codec_dais'
> > +  - 'for_each_rtd_components'
> > +  - 'for_each_rtd_cpu_dais'
> > +  - 'for_each_rtd_dais'
> > +  - 'for_each_script'
> > +  - 'for_each_sec'
> > +  - 'for_each_set_bit'
> > +  - 'for_each_set_bit_from'
> > +  - 'for_each_set_bitrange'
> > +  - 'for_each_set_bitrange_from'
> > +  - 'for_each_set_clump8'
> > +  - 'for_each_sg'
> > +  - 'for_each_sg_dma_page'
> > +  - 'for_each_sg_page'
> > +  - 'for_each_sgtable_dma_page'
> > +  - 'for_each_sgtable_dma_sg'
> > +  - 'for_each_sgtable_page'
> > +  - 'for_each_sgtable_sg'
> > +  - 'for_each_shell_test'
> > +  - 'for_each_sibling_event'
> > +  - 'for_each_subelement'
> > +  - 'for_each_subelement_extid'
> > +  - 'for_each_subelement_id'
> > +  - 'for_each_sublist'
> > +  - 'for_each_subsystem'
> > +  - 'for_each_supported_activate_fn'
> > +  - 'for_each_supported_inject_fn'
> > +  - 'for_each_test'
> > +  - 'for_each_thread'
> > +  - 'for_each_token'
> > +  - 'for_each_unicast_dest_pgid'
> > +  - 'for_each_vsi'
> > +  - 'for_each_wakeup_source'
> > +  - 'for_each_zone'
> > +  - 'for_each_zone_zonelist'
> > +  - 'for_each_zone_zonelist_nodemask'
> > +  - 'func_for_each_insn'
> > +  - 'fwnode_for_each_available_child_node'
> > +  - 'fwnode_for_each_child_node'
> > +  - 'fwnode_graph_for_each_endpoint'
> > +  - 'gadget_for_each_ep'
> > +  - 'genradix_for_each'
> > +  - 'genradix_for_each_from'
> > +  - 'hash_for_each'
> > +  - 'hash_for_each_possible'
> > +  - 'hash_for_each_possible_rcu'
> > +  - 'hash_for_each_possible_rcu_notrace'
> > +  - 'hash_for_each_possible_safe'
> > +  - 'hash_for_each_rcu'
> > +  - 'hash_for_each_safe'
> > +  - 'hashmap__for_each_entry'
> > +  - 'hashmap__for_each_entry_safe'
> > +  - 'hashmap__for_each_key_entry'
> > +  - 'hashmap__for_each_key_entry_safe'
> > +  - 'hctx_for_each_ctx'
> > +  - 'hists__for_each_format'
> > +  - 'hists__for_each_sort_list'
> > +  - 'hlist_bl_for_each_entry'
> > +  - 'hlist_bl_for_each_entry_rcu'
> > +  - 'hlist_bl_for_each_entry_safe'
> > +  - 'hlist_for_each'
> > +  - 'hlist_for_each_entry'
> > +  - 'hlist_for_each_entry_continue'
> > +  - 'hlist_for_each_entry_continue_rcu'
> > +  - 'hlist_for_each_entry_continue_rcu_bh'
> > +  - 'hlist_for_each_entry_from'
> > +  - 'hlist_for_each_entry_from_rcu'
> > +  - 'hlist_for_each_entry_rcu'
> > +  - 'hlist_for_each_entry_rcu_bh'
> > +  - 'hlist_for_each_entry_rcu_notrace'
> > +  - 'hlist_for_each_entry_safe'
> > +  - 'hlist_for_each_entry_srcu'
> > +  - 'hlist_for_each_safe'
> > +  - 'hlist_nulls_for_each_entry'
> > +  - 'hlist_nulls_for_each_entry_from'
> > +  - 'hlist_nulls_for_each_entry_rcu'
> > +  - 'hlist_nulls_for_each_entry_safe'
> > +  - 'i3c_bus_for_each_i2cdev'
> > +  - 'i3c_bus_for_each_i3cdev'
> > +  - 'idr_for_each_entry'
> > +  - 'idr_for_each_entry_continue'
> > +  - 'idr_for_each_entry_continue_ul'
> > +  - 'idr_for_each_entry_ul'
> > +  - 'in_dev_for_each_ifa_rcu'
> > +  - 'in_dev_for_each_ifa_rtnl'
> > +  - 'inet_bind_bucket_for_each'
> > +  - 'inet_lhash2_for_each_icsk'
> > +  - 'inet_lhash2_for_each_icsk_continue'
> > +  - 'inet_lhash2_for_each_icsk_rcu'
> > +  - 'intlist__for_each_entry'
> > +  - 'intlist__for_each_entry_safe'
> > +  - 'kcore_copy__for_each_phdr'
> > +  - 'key_for_each'
> > +  - 'key_for_each_safe'
> > +  - 'klp_for_each_func'
> > +  - 'klp_for_each_func_safe'
> > +  - 'klp_for_each_func_static'
> > +  - 'klp_for_each_object'
> > +  - 'klp_for_each_object_safe'
> > +  - 'klp_for_each_object_static'
> > +  - 'kunit_suite_for_each_test_case'
> > +  - 'kvm_for_each_memslot'
> > +  - 'kvm_for_each_memslot_in_gfn_range'
> > +  - 'kvm_for_each_vcpu'
> > +  - 'libbpf_nla_for_each_attr'
> > +  - 'list_for_each'
> > +  - 'list_for_each_codec'
> > +  - 'list_for_each_codec_safe'
> > +  - 'list_for_each_continue'
> > +  - 'list_for_each_entry'
> > +  - 'list_for_each_entry_continue'
> > +  - 'list_for_each_entry_continue_rcu'
> > +  - 'list_for_each_entry_continue_reverse'
> > +  - 'list_for_each_entry_from'
> > +  - 'list_for_each_entry_from_rcu'
> > +  - 'list_for_each_entry_from_reverse'
> > +  - 'list_for_each_entry_lockless'
> > +  - 'list_for_each_entry_rcu'
> > +  - 'list_for_each_entry_reverse'
> > +  - 'list_for_each_entry_safe'
> > +  - 'list_for_each_entry_safe_continue'
> > +  - 'list_for_each_entry_safe_from'
> > +  - 'list_for_each_entry_safe_reverse'
> > +  - 'list_for_each_entry_srcu'
> > +  - 'list_for_each_from'
> > +  - 'list_for_each_prev'
> > +  - 'list_for_each_prev_safe'
> > +  - 'list_for_each_safe'
> > +  - 'llist_for_each'
> > +  - 'llist_for_each_entry'
> > +  - 'llist_for_each_entry_safe'
> > +  - 'llist_for_each_safe'
> > +  - 'map__for_each_symbol'
> > +  - 'map__for_each_symbol_by_name'
> > +  - 'map_for_each_event'
> > +  - 'map_for_each_metric'
> > +  - 'maps__for_each_entry'
> > +  - 'maps__for_each_entry_safe'
> > +  - 'mci_for_each_dimm'
> > +  - 'media_device_for_each_entity'
> > +  - 'media_device_for_each_intf'
> > +  - 'media_device_for_each_link'
> > +  - 'media_device_for_each_pad'
> > +  - 'msi_for_each_desc'
> > +  - 'nanddev_io_for_each_page'
> > +  - 'netdev_for_each_lower_dev'
> > +  - 'netdev_for_each_lower_private'
> > +  - 'netdev_for_each_lower_private_rcu'
> > +  - 'netdev_for_each_mc_addr'
> > +  - 'netdev_for_each_uc_addr'
> > +  - 'netdev_for_each_upper_dev_rcu'
> > +  - 'netdev_hw_addr_list_for_each'
> > +  - 'nft_rule_for_each_expr'
> > +  - 'nla_for_each_attr'
> > +  - 'nla_for_each_nested'
> > +  - 'nlmsg_for_each_attr'
> > +  - 'nlmsg_for_each_msg'
> > +  - 'nr_neigh_for_each'
> > +  - 'nr_neigh_for_each_safe'
> > +  - 'nr_node_for_each'
> > +  - 'nr_node_for_each_safe'
> > +  - 'of_for_each_phandle'
> > +  - 'of_property_for_each_string'
> > +  - 'of_property_for_each_u32'
> > +  - 'pci_bus_for_each_resource'
> > +  - 'pcl_for_each_chunk'
> > +  - 'pcl_for_each_segment'
> > +  - 'pcm_for_each_format'
> > +  - 'perf_config_items__for_each_entry'
> > +  - 'perf_config_sections__for_each_entry'
> > +  - 'perf_config_set__for_each_entry'
> > +  - 'perf_cpu_map__for_each_cpu'
> > +  - 'perf_evlist__for_each_entry'
> > +  - 'perf_evlist__for_each_entry_reverse'
> > +  - 'perf_evlist__for_each_entry_safe'
> > +  - 'perf_evlist__for_each_evsel'
> > +  - 'perf_evlist__for_each_mmap'
> > +  - 'perf_hpp_list__for_each_format'
> > +  - 'perf_hpp_list__for_each_format_safe'
> > +  - 'perf_hpp_list__for_each_sort_list'
> > +  - 'perf_hpp_list__for_each_sort_list_safe'
> > +  - 'perf_pmu__for_each_hybrid_pmu'
> > +  - 'ping_portaddr_for_each_entry'
> > +  - 'plist_for_each'
> > +  - 'plist_for_each_continue'
> > +  - 'plist_for_each_entry'
> > +  - 'plist_for_each_entry_continue'
> > +  - 'plist_for_each_entry_safe'
> > +  - 'plist_for_each_safe'
> > +  - 'pnp_for_each_card'
> > +  - 'pnp_for_each_dev'
> > +  - 'protocol_for_each_card'
> > +  - 'protocol_for_each_dev'
> > +  - 'queue_for_each_hw_ctx'
> > +  - 'radix_tree_for_each_slot'
> > +  - 'radix_tree_for_each_tagged'
> > +  - 'rb_for_each'
> > +  - 'rbtree_postorder_for_each_entry_safe'
> > +  - 'rdma_for_each_block'
> > +  - 'rdma_for_each_port'
> > +  - 'rdma_umem_for_each_dma_block'
> > +  - 'resort_rb__for_each_entry'
> > +  - 'resource_list_for_each_entry'
> > +  - 'resource_list_for_each_entry_safe'
> > +  - 'rhl_for_each_entry_rcu'
> > +  - 'rhl_for_each_rcu'
> > +  - 'rht_for_each'
> > +  - 'rht_for_each_entry'
> > +  - 'rht_for_each_entry_from'
> > +  - 'rht_for_each_entry_rcu'
> > +  - 'rht_for_each_entry_rcu_from'
> > +  - 'rht_for_each_entry_safe'
> > +  - 'rht_for_each_from'
> > +  - 'rht_for_each_rcu'
> > +  - 'rht_for_each_rcu_from'
> > +  - 'rq_for_each_bvec'
> > +  - 'rq_for_each_segment'
> > +  - 'rq_list_for_each'
> > +  - 'rq_list_for_each_safe'
> > +  - 'scsi_for_each_prot_sg'
> > +  - 'scsi_for_each_sg'
> > +  - 'sctp_for_each_hentry'
> > +  - 'sctp_skb_for_each'
> > +  - 'sec_for_each_insn'
> > +  - 'sec_for_each_insn_continue'
> > +  - 'sec_for_each_insn_from'
> > +  - 'shdma_for_each_chan'
> > +  - 'shost_for_each_device'
> > +  - 'sk_for_each'
> > +  - 'sk_for_each_bound'
> > +  - 'sk_for_each_entry_offset_rcu'
> > +  - 'sk_for_each_from'
> > +  - 'sk_for_each_rcu'
> > +  - 'sk_for_each_safe'
> > +  - 'sk_nulls_for_each'
> > +  - 'sk_nulls_for_each_from'
> > +  - 'sk_nulls_for_each_rcu'
> > +  - 'snd_array_for_each'
> > +  - 'snd_pcm_group_for_each_entry'
> > +  - 'snd_soc_dapm_widget_for_each_path'
> > +  - 'snd_soc_dapm_widget_for_each_path_safe'
> > +  - 'snd_soc_dapm_widget_for_each_sink_path'
> > +  - 'snd_soc_dapm_widget_for_each_source_path'
> > +  - 'strlist__for_each_entry'
> > +  - 'strlist__for_each_entry_safe'
> > +  - 'sym_for_each_insn'
> > +  - 'sym_for_each_insn_continue_reverse'
> > +  - 'symbols__for_each_entry'
> > +  - 'tb_property_for_each'
> > +  - 'tcf_act_for_each_action'
> > +  - 'tcf_exts_for_each_action'
> > +  - 'udp_portaddr_for_each_entry'
> > +  - 'udp_portaddr_for_each_entry_rcu'
> > +  - 'usb_hub_for_each_child'
> > +  - 'v4l2_device_for_each_subdev'
> > +  - 'v4l2_m2m_for_each_dst_buf'
> > +  - 'v4l2_m2m_for_each_dst_buf_safe'
> > +  - 'v4l2_m2m_for_each_src_buf'
> > +  - 'v4l2_m2m_for_each_src_buf_safe'
> > +  - 'virtio_device_for_each_vq'
> > +  - 'while_for_each_ftrace_op'
> > +  - 'xa_for_each'
> > +  - 'xa_for_each_marked'
> > +  - 'xa_for_each_range'
> > +  - 'xa_for_each_start'
> > +  - 'xas_for_each'
> > +  - 'xas_for_each_conflict'
> > +  - 'xas_for_each_marked'
> > +  - 'xbc_array_for_each_value'
> > +  - 'xbc_for_each_key_value'
> > +  - 'xbc_node_for_each_array_value'
> > +  - 'xbc_node_for_each_child'
> > +  - 'xbc_node_for_each_key_value'
> > +  - 'xbc_node_for_each_subkey'
> > +  - 'zorro_for_each_dev'
> > +
> > +IncludeBlocks: Preserve
> > +IncludeCategories:
> > +  - Regex: '.*'
> > +    Priority: 1
> > +IncludeIsMainRegex: '(Test)?$'
> > +IndentCaseLabels: false
> > +IndentGotoLabels: false
> > +IndentPPDirectives: None
> > +IndentWidth: 8
> > +IndentWrappedFunctionNames: false
> > +JavaScriptQuotes: Leave
> > +JavaScriptWrapImports: true
> > +KeepEmptyLinesAtTheStartOfBlocks: false
> > +MacroBlockBegin: ''
> > +MacroBlockEnd: ''
> > +MaxEmptyLinesToKeep: 1
> > +NamespaceIndentation: None
> > +ObjCBinPackProtocolList: Auto
> > +ObjCBlockIndentWidth: 8
> > +ObjCSpaceAfterProperty: true
> > +ObjCSpaceBeforeProtocolList: true
> > +
> > +# Taken from git's rules
> > +PenaltyBreakAssignment: 10
> > +PenaltyBreakBeforeFirstCallParameter: 30
> > +PenaltyBreakComment: 10
> > +PenaltyBreakFirstLessLess: 0
> > +PenaltyBreakString: 10
> > +PenaltyExcessCharacter: 100
> > +PenaltyReturnTypeOnItsOwnLine: 60
> > +
> > +PointerAlignment: Right
> > +ReflowComments: false
> > +SortIncludes: false
> > +SortUsingDeclarations: false
> > +SpaceAfterCStyleCast: false
> > +SpaceAfterTemplateKeyword: true
> > +SpaceBeforeAssignmentOperators: true
> > +SpaceBeforeCtorInitializerColon: true
> > +SpaceBeforeInheritanceColon: true
> > +SpaceBeforeParens: ControlStatementsExceptForEachMacros
> > +SpaceBeforeRangeBasedForLoopColon: true
> > +SpaceInEmptyParentheses: false
> > +SpacesBeforeTrailingComments: 1
> > +SpacesInAngles: false
> > +SpacesInContainerLiterals: false
> > +SpacesInCStyleCastParentheses: false
> > +SpacesInParentheses: false
> > +SpacesInSquareBrackets: false
> > +Standard: Cpp03
> > +TabWidth: 8
> > +UseTab: Always
> > +...
> > diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
> > index 6d1294ad..8d7320b7 100644
> > --- a/CONTRIBUTING.md
> > +++ b/CONTRIBUTING.md
> > @@ -10,8 +10,9 @@ improvements for documentation and new tools and testcases.
> >  The Code
> >  --------
> >
> > -- The code should follow kernel coding style:
> > -  https://www.kernel.org/doc/html/latest/process/coding-style.html
> > +- The code should follow [kernel coding style](coding-style). Before
> > +  sending out a patch, changes can be formatted with
> > +  [git-clang-format](git-clang-format).
> >
> >  - Testcases (subtests) have to use minus signs (-) as a word separator.
> >    The generated documentation contains glossary of commonly used terms.
> > @@ -30,9 +31,10 @@ The Code
> >    provided by the igt library. The semantic patch lib/igt.cocci can help with
> >    more automatic conversions.
> >
> > +[coding-style]: https://www.kernel.org/doc/html/latest/process/coding-style.html
> > +[git-clang-format]: https://github.com/llvm-mirror/clang/blob/master/tools/clang-format/git-clang-format
> >  [igt-describe]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
> >
> > -
> >  Sending Patches
> >  ---------------
> >
> > --
> > 2.37.1.359.gd136c6c3e2-goog
> >

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [igt-dev] [PATCH i-g-t v2] tooling: Add linux's .clang-format
  2022-07-27 10:52 ` Petri Latvala
  2022-07-27 20:10   ` Jim Shargo
@ 2022-07-27 20:21   ` Jim Shargo
  2022-07-28  7:55     ` Petri Latvala
  2022-07-29  9:21   ` [igt-dev] ✓ Fi.CI.BAT: success for tooling: Add linux's .clang-format (rev3) Patchwork
  2022-07-29 10:38   ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  3 siblings, 1 reply; 15+ messages in thread
From: Jim Shargo @ 2022-07-27 20:21 UTC (permalink / raw)
  To: Development mailing list for IGT GPU Tools, Petri Latvala,
	Arkadiusz Hiler
  Cc: Jim Shargo

As I was authoring my first patchset for IGT, I found myself fighting
the tooling a bit to get everything right. I had to add a bunch of extra
command line args to use my linux checkout's formatting rules to get the
style right.

I grabbed this from a recent checkout of torvald's repo.

The commit I used was: e0dccc3b76fb35bb257b4118367a883073d7390e

To make this discoverable to new contributors, this change:

  - Updates CONTRIBUTING.md with a link to git-clang-format, which is
  a useful tool for using clang-format from git just on a commit's
  changes.
  - Updates .editorconfig with a reference to .clang-format and a
  pointer to CONTRIBUTING.md

Changes made to the linux kernel style:

  - Reflowing comments, including multi-line comments (ReflowComments)
  - Support for magic code blocks (ForEachMacros, IfMacros)

Signed-off-by: Jim Shargo <jshargo@chromium.org>
---
V1 -> V2: Better support for IGT style and addressing comments

 .clang-format   | 176 ++++++++++++++++++++++++++++++++++++++++++++++++
 .editorconfig   |   6 +-
 CONTRIBUTING.md |   8 ++-
 3 files changed, 185 insertions(+), 5 deletions(-)
 create mode 100644 .clang-format

diff --git a/.clang-format b/.clang-format
new file mode 100644
index 00000000..da42bead
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,176 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# clang-format configuration file. Intended for clang-format >= 11.
+#
+# For more information, see:
+#
+#   Documentation/process/clang-format.rst
+#   https://clang.llvm.org/docs/ClangFormat.html
+#   https://clang.llvm.org/docs/ClangFormatStyleOptions.html
+#
+# This file was pulled from the linux kernel at revision
+# e0dccc3b76fb35bb257b4118367a883073d7390e.
+#
+# Changes made for IGT-specific styles should include a comment noting
+# the previous value with "kernel-value". This makes it clear what we
+# want to keep when updating this file.
+---
+AccessModifierOffset: -4
+AlignAfterOpenBracket: Align
+AlignConsecutiveAssignments: false
+AlignConsecutiveDeclarations: false
+AlignEscapedNewlines: Left
+AlignOperands: true
+AlignTrailingComments: false
+AllowAllParametersOfDeclarationOnNextLine: false
+AllowShortBlocksOnASingleLine: false
+AllowShortCaseLabelsOnASingleLine: false
+AllowShortFunctionsOnASingleLine: None
+AllowShortIfStatementsOnASingleLine: false
+AllowShortLoopsOnASingleLine: false
+AlwaysBreakAfterDefinitionReturnType: None
+AlwaysBreakAfterReturnType: None
+AlwaysBreakBeforeMultilineStrings: false
+AlwaysBreakTemplateDeclarations: false
+BinPackArguments: true
+BinPackParameters: true
+BraceWrapping:
+  AfterClass: false
+  AfterControlStatement: false
+  AfterEnum: false
+  AfterFunction: true
+  AfterNamespace: true
+  AfterObjCDeclaration: false
+  AfterStruct: false
+  AfterUnion: false
+  AfterExternBlock: false
+  BeforeCatch: false
+  BeforeElse: false
+  IndentBraces: false
+  SplitEmptyFunction: true
+  SplitEmptyRecord: true
+  SplitEmptyNamespace: true
+BreakBeforeBinaryOperators: None
+BreakBeforeBraces: Custom
+BreakBeforeInheritanceComma: false
+BreakBeforeTernaryOperators: false
+BreakConstructorInitializersBeforeComma: false
+BreakConstructorInitializers: BeforeComma
+BreakAfterJavaFieldAnnotations: false
+BreakStringLiterals: false
+ColumnLimit: 80
+CommentPragmas: '^ IWYU pragma:'
+CompactNamespaces: false
+ConstructorInitializerAllOnOneLineOrOnePerLine: false
+ConstructorInitializerIndentWidth: 8
+ContinuationIndentWidth: 8
+Cpp11BracedListStyle: false
+DerivePointerAlignment: false
+DisableFormat: false
+ExperimentalAutoDetectBinPacking: false
+FixNamespaceComments: false
+
+# Taken from:
+#   git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ tools/ \
+#   | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$,  - '\1'," \
+#   | LC_ALL=C sort -u
+ForEachMacros: # kernel-value: (long list removed)
+  # IGT rules, found via:
+  # git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ lib/ |
+  #     sed "s,^#define \([^(]\+\).*,'\1'," |
+  #     grep -v "__" |
+  #     sort -u    
+  - 'for_each_collection_data'
+  - 'for_each_combination'
+  - 'for_each_connected_output'
+  - 'for_each_connector_mode'
+  - 'for_each_ctx_cfg_engine'
+  - 'for_each_ctx_engine'
+  - 'for_each_format'
+  - 'for_each_if'
+  - 'for_each_memory_region'
+  - 'for_each_mmap_offset_type'
+  - 'for_each_physical_engine'
+  - 'for_each_physical_ring'
+  - 'for_each_pipe'
+  - 'for_each_pipe_static'
+  - 'for_each_pipe_with_single_output'
+  - 'for_each_pipe_with_valid_output'
+  - 'for_each_plane_on_pipe'
+  - 'for_each_prime_number'
+  - 'for_each_ring'
+  - 'for_each_subset'
+  - 'for_each_sysfs_gt_dirfd'
+  - 'for_each_sysfs_gt_path'
+  - 'for_each_valid_output_on_pipe'
+  - 'for_each_variation_nr'
+  - 'for_each_variation_r'
+  - 'igt_list_for_each_entry'
+  - 'igt_list_for_each_entry_reverse'
+  - 'igt_list_for_each_entry_safe'
+  - 'igt_list_for_each_entry_safe_reverse'
+
+IfMacros: # kernel-value: none
+  - 'igt_dynamic'
+  - 'igt_fixture'
+  - 'igt_fork'
+  - 'igt_subtest'
+  - 'igt_subtest_f'
+  - 'igt_subtest_group'
+  - 'igt_subtest_with_dynamic'
+  - 'igt_subtest_with_dynamic_f'
+  - 'igt_until_timeout'
+
+IncludeBlocks: Preserve
+IncludeCategories:
+  - Regex: '.*'
+    Priority: 1
+IncludeIsMainRegex: '(Test)?$'
+IndentCaseLabels: false
+IndentGotoLabels: false
+IndentPPDirectives: None
+IndentWidth: 8
+IndentWrappedFunctionNames: false
+JavaScriptQuotes: Leave
+JavaScriptWrapImports: true
+KeepEmptyLinesAtTheStartOfBlocks: false
+MacroBlockBegin: ''
+MacroBlockEnd: ''
+MaxEmptyLinesToKeep: 1
+NamespaceIndentation: None
+ObjCBinPackProtocolList: Auto
+ObjCBlockIndentWidth: 8
+ObjCSpaceAfterProperty: true
+ObjCSpaceBeforeProtocolList: true
+
+# Taken from git's rules
+PenaltyBreakAssignment: 10
+PenaltyBreakBeforeFirstCallParameter: 30
+PenaltyBreakComment: 10
+PenaltyBreakFirstLessLess: 0
+PenaltyBreakString: 10
+PenaltyExcessCharacter: 100
+PenaltyReturnTypeOnItsOwnLine: 60
+
+PointerAlignment: Right
+ReflowComments: true # kernel-value: false
+SortIncludes: false
+SortUsingDeclarations: false
+SpaceAfterCStyleCast: false
+SpaceAfterTemplateKeyword: true
+SpaceBeforeAssignmentOperators: true
+SpaceBeforeCtorInitializerColon: true
+SpaceBeforeInheritanceColon: true
+SpaceBeforeParens: ControlStatementsExceptForEachMacros
+SpaceBeforeRangeBasedForLoopColon: true
+SpaceInEmptyParentheses: false
+SpacesBeforeTrailingComments: 1
+SpacesInAngles: false
+SpacesInContainerLiterals: false
+SpacesInCStyleCastParentheses: false
+SpacesInParentheses: false
+SpacesInSquareBrackets: false
+Standard: Cpp03
+TabWidth: 8
+UseTab: Always
+...
diff --git a/.editorconfig b/.editorconfig
index 7b7f1375..5c7e31d3 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,5 +1,7 @@
-# To use this config in your editor, follow the instructions at:
-# http://editorconfig.org
+# To use this config in your editor, follow the instructions at
+# http://editorconfig.org. You can also use "clang-format" for new C
+# code (see CONTRIBUTING.md for suggestions and .clang-format for more
+# details).
 
 root = true
 
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6d1294ad..8d7320b7 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -10,8 +10,9 @@ improvements for documentation and new tools and testcases.
 The Code
 --------
 
-- The code should follow kernel coding style:
-  https://www.kernel.org/doc/html/latest/process/coding-style.html
+- The code should follow [kernel coding style](coding-style). Before
+  sending out a patch, changes can be formatted with
+  [git-clang-format](git-clang-format).
 
 - Testcases (subtests) have to use minus signs (-) as a word separator.
   The generated documentation contains glossary of commonly used terms.
@@ -30,9 +31,10 @@ The Code
   provided by the igt library. The semantic patch lib/igt.cocci can help with
   more automatic conversions.
 
+[coding-style]: https://www.kernel.org/doc/html/latest/process/coding-style.html
+[git-clang-format]: https://github.com/llvm-mirror/clang/blob/master/tools/clang-format/git-clang-format
 [igt-describe]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
 
-
 Sending Patches
 ---------------
 
-- 
2.37.1.359.gd136c6c3e2-goog

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v2] tooling: Add linux's .clang-format
  2022-07-27 20:21   ` [igt-dev] [PATCH i-g-t v2] " Jim Shargo
@ 2022-07-28  7:55     ` Petri Latvala
  2022-07-28 17:55       ` Jim Shargo
  2022-07-28 17:57       ` [igt-dev] [PATCH i-g-t v3] " Jim Shargo
  0 siblings, 2 replies; 15+ messages in thread
From: Petri Latvala @ 2022-07-28  7:55 UTC (permalink / raw)
  To: Jim Shargo; +Cc: Development mailing list for IGT GPU Tools

On Wed, Jul 27, 2022 at 04:21:25PM -0400, Jim Shargo wrote:
> As I was authoring my first patchset for IGT, I found myself fighting
> the tooling a bit to get everything right. I had to add a bunch of extra
> command line args to use my linux checkout's formatting rules to get the
> style right.
> 
> I grabbed this from a recent checkout of torvald's repo.
> 
> The commit I used was: e0dccc3b76fb35bb257b4118367a883073d7390e
> 
> To make this discoverable to new contributors, this change:
> 
>   - Updates CONTRIBUTING.md with a link to git-clang-format, which is
>   a useful tool for using clang-format from git just on a commit's
>   changes.
>   - Updates .editorconfig with a reference to .clang-format and a
>   pointer to CONTRIBUTING.md
> 
> Changes made to the linux kernel style:
> 
>   - Reflowing comments, including multi-line comments (ReflowComments)
>   - Support for magic code blocks (ForEachMacros, IfMacros)
> 
> Signed-off-by: Jim Shargo <jshargo@chromium.org>
> ---
> V1 -> V2: Better support for IGT style and addressing comments
> 
>  .clang-format   | 176 ++++++++++++++++++++++++++++++++++++++++++++++++
>  .editorconfig   |   6 +-
>  CONTRIBUTING.md |   8 ++-
>  3 files changed, 185 insertions(+), 5 deletions(-)
>  create mode 100644 .clang-format
> 
> diff --git a/.clang-format b/.clang-format
> new file mode 100644
> index 00000000..da42bead
> --- /dev/null
> +++ b/.clang-format
> @@ -0,0 +1,176 @@
> +# SPDX-License-Identifier: GPL-2.0
> +#
> +# clang-format configuration file. Intended for clang-format >= 11.
> +#
> +# For more information, see:
> +#
> +#   Documentation/process/clang-format.rst
> +#   https://clang.llvm.org/docs/ClangFormat.html
> +#   https://clang.llvm.org/docs/ClangFormatStyleOptions.html
> +#
> +# This file was pulled from the linux kernel at revision
> +# e0dccc3b76fb35bb257b4118367a883073d7390e.
> +#
> +# Changes made for IGT-specific styles should include a comment noting
> +# the previous value with "kernel-value". This makes it clear what we
> +# want to keep when updating this file.
> +---
> +AccessModifierOffset: -4
> +AlignAfterOpenBracket: Align
> +AlignConsecutiveAssignments: false
> +AlignConsecutiveDeclarations: false
> +AlignEscapedNewlines: Left
> +AlignOperands: true
> +AlignTrailingComments: false
> +AllowAllParametersOfDeclarationOnNextLine: false
> +AllowShortBlocksOnASingleLine: false
> +AllowShortCaseLabelsOnASingleLine: false
> +AllowShortFunctionsOnASingleLine: None
> +AllowShortIfStatementsOnASingleLine: false
> +AllowShortLoopsOnASingleLine: false
> +AlwaysBreakAfterDefinitionReturnType: None
> +AlwaysBreakAfterReturnType: None
> +AlwaysBreakBeforeMultilineStrings: false
> +AlwaysBreakTemplateDeclarations: false
> +BinPackArguments: true
> +BinPackParameters: true
> +BraceWrapping:
> +  AfterClass: false
> +  AfterControlStatement: false
> +  AfterEnum: false
> +  AfterFunction: true
> +  AfterNamespace: true
> +  AfterObjCDeclaration: false
> +  AfterStruct: false
> +  AfterUnion: false
> +  AfterExternBlock: false
> +  BeforeCatch: false
> +  BeforeElse: false
> +  IndentBraces: false
> +  SplitEmptyFunction: true
> +  SplitEmptyRecord: true
> +  SplitEmptyNamespace: true
> +BreakBeforeBinaryOperators: None
> +BreakBeforeBraces: Custom
> +BreakBeforeInheritanceComma: false
> +BreakBeforeTernaryOperators: false
> +BreakConstructorInitializersBeforeComma: false
> +BreakConstructorInitializers: BeforeComma
> +BreakAfterJavaFieldAnnotations: false
> +BreakStringLiterals: false
> +ColumnLimit: 80
> +CommentPragmas: '^ IWYU pragma:'
> +CompactNamespaces: false
> +ConstructorInitializerAllOnOneLineOrOnePerLine: false
> +ConstructorInitializerIndentWidth: 8
> +ContinuationIndentWidth: 8
> +Cpp11BracedListStyle: false
> +DerivePointerAlignment: false
> +DisableFormat: false
> +ExperimentalAutoDetectBinPacking: false
> +FixNamespaceComments: false
> +
> +# Taken from:
> +#   git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ tools/ \
> +#   | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$,  - '\1'," \
> +#   | LC_ALL=C sort -u
> +ForEachMacros: # kernel-value: (long list removed)
> +  # IGT rules, found via:
> +  # git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ lib/ |
> +  #     sed "s,^#define \([^(]\+\).*,'\1'," |
> +  #     grep -v "__" |
> +  #     sort -u    
> +  - 'for_each_collection_data'
> +  - 'for_each_combination'
> +  - 'for_each_connected_output'
> +  - 'for_each_connector_mode'
> +  - 'for_each_ctx_cfg_engine'
> +  - 'for_each_ctx_engine'
> +  - 'for_each_format'
> +  - 'for_each_if'
> +  - 'for_each_memory_region'
> +  - 'for_each_mmap_offset_type'
> +  - 'for_each_physical_engine'
> +  - 'for_each_physical_ring'
> +  - 'for_each_pipe'
> +  - 'for_each_pipe_static'
> +  - 'for_each_pipe_with_single_output'
> +  - 'for_each_pipe_with_valid_output'
> +  - 'for_each_plane_on_pipe'
> +  - 'for_each_prime_number'
> +  - 'for_each_ring'
> +  - 'for_each_subset'
> +  - 'for_each_sysfs_gt_dirfd'
> +  - 'for_each_sysfs_gt_path'
> +  - 'for_each_valid_output_on_pipe'
> +  - 'for_each_variation_nr'
> +  - 'for_each_variation_r'
> +  - 'igt_list_for_each_entry'
> +  - 'igt_list_for_each_entry_reverse'
> +  - 'igt_list_for_each_entry_safe'
> +  - 'igt_list_for_each_entry_safe_reverse'
> +
> +IfMacros: # kernel-value: none
> +  - 'igt_dynamic'
> +  - 'igt_fixture'
> +  - 'igt_fork'
> +  - 'igt_subtest'
> +  - 'igt_subtest_f'
> +  - 'igt_subtest_group'
> +  - 'igt_subtest_with_dynamic'
> +  - 'igt_subtest_with_dynamic_f'
> +  - 'igt_until_timeout'
> +
> +IncludeBlocks: Preserve
> +IncludeCategories:
> +  - Regex: '.*'
> +    Priority: 1
> +IncludeIsMainRegex: '(Test)?$'
> +IndentCaseLabels: false
> +IndentGotoLabels: false
> +IndentPPDirectives: None
> +IndentWidth: 8
> +IndentWrappedFunctionNames: false
> +JavaScriptQuotes: Leave
> +JavaScriptWrapImports: true
> +KeepEmptyLinesAtTheStartOfBlocks: false
> +MacroBlockBegin: ''
> +MacroBlockEnd: ''
> +MaxEmptyLinesToKeep: 1
> +NamespaceIndentation: None
> +ObjCBinPackProtocolList: Auto
> +ObjCBlockIndentWidth: 8
> +ObjCSpaceAfterProperty: true
> +ObjCSpaceBeforeProtocolList: true
> +
> +# Taken from git's rules
> +PenaltyBreakAssignment: 10
> +PenaltyBreakBeforeFirstCallParameter: 30
> +PenaltyBreakComment: 10
> +PenaltyBreakFirstLessLess: 0
> +PenaltyBreakString: 10
> +PenaltyExcessCharacter: 100
> +PenaltyReturnTypeOnItsOwnLine: 60
> +
> +PointerAlignment: Right
> +ReflowComments: true # kernel-value: false
> +SortIncludes: false
> +SortUsingDeclarations: false
> +SpaceAfterCStyleCast: false
> +SpaceAfterTemplateKeyword: true
> +SpaceBeforeAssignmentOperators: true
> +SpaceBeforeCtorInitializerColon: true
> +SpaceBeforeInheritanceColon: true
> +SpaceBeforeParens: ControlStatementsExceptForEachMacros
> +SpaceBeforeRangeBasedForLoopColon: true
> +SpaceInEmptyParentheses: false
> +SpacesBeforeTrailingComments: 1
> +SpacesInAngles: false
> +SpacesInContainerLiterals: false
> +SpacesInCStyleCastParentheses: false
> +SpacesInParentheses: false
> +SpacesInSquareBrackets: false
> +Standard: Cpp03
> +TabWidth: 8
> +UseTab: Always
> +...
> diff --git a/.editorconfig b/.editorconfig
> index 7b7f1375..5c7e31d3 100644
> --- a/.editorconfig
> +++ b/.editorconfig
> @@ -1,5 +1,7 @@
> -# To use this config in your editor, follow the instructions at:
> -# http://editorconfig.org
> +# To use this config in your editor, follow the instructions at
> +# http://editorconfig.org. You can also use "clang-format" for new C
> +# code (see CONTRIBUTING.md for suggestions and .clang-format for more
> +# details).
>  
>  root = true
>  
> diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
> index 6d1294ad..8d7320b7 100644
> --- a/CONTRIBUTING.md
> +++ b/CONTRIBUTING.md
> @@ -10,8 +10,9 @@ improvements for documentation and new tools and testcases.
>  The Code
>  --------
>  
> -- The code should follow kernel coding style:
> -  https://www.kernel.org/doc/html/latest/process/coding-style.html
> +- The code should follow [kernel coding style](coding-style). Before
> +  sending out a patch, changes can be formatted with
> +  [git-clang-format](git-clang-format).

I meant pointing to .editorconfig here.


-- 
Petri Latvala


>  
>  - Testcases (subtests) have to use minus signs (-) as a word separator.
>    The generated documentation contains glossary of commonly used terms.
> @@ -30,9 +31,10 @@ The Code
>    provided by the igt library. The semantic patch lib/igt.cocci can help with
>    more automatic conversions.
>  
> +[coding-style]: https://www.kernel.org/doc/html/latest/process/coding-style.html
> +[git-clang-format]: https://github.com/llvm-mirror/clang/blob/master/tools/clang-format/git-clang-format
>  [igt-describe]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
>  
> -
>  Sending Patches
>  ---------------
>  
> -- 
> 2.37.1.359.gd136c6c3e2-goog
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v2] tooling: Add linux's .clang-format
  2022-07-28  7:55     ` Petri Latvala
@ 2022-07-28 17:55       ` Jim Shargo
  2022-07-28 17:57       ` [igt-dev] [PATCH i-g-t v3] " Jim Shargo
  1 sibling, 0 replies; 15+ messages in thread
From: Jim Shargo @ 2022-07-28 17:55 UTC (permalink / raw)
  To: Petri Latvala; +Cc: Jim Shargo, Development mailing list for IGT GPU Tools

[-- Attachment #1: Type: text/plain, Size: 9510 bytes --]

Ah! Gotcha. v3 incoming.

On Thu, Jul 28, 2022 at 3:59 AM Petri Latvala <petri.latvala@intel.com>
wrote:

> On Wed, Jul 27, 2022 at 04:21:25PM -0400, Jim Shargo wrote:
> > As I was authoring my first patchset for IGT, I found myself fighting
> > the tooling a bit to get everything right. I had to add a bunch of extra
> > command line args to use my linux checkout's formatting rules to get the
> > style right.
> >
> > I grabbed this from a recent checkout of torvald's repo.
> >
> > The commit I used was: e0dccc3b76fb35bb257b4118367a883073d7390e
> >
> > To make this discoverable to new contributors, this change:
> >
> >   - Updates CONTRIBUTING.md with a link to git-clang-format, which is
> >   a useful tool for using clang-format from git just on a commit's
> >   changes.
> >   - Updates .editorconfig with a reference to .clang-format and a
> >   pointer to CONTRIBUTING.md
> >
> > Changes made to the linux kernel style:
> >
> >   - Reflowing comments, including multi-line comments (ReflowComments)
> >   - Support for magic code blocks (ForEachMacros, IfMacros)
> >
> > Signed-off-by: Jim Shargo <jshargo@chromium.org>
> > ---
> > V1 -> V2: Better support for IGT style and addressing comments
> >
> >  .clang-format   | 176 ++++++++++++++++++++++++++++++++++++++++++++++++
> >  .editorconfig   |   6 +-
> >  CONTRIBUTING.md |   8 ++-
> >  3 files changed, 185 insertions(+), 5 deletions(-)
> >  create mode 100644 .clang-format
> >
> > diff --git a/.clang-format b/.clang-format
> > new file mode 100644
> > index 00000000..da42bead
> > --- /dev/null
> > +++ b/.clang-format
> > @@ -0,0 +1,176 @@
> > +# SPDX-License-Identifier: GPL-2.0
> > +#
> > +# clang-format configuration file. Intended for clang-format >= 11.
> > +#
> > +# For more information, see:
> > +#
> > +#   Documentation/process/clang-format.rst
> > +#   https://clang.llvm.org/docs/ClangFormat.html
> > +#   https://clang.llvm.org/docs/ClangFormatStyleOptions.html
> > +#
> > +# This file was pulled from the linux kernel at revision
> > +# e0dccc3b76fb35bb257b4118367a883073d7390e.
> > +#
> > +# Changes made for IGT-specific styles should include a comment noting
> > +# the previous value with "kernel-value". This makes it clear what we
> > +# want to keep when updating this file.
> > +---
> > +AccessModifierOffset: -4
> > +AlignAfterOpenBracket: Align
> > +AlignConsecutiveAssignments: false
> > +AlignConsecutiveDeclarations: false
> > +AlignEscapedNewlines: Left
> > +AlignOperands: true
> > +AlignTrailingComments: false
> > +AllowAllParametersOfDeclarationOnNextLine: false
> > +AllowShortBlocksOnASingleLine: false
> > +AllowShortCaseLabelsOnASingleLine: false
> > +AllowShortFunctionsOnASingleLine: None
> > +AllowShortIfStatementsOnASingleLine: false
> > +AllowShortLoopsOnASingleLine: false
> > +AlwaysBreakAfterDefinitionReturnType: None
> > +AlwaysBreakAfterReturnType: None
> > +AlwaysBreakBeforeMultilineStrings: false
> > +AlwaysBreakTemplateDeclarations: false
> > +BinPackArguments: true
> > +BinPackParameters: true
> > +BraceWrapping:
> > +  AfterClass: false
> > +  AfterControlStatement: false
> > +  AfterEnum: false
> > +  AfterFunction: true
> > +  AfterNamespace: true
> > +  AfterObjCDeclaration: false
> > +  AfterStruct: false
> > +  AfterUnion: false
> > +  AfterExternBlock: false
> > +  BeforeCatch: false
> > +  BeforeElse: false
> > +  IndentBraces: false
> > +  SplitEmptyFunction: true
> > +  SplitEmptyRecord: true
> > +  SplitEmptyNamespace: true
> > +BreakBeforeBinaryOperators: None
> > +BreakBeforeBraces: Custom
> > +BreakBeforeInheritanceComma: false
> > +BreakBeforeTernaryOperators: false
> > +BreakConstructorInitializersBeforeComma: false
> > +BreakConstructorInitializers: BeforeComma
> > +BreakAfterJavaFieldAnnotations: false
> > +BreakStringLiterals: false
> > +ColumnLimit: 80
> > +CommentPragmas: '^ IWYU pragma:'
> > +CompactNamespaces: false
> > +ConstructorInitializerAllOnOneLineOrOnePerLine: false
> > +ConstructorInitializerIndentWidth: 8
> > +ContinuationIndentWidth: 8
> > +Cpp11BracedListStyle: false
> > +DerivePointerAlignment: false
> > +DisableFormat: false
> > +ExperimentalAutoDetectBinPacking: false
> > +FixNamespaceComments: false
> > +
> > +# Taken from:
> > +#   git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/
> tools/ \
> > +#   | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$,  -
> '\1'," \
> > +#   | LC_ALL=C sort -u
> > +ForEachMacros: # kernel-value: (long list removed)
> > +  # IGT rules, found via:
> > +  # git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/
> lib/ |
> > +  #     sed "s,^#define \([^(]\+\).*,'\1'," |
> > +  #     grep -v "__" |
> > +  #     sort -u
> > +  - 'for_each_collection_data'
> > +  - 'for_each_combination'
> > +  - 'for_each_connected_output'
> > +  - 'for_each_connector_mode'
> > +  - 'for_each_ctx_cfg_engine'
> > +  - 'for_each_ctx_engine'
> > +  - 'for_each_format'
> > +  - 'for_each_if'
> > +  - 'for_each_memory_region'
> > +  - 'for_each_mmap_offset_type'
> > +  - 'for_each_physical_engine'
> > +  - 'for_each_physical_ring'
> > +  - 'for_each_pipe'
> > +  - 'for_each_pipe_static'
> > +  - 'for_each_pipe_with_single_output'
> > +  - 'for_each_pipe_with_valid_output'
> > +  - 'for_each_plane_on_pipe'
> > +  - 'for_each_prime_number'
> > +  - 'for_each_ring'
> > +  - 'for_each_subset'
> > +  - 'for_each_sysfs_gt_dirfd'
> > +  - 'for_each_sysfs_gt_path'
> > +  - 'for_each_valid_output_on_pipe'
> > +  - 'for_each_variation_nr'
> > +  - 'for_each_variation_r'
> > +  - 'igt_list_for_each_entry'
> > +  - 'igt_list_for_each_entry_reverse'
> > +  - 'igt_list_for_each_entry_safe'
> > +  - 'igt_list_for_each_entry_safe_reverse'
> > +
> > +IfMacros: # kernel-value: none
> > +  - 'igt_dynamic'
> > +  - 'igt_fixture'
> > +  - 'igt_fork'
> > +  - 'igt_subtest'
> > +  - 'igt_subtest_f'
> > +  - 'igt_subtest_group'
> > +  - 'igt_subtest_with_dynamic'
> > +  - 'igt_subtest_with_dynamic_f'
> > +  - 'igt_until_timeout'
> > +
> > +IncludeBlocks: Preserve
> > +IncludeCategories:
> > +  - Regex: '.*'
> > +    Priority: 1
> > +IncludeIsMainRegex: '(Test)?$'
> > +IndentCaseLabels: false
> > +IndentGotoLabels: false
> > +IndentPPDirectives: None
> > +IndentWidth: 8
> > +IndentWrappedFunctionNames: false
> > +JavaScriptQuotes: Leave
> > +JavaScriptWrapImports: true
> > +KeepEmptyLinesAtTheStartOfBlocks: false
> > +MacroBlockBegin: ''
> > +MacroBlockEnd: ''
> > +MaxEmptyLinesToKeep: 1
> > +NamespaceIndentation: None
> > +ObjCBinPackProtocolList: Auto
> > +ObjCBlockIndentWidth: 8
> > +ObjCSpaceAfterProperty: true
> > +ObjCSpaceBeforeProtocolList: true
> > +
> > +# Taken from git's rules
> > +PenaltyBreakAssignment: 10
> > +PenaltyBreakBeforeFirstCallParameter: 30
> > +PenaltyBreakComment: 10
> > +PenaltyBreakFirstLessLess: 0
> > +PenaltyBreakString: 10
> > +PenaltyExcessCharacter: 100
> > +PenaltyReturnTypeOnItsOwnLine: 60
> > +
> > +PointerAlignment: Right
> > +ReflowComments: true # kernel-value: false
> > +SortIncludes: false
> > +SortUsingDeclarations: false
> > +SpaceAfterCStyleCast: false
> > +SpaceAfterTemplateKeyword: true
> > +SpaceBeforeAssignmentOperators: true
> > +SpaceBeforeCtorInitializerColon: true
> > +SpaceBeforeInheritanceColon: true
> > +SpaceBeforeParens: ControlStatementsExceptForEachMacros
> > +SpaceBeforeRangeBasedForLoopColon: true
> > +SpaceInEmptyParentheses: false
> > +SpacesBeforeTrailingComments: 1
> > +SpacesInAngles: false
> > +SpacesInContainerLiterals: false
> > +SpacesInCStyleCastParentheses: false
> > +SpacesInParentheses: false
> > +SpacesInSquareBrackets: false
> > +Standard: Cpp03
> > +TabWidth: 8
> > +UseTab: Always
> > +...
> > diff --git a/.editorconfig b/.editorconfig
> > index 7b7f1375..5c7e31d3 100644
> > --- a/.editorconfig
> > +++ b/.editorconfig
> > @@ -1,5 +1,7 @@
> > -# To use this config in your editor, follow the instructions at:
> > -# http://editorconfig.org
> > +# To use this config in your editor, follow the instructions at
> > +# http://editorconfig.org. You can also use "clang-format" for new C
> > +# code (see CONTRIBUTING.md for suggestions and .clang-format for more
> > +# details).
> >
> >  root = true
> >
> > diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
> > index 6d1294ad..8d7320b7 100644
> > --- a/CONTRIBUTING.md
> > +++ b/CONTRIBUTING.md
> > @@ -10,8 +10,9 @@ improvements for documentation and new tools and
> testcases.
> >  The Code
> >  --------
> >
> > -- The code should follow kernel coding style:
> > -  https://www.kernel.org/doc/html/latest/process/coding-style.html
> > +- The code should follow [kernel coding style](coding-style). Before
> > +  sending out a patch, changes can be formatted with
> > +  [git-clang-format](git-clang-format).
>
> I meant pointing to .editorconfig here.
>
>
> --
> Petri Latvala
>
>
> >
> >  - Testcases (subtests) have to use minus signs (-) as a word separator.
> >    The generated documentation contains glossary of commonly used terms.
> > @@ -30,9 +31,10 @@ The Code
> >    provided by the igt library. The semantic patch lib/igt.cocci can
> help with
> >    more automatic conversions.
> >
> > +[coding-style]:
> https://www.kernel.org/doc/html/latest/process/coding-style.html
> > +[git-clang-format]:
> https://github.com/llvm-mirror/clang/blob/master/tools/clang-format/git-clang-format
> >  [igt-describe]:
> https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
> >
> > -
> >  Sending Patches
> >  ---------------
> >
> > --
> > 2.37.1.359.gd136c6c3e2-goog
> >
>

[-- Attachment #2: Type: text/html, Size: 12864 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [igt-dev] [PATCH i-g-t v3] tooling: Add linux's .clang-format
  2022-07-28  7:55     ` Petri Latvala
  2022-07-28 17:55       ` Jim Shargo
@ 2022-07-28 17:57       ` Jim Shargo
  2022-08-12 12:53         ` Petri Latvala
                           ` (2 more replies)
  1 sibling, 3 replies; 15+ messages in thread
From: Jim Shargo @ 2022-07-28 17:57 UTC (permalink / raw)
  To: Development mailing list for IGT GPU Tools, Petri Latvala,
	Arkadiusz Hiler
  Cc: Jim Shargo

As I was authoring my first patchset for IGT, I found myself fighting
the tooling a bit to get everything right. I had to add a bunch of extra
command line args to use my linux checkout's formatting rules to get the
style right.

I grabbed this from a recent checkout of torvald's repo.

The commit I used was: e0dccc3b76fb35bb257b4118367a883073d7390e

To make this discoverable to new contributors, this change also
updates CONTRIBUTING.md with:

  - A link to git-clang-format, which is a useful tool for using
  clang-format from git just on a commit's changes
  - A link to .editorconfig to make it more discoverable

Changes made to the linux kernel style:

  - Reflowing comments, including multi-line comments (ReflowComments)
  - Support for magic code blocks (ForEachMacros, IfMacros)

Signed-off-by: Jim Shargo <jshargo@chromium.org>
---
V2 -> V3: Update CONTRIBUTING.md with a note about .editorconfig,
          remove reference to .clang-format from the .editorconfig
V1 -> V2: Better support for IGT style and addressing comments

 .clang-format   | 176 ++++++++++++++++++++++++++++++++++++++++++++++++
 CONTRIBUTING.md |   9 ++-
 2 files changed, 182 insertions(+), 3 deletions(-)
 create mode 100644 .clang-format

diff --git a/.clang-format b/.clang-format
new file mode 100644
index 00000000..da42bead
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,176 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# clang-format configuration file. Intended for clang-format >= 11.
+#
+# For more information, see:
+#
+#   Documentation/process/clang-format.rst
+#   https://clang.llvm.org/docs/ClangFormat.html
+#   https://clang.llvm.org/docs/ClangFormatStyleOptions.html
+#
+# This file was pulled from the linux kernel at revision
+# e0dccc3b76fb35bb257b4118367a883073d7390e.
+#
+# Changes made for IGT-specific styles should include a comment noting
+# the previous value with "kernel-value". This makes it clear what we
+# want to keep when updating this file.
+---
+AccessModifierOffset: -4
+AlignAfterOpenBracket: Align
+AlignConsecutiveAssignments: false
+AlignConsecutiveDeclarations: false
+AlignEscapedNewlines: Left
+AlignOperands: true
+AlignTrailingComments: false
+AllowAllParametersOfDeclarationOnNextLine: false
+AllowShortBlocksOnASingleLine: false
+AllowShortCaseLabelsOnASingleLine: false
+AllowShortFunctionsOnASingleLine: None
+AllowShortIfStatementsOnASingleLine: false
+AllowShortLoopsOnASingleLine: false
+AlwaysBreakAfterDefinitionReturnType: None
+AlwaysBreakAfterReturnType: None
+AlwaysBreakBeforeMultilineStrings: false
+AlwaysBreakTemplateDeclarations: false
+BinPackArguments: true
+BinPackParameters: true
+BraceWrapping:
+  AfterClass: false
+  AfterControlStatement: false
+  AfterEnum: false
+  AfterFunction: true
+  AfterNamespace: true
+  AfterObjCDeclaration: false
+  AfterStruct: false
+  AfterUnion: false
+  AfterExternBlock: false
+  BeforeCatch: false
+  BeforeElse: false
+  IndentBraces: false
+  SplitEmptyFunction: true
+  SplitEmptyRecord: true
+  SplitEmptyNamespace: true
+BreakBeforeBinaryOperators: None
+BreakBeforeBraces: Custom
+BreakBeforeInheritanceComma: false
+BreakBeforeTernaryOperators: false
+BreakConstructorInitializersBeforeComma: false
+BreakConstructorInitializers: BeforeComma
+BreakAfterJavaFieldAnnotations: false
+BreakStringLiterals: false
+ColumnLimit: 80
+CommentPragmas: '^ IWYU pragma:'
+CompactNamespaces: false
+ConstructorInitializerAllOnOneLineOrOnePerLine: false
+ConstructorInitializerIndentWidth: 8
+ContinuationIndentWidth: 8
+Cpp11BracedListStyle: false
+DerivePointerAlignment: false
+DisableFormat: false
+ExperimentalAutoDetectBinPacking: false
+FixNamespaceComments: false
+
+# Taken from:
+#   git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ tools/ \
+#   | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$,  - '\1'," \
+#   | LC_ALL=C sort -u
+ForEachMacros: # kernel-value: (long list removed)
+  # IGT rules, found via:
+  # git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ lib/ |
+  #     sed "s,^#define \([^(]\+\).*,'\1'," |
+  #     grep -v "__" |
+  #     sort -u    
+  - 'for_each_collection_data'
+  - 'for_each_combination'
+  - 'for_each_connected_output'
+  - 'for_each_connector_mode'
+  - 'for_each_ctx_cfg_engine'
+  - 'for_each_ctx_engine'
+  - 'for_each_format'
+  - 'for_each_if'
+  - 'for_each_memory_region'
+  - 'for_each_mmap_offset_type'
+  - 'for_each_physical_engine'
+  - 'for_each_physical_ring'
+  - 'for_each_pipe'
+  - 'for_each_pipe_static'
+  - 'for_each_pipe_with_single_output'
+  - 'for_each_pipe_with_valid_output'
+  - 'for_each_plane_on_pipe'
+  - 'for_each_prime_number'
+  - 'for_each_ring'
+  - 'for_each_subset'
+  - 'for_each_sysfs_gt_dirfd'
+  - 'for_each_sysfs_gt_path'
+  - 'for_each_valid_output_on_pipe'
+  - 'for_each_variation_nr'
+  - 'for_each_variation_r'
+  - 'igt_list_for_each_entry'
+  - 'igt_list_for_each_entry_reverse'
+  - 'igt_list_for_each_entry_safe'
+  - 'igt_list_for_each_entry_safe_reverse'
+
+IfMacros: # kernel-value: none
+  - 'igt_dynamic'
+  - 'igt_fixture'
+  - 'igt_fork'
+  - 'igt_subtest'
+  - 'igt_subtest_f'
+  - 'igt_subtest_group'
+  - 'igt_subtest_with_dynamic'
+  - 'igt_subtest_with_dynamic_f'
+  - 'igt_until_timeout'
+
+IncludeBlocks: Preserve
+IncludeCategories:
+  - Regex: '.*'
+    Priority: 1
+IncludeIsMainRegex: '(Test)?$'
+IndentCaseLabels: false
+IndentGotoLabels: false
+IndentPPDirectives: None
+IndentWidth: 8
+IndentWrappedFunctionNames: false
+JavaScriptQuotes: Leave
+JavaScriptWrapImports: true
+KeepEmptyLinesAtTheStartOfBlocks: false
+MacroBlockBegin: ''
+MacroBlockEnd: ''
+MaxEmptyLinesToKeep: 1
+NamespaceIndentation: None
+ObjCBinPackProtocolList: Auto
+ObjCBlockIndentWidth: 8
+ObjCSpaceAfterProperty: true
+ObjCSpaceBeforeProtocolList: true
+
+# Taken from git's rules
+PenaltyBreakAssignment: 10
+PenaltyBreakBeforeFirstCallParameter: 30
+PenaltyBreakComment: 10
+PenaltyBreakFirstLessLess: 0
+PenaltyBreakString: 10
+PenaltyExcessCharacter: 100
+PenaltyReturnTypeOnItsOwnLine: 60
+
+PointerAlignment: Right
+ReflowComments: true # kernel-value: false
+SortIncludes: false
+SortUsingDeclarations: false
+SpaceAfterCStyleCast: false
+SpaceAfterTemplateKeyword: true
+SpaceBeforeAssignmentOperators: true
+SpaceBeforeCtorInitializerColon: true
+SpaceBeforeInheritanceColon: true
+SpaceBeforeParens: ControlStatementsExceptForEachMacros
+SpaceBeforeRangeBasedForLoopColon: true
+SpaceInEmptyParentheses: false
+SpacesBeforeTrailingComments: 1
+SpacesInAngles: false
+SpacesInContainerLiterals: false
+SpacesInCStyleCastParentheses: false
+SpacesInParentheses: false
+SpacesInSquareBrackets: false
+Standard: Cpp03
+TabWidth: 8
+UseTab: Always
+...
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6d1294ad..f2af5a18 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -10,8 +10,10 @@ improvements for documentation and new tools and testcases.
 The Code
 --------
 
-- The code should follow kernel coding style:
-  https://www.kernel.org/doc/html/latest/process/coding-style.html
+- The code should follow [kernel coding style](coding-style). Before
+  sending out a patch, changes can be formatted with
+  [git-clang-format](git-clang-format). Editors can be configured
+  using .editorconfig for additional style support.
 
 - Testcases (subtests) have to use minus signs (-) as a word separator.
   The generated documentation contains glossary of commonly used terms.
@@ -30,9 +32,10 @@ The Code
   provided by the igt library. The semantic patch lib/igt.cocci can help with
   more automatic conversions.
 
+[coding-style]: https://www.kernel.org/doc/html/latest/process/coding-style.html
+[git-clang-format]: https://github.com/llvm-mirror/clang/blob/master/tools/clang-format/git-clang-format
 [igt-describe]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
 
-
 Sending Patches
 ---------------
 
-- 
2.37.1.455.g008518b4e5-goog

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for tooling: Add linux's .clang-format (rev3)
  2022-07-27 10:52 ` Petri Latvala
  2022-07-27 20:10   ` Jim Shargo
  2022-07-27 20:21   ` [igt-dev] [PATCH i-g-t v2] " Jim Shargo
@ 2022-07-29  9:21   ` Patchwork
  2022-07-29 10:38   ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  3 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2022-07-29  9:21 UTC (permalink / raw)
  To: Jim Shargo; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 8571 bytes --]

== Series Details ==

Series: tooling: Add linux's .clang-format (rev3)
URL   : https://patchwork.freedesktop.org/series/106835/
State : success

== Summary ==

CI Bug Log - changes from IGT_6603 -> IGTPW_7582
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/index.html

Participating hosts (42 -> 41)
------------------------------

  Additional (2): bat-rplp-1 fi-icl-u2 
  Missing    (3): fi-cml-u2 fi-bxt-dsi fi-bdw-samus 

Known issues
------------

  Here are the changes found in IGTPW_7582 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_huc_copy@huc-copy:
    - fi-icl-u2:          NOTRUN -> [SKIP][1] ([i915#2190])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/fi-icl-u2/igt@gem_huc_copy@huc-copy.html

  * igt@i915_selftest@live@late_gt_pm:
    - fi-cfl-8109u:       [PASS][2] -> [DMESG-WARN][3] ([i915#5904]) +29 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - fi-cfl-8109u:       [PASS][4] -> [DMESG-WARN][5] ([i915#5904] / [i915#62])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/fi-cfl-8109u/igt@i915_suspend@basic-s2idle-without-i915.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/fi-cfl-8109u/igt@i915_suspend@basic-s2idle-without-i915.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-hsw-4770:        NOTRUN -> [SKIP][6] ([fdo#109271] / [fdo#111827])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/fi-hsw-4770/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-icl-u2:          NOTRUN -> [SKIP][7] ([fdo#111827]) +7 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor:
    - fi-icl-u2:          NOTRUN -> [SKIP][8] ([i915#4103])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html

  * igt@kms_force_connector_basic@force-connector-state:
    - fi-icl-u2:          NOTRUN -> [WARN][9] ([i915#6008])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/fi-icl-u2/igt@kms_force_connector_basic@force-connector-state.html

  * igt@kms_force_connector_basic@force-load-detect:
    - fi-icl-u2:          NOTRUN -> [SKIP][10] ([fdo#109285])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/fi-icl-u2/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-cfl-8109u:       [PASS][11] -> [DMESG-FAIL][12] ([i915#62]) +1 similar issue
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_pipe_crc_basic@hang-read-crc@pipe-c-dp-2:
    - fi-icl-u2:          NOTRUN -> [INCOMPLETE][13] ([i915#4890])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/fi-icl-u2/igt@kms_pipe_crc_basic@hang-read-crc@pipe-c-dp-2.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1:
    - fi-cfl-8109u:       [PASS][14] -> [DMESG-WARN][15] ([i915#62]) +10 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/fi-cfl-8109u/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/fi-cfl-8109u/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1.html

  * igt@runner@aborted:
    - fi-icl-u2:          NOTRUN -> [FAIL][16] ([i915#4312])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/fi-icl-u2/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@gem_ringfill@basic-all:
    - {bat-dg2-9}:        [FAIL][17] ([i915#5886]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/bat-dg2-9/igt@gem_ringfill@basic-all.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/bat-dg2-9/igt@gem_ringfill@basic-all.html

  * igt@i915_selftest@live@gt_pm:
    - {bat-rpls-1}:       [INCOMPLETE][19] -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/bat-rpls-1/igt@i915_selftest@live@gt_pm.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/bat-rpls-1/igt@i915_selftest@live@gt_pm.html

  * igt@i915_selftest@live@hangcheck:
    - fi-hsw-4770:        [INCOMPLETE][21] ([i915#4785]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@perf:
    - {bat-dg2-9}:        [DMESG-WARN][23] ([i915#5763]) -> [PASS][24] +2 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/bat-dg2-9/igt@i915_selftest@live@perf.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/bat-dg2-9/igt@i915_selftest@live@perf.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size:
    - fi-bsw-kefka:       [FAIL][25] ([i915#6298]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#4093]: https://gitlab.freedesktop.org/drm/intel/issues/4093
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785
  [i915#4890]: https://gitlab.freedesktop.org/drm/intel/issues/4890
  [i915#5537]: https://gitlab.freedesktop.org/drm/intel/issues/5537
  [i915#5763]: https://gitlab.freedesktop.org/drm/intel/issues/5763
  [i915#5886]: https://gitlab.freedesktop.org/drm/intel/issues/5886
  [i915#5903]: https://gitlab.freedesktop.org/drm/intel/issues/5903
  [i915#5904]: https://gitlab.freedesktop.org/drm/intel/issues/5904
  [i915#5950]: https://gitlab.freedesktop.org/drm/intel/issues/5950
  [i915#6008]: https://gitlab.freedesktop.org/drm/intel/issues/6008
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298
  [i915#6380]: https://gitlab.freedesktop.org/drm/intel/issues/6380


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_6603 -> IGTPW_7582

  CI-20190529: 20190529
  CI_DRM_11946: 0e9c43d76a145712da46e935d429ce2a3eea80e8 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7582: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/index.html
  IGT_6603: d851d950cf805f3021d67666db67e24fae1b99ee @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/index.html

[-- Attachment #2: Type: text/html, Size: 8721 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [igt-dev] ✗ Fi.CI.IGT: failure for tooling: Add linux's .clang-format (rev3)
  2022-07-27 10:52 ` Petri Latvala
                     ` (2 preceding siblings ...)
  2022-07-29  9:21   ` [igt-dev] ✓ Fi.CI.BAT: success for tooling: Add linux's .clang-format (rev3) Patchwork
@ 2022-07-29 10:38   ` Patchwork
  2022-08-02 22:25     ` Jim Shargo
  3 siblings, 1 reply; 15+ messages in thread
From: Patchwork @ 2022-07-29 10:38 UTC (permalink / raw)
  To: Jim Shargo; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 52183 bytes --]

== Series Details ==

Series: tooling: Add linux's .clang-format (rev3)
URL   : https://patchwork.freedesktop.org/series/106835/
State : failure

== Summary ==

CI Bug Log - changes from IGT_6603_full -> IGTPW_7582_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_7582_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_7582_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/index.html

Participating hosts (7 -> 10)
------------------------------

  Additional (3): shard-rkl shard-dg1 shard-tglu 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_7582_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_flip@flip-vs-modeset-vs-hang@c-dp1:
    - shard-apl:          [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-apl1/igt@kms_flip@flip-vs-modeset-vs-hang@c-dp1.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl3/igt@kms_flip@flip-vs-modeset-vs-hang@c-dp1.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@kms_sysfs_edid_timing:
    - {shard-dg1}:        NOTRUN -> [FAIL][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-dg1-14/igt@kms_sysfs_edid_timing.html

  
Known issues
------------

  Here are the changes found in IGTPW_7582_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_busy@close-race:
    - shard-snb:          [PASS][4] -> [INCOMPLETE][5] ([i915#6234])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-snb6/igt@gem_busy@close-race.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-snb4/igt@gem_busy@close-race.html

  * igt@gem_ctx_persistence@engines-hostile:
    - shard-snb:          NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#1099]) +1 similar issue
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-snb5/igt@gem_ctx_persistence@engines-hostile.html

  * igt@gem_ctx_sseu@engines:
    - shard-tglb:         NOTRUN -> [SKIP][7] ([i915#280]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb7/igt@gem_ctx_sseu@engines.html

  * igt@gem_exec_balancer@parallel-contexts:
    - shard-iclb:         [PASS][8] -> [SKIP][9] ([i915#4525]) +1 similar issue
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-iclb2/igt@gem_exec_balancer@parallel-contexts.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb8/igt@gem_exec_balancer@parallel-contexts.html

  * igt@gem_exec_balancer@parallel-ordering:
    - shard-tglb:         NOTRUN -> [FAIL][10] ([i915#6117])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb3/igt@gem_exec_balancer@parallel-ordering.html
    - shard-iclb:         NOTRUN -> [SKIP][11] ([i915#4525]) +1 similar issue
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb5/igt@gem_exec_balancer@parallel-ordering.html
    - shard-kbl:          NOTRUN -> [FAIL][12] ([i915#6117])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl4/igt@gem_exec_balancer@parallel-ordering.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-glk:          [PASS][13] -> [FAIL][14] ([i915#2846])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-glk9/igt@gem_exec_fair@basic-deadline.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-glk9/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-tglb:         [PASS][15] -> [FAIL][16] ([i915#2842])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-tglb6/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb2/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-sync@rcs0:
    - shard-kbl:          [PASS][17] -> [SKIP][18] ([fdo#109271])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-kbl4/igt@gem_exec_fair@basic-sync@rcs0.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl1/igt@gem_exec_fair@basic-sync@rcs0.html

  * igt@gem_lmem_swapping@heavy-verify-multi-ccs:
    - shard-tglb:         NOTRUN -> [SKIP][19] ([i915#4613])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb6/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html
    - shard-glk:          NOTRUN -> [SKIP][20] ([fdo#109271] / [i915#4613])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-glk8/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html
    - shard-iclb:         NOTRUN -> [SKIP][21] ([i915#4613])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb3/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html
    - shard-kbl:          NOTRUN -> [SKIP][22] ([fdo#109271] / [i915#4613])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl4/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - shard-apl:          NOTRUN -> [SKIP][23] ([fdo#109271] / [i915#4613]) +1 similar issue
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl1/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_pxp@create-regular-context-2:
    - shard-tglb:         NOTRUN -> [SKIP][24] ([i915#4270])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb8/igt@gem_pxp@create-regular-context-2.html
    - shard-iclb:         NOTRUN -> [SKIP][25] ([i915#4270])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb7/igt@gem_pxp@create-regular-context-2.html

  * igt@gem_render_copy@x-tiled-to-vebox-yf-tiled:
    - shard-iclb:         NOTRUN -> [SKIP][26] ([i915#768])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb6/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html

  * igt@gen7_exec_parse@cmd-crossing-page:
    - shard-tglb:         NOTRUN -> [SKIP][27] ([fdo#109289]) +2 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb5/igt@gen7_exec_parse@cmd-crossing-page.html
    - shard-iclb:         NOTRUN -> [SKIP][28] ([fdo#109289]) +1 similar issue
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb6/igt@gen7_exec_parse@cmd-crossing-page.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-glk:          [PASS][29] -> [DMESG-WARN][30] ([i915#5566] / [i915#716])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-glk7/igt@gen9_exec_parse@allowed-all.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-glk9/igt@gen9_exec_parse@allowed-all.html

  * igt@gen9_exec_parse@basic-rejected-ctx-param:
    - shard-snb:          NOTRUN -> [SKIP][31] ([fdo#109271]) +119 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-snb2/igt@gen9_exec_parse@basic-rejected-ctx-param.html

  * igt@gen9_exec_parse@unaligned-access:
    - shard-tglb:         NOTRUN -> [SKIP][32] ([i915#2527] / [i915#2856]) +1 similar issue
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb1/igt@gen9_exec_parse@unaligned-access.html
    - shard-iclb:         NOTRUN -> [SKIP][33] ([i915#2856]) +1 similar issue
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb2/igt@gen9_exec_parse@unaligned-access.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-snb:          [PASS][34] -> [INCOMPLETE][35] ([i915#5178])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-snb6/igt@i915_module_load@reload-with-fault-injection.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-snb5/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp:
    - shard-apl:          NOTRUN -> [SKIP][36] ([fdo#109271] / [i915#1937])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl3/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp.html
    - shard-kbl:          NOTRUN -> [SKIP][37] ([fdo#109271] / [i915#1937])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl7/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp.html

  * igt@i915_pm_rpm@gem-execbuf-stress-pc8:
    - shard-glk:          NOTRUN -> [SKIP][38] ([fdo#109271]) +72 similar issues
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-glk5/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html
    - shard-iclb:         NOTRUN -> [SKIP][39] ([fdo#109293] / [fdo#109506])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb7/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html
    - shard-tglb:         NOTRUN -> [SKIP][40] ([fdo#109506] / [i915#2411])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb3/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][41] ([i915#5286]) +1 similar issue
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb1/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
    - shard-iclb:         NOTRUN -> [SKIP][42] ([i915#5286]) +1 similar issue
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb7/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@linear-32bpp-rotate-270:
    - shard-tglb:         NOTRUN -> [SKIP][43] ([fdo#111614]) +1 similar issue
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb8/igt@kms_big_fb@linear-32bpp-rotate-270.html
    - shard-iclb:         NOTRUN -> [SKIP][44] ([fdo#110725] / [fdo#111614]) +1 similar issue
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb7/igt@kms_big_fb@linear-32bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-0:
    - shard-iclb:         NOTRUN -> [SKIP][45] ([fdo#110723]) +1 similar issue
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb4/igt@kms_big_fb@yf-tiled-64bpp-rotate-0.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-90:
    - shard-kbl:          NOTRUN -> [SKIP][46] ([fdo#109271]) +115 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl1/igt@kms_big_fb@yf-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-tglb:         NOTRUN -> [SKIP][47] ([fdo#111615]) +2 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb3/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][48] ([fdo#111615] / [i915#3689]) +4 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb1/igt@kms_ccs@pipe-a-ccs-on-another-bo-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs:
    - shard-iclb:         NOTRUN -> [SKIP][49] ([fdo#109278]) +16 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb1/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs.html

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
    - shard-iclb:         NOTRUN -> [SKIP][50] ([fdo#109278] / [i915#3886]) +2 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb8/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html
    - shard-kbl:          NOTRUN -> [SKIP][51] ([fdo#109271] / [i915#3886]) +2 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl6/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_mc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][52] ([fdo#109271] / [i915#3886]) +4 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl6/igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-crc-primary-rotation-180-4_tiled_dg2_rc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][53] ([i915#3689] / [i915#6095]) +2 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb8/igt@kms_ccs@pipe-c-crc-primary-rotation-180-4_tiled_dg2_rc_ccs.html

  * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][54] ([i915#3689] / [i915#3886]) +1 similar issue
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb2/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html
    - shard-glk:          NOTRUN -> [SKIP][55] ([fdo#109271] / [i915#3886]) +2 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-glk2/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_gen12_mc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][56] ([fdo#109271]) +132 similar issues
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl4/igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][57] ([i915#3689]) +1 similar issue
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb5/igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][58] ([i915#6095]) +2 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb8/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs.html

  * igt@kms_chamelium@dp-hpd-for-each-pipe:
    - shard-glk:          NOTRUN -> [SKIP][59] ([fdo#109271] / [fdo#111827]) +7 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-glk5/igt@kms_chamelium@dp-hpd-for-each-pipe.html

  * igt@kms_chamelium@hdmi-mode-timings:
    - shard-apl:          NOTRUN -> [SKIP][60] ([fdo#109271] / [fdo#111827]) +11 similar issues
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl2/igt@kms_chamelium@hdmi-mode-timings.html

  * igt@kms_color_chamelium@pipe-a-ctm-0-25:
    - shard-snb:          NOTRUN -> [SKIP][61] ([fdo#109271] / [fdo#111827]) +6 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-snb2/igt@kms_color_chamelium@pipe-a-ctm-0-25.html

  * igt@kms_color_chamelium@pipe-b-ctm-0-5:
    - shard-iclb:         NOTRUN -> [SKIP][62] ([fdo#109284] / [fdo#111827]) +6 similar issues
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb8/igt@kms_color_chamelium@pipe-b-ctm-0-5.html

  * igt@kms_color_chamelium@pipe-b-ctm-negative:
    - shard-tglb:         NOTRUN -> [SKIP][63] ([fdo#109284] / [fdo#111827]) +7 similar issues
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb7/igt@kms_color_chamelium@pipe-b-ctm-negative.html

  * igt@kms_color_chamelium@pipe-d-ctm-negative:
    - shard-iclb:         NOTRUN -> [SKIP][64] ([fdo#109278] / [fdo#109284] / [fdo#111827])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb4/igt@kms_color_chamelium@pipe-d-ctm-negative.html
    - shard-kbl:          NOTRUN -> [SKIP][65] ([fdo#109271] / [fdo#111827]) +8 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl1/igt@kms_color_chamelium@pipe-d-ctm-negative.html

  * igt@kms_content_protection@legacy:
    - shard-apl:          NOTRUN -> [TIMEOUT][66] ([i915#1319]) +1 similar issue
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl2/igt@kms_content_protection@legacy.html
    - shard-tglb:         NOTRUN -> [SKIP][67] ([i915#1063]) +1 similar issue
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb3/igt@kms_content_protection@legacy.html
    - shard-iclb:         NOTRUN -> [SKIP][68] ([fdo#109300] / [fdo#111066]) +1 similar issue
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb7/igt@kms_content_protection@legacy.html
    - shard-kbl:          NOTRUN -> [TIMEOUT][69] ([i915#1319]) +1 similar issue
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl7/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@uevent:
    - shard-kbl:          NOTRUN -> [FAIL][70] ([i915#2105])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl7/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1:
    - shard-apl:          NOTRUN -> [DMESG-WARN][71] ([i915#180])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl4/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-b-edp-1:
    - shard-iclb:         NOTRUN -> [DMESG-WARN][72] ([i915#2867])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb5/igt@kms_cursor_crc@cursor-suspend@pipe-b-edp-1.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa@varying-size:
    - shard-tglb:         NOTRUN -> [SKIP][73] ([fdo#109274] / [fdo#111825]) +6 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb2/igt@kms_cursor_legacy@cursorb-vs-flipa@varying-size.html

  * igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-4tiled:
    - shard-tglb:         NOTRUN -> [SKIP][74] ([i915#5287])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb8/igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-4tiled.html
    - shard-iclb:         NOTRUN -> [SKIP][75] ([i915#5287])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb4/igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-4tiled.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-apl:          [PASS][76] -> [INCOMPLETE][77] ([i915#180] / [i915#4939])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-apl8/igt@kms_fbcon_fbt@fbc-suspend.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl6/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@2x-absolute-wf_vblank:
    - shard-tglb:         NOTRUN -> [SKIP][78] ([fdo#109274] / [fdo#111825] / [i915#3637] / [i915#3966])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb8/igt@kms_flip@2x-absolute-wf_vblank.html

  * igt@kms_flip@2x-flip-vs-panning:
    - shard-iclb:         NOTRUN -> [SKIP][79] ([fdo#109274]) +11 similar issues
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb3/igt@kms_flip@2x-flip-vs-panning.html

  * igt@kms_flip@2x-plain-flip-fb-recreate@ab-hdmi-a1-hdmi-a2:
    - shard-glk:          [PASS][80] -> [FAIL][81] ([i915#2122])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-glk9/igt@kms_flip@2x-plain-flip-fb-recreate@ab-hdmi-a1-hdmi-a2.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-glk5/igt@kms_flip@2x-plain-flip-fb-recreate@ab-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset:
    - shard-tglb:         NOTRUN -> [SKIP][82] ([fdo#109274] / [fdo#111825] / [i915#3637]) +3 similar issues
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb7/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp1:
    - shard-apl:          [PASS][83] -> [FAIL][84] ([i915#79])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-apl7/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp1.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl2/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-default-mode:
    - shard-iclb:         NOTRUN -> [SKIP][85] ([i915#3555]) +2 similar issues
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode:
    - shard-iclb:         NOTRUN -> [SKIP][86] ([i915#2672]) +6 similar issues
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb4/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode:
    - shard-tglb:         NOTRUN -> [SKIP][87] ([i915#2672]) +1 similar issue
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb3/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-default-mode:
    - shard-iclb:         NOTRUN -> [SKIP][88] ([i915#2672] / [i915#3555]) +1 similar issue
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-default-mode.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-gtt:
    - shard-iclb:         NOTRUN -> [SKIP][89] ([fdo#109280]) +12 similar issues
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite:
    - shard-tglb:         NOTRUN -> [SKIP][90] ([i915#6497]) +4 similar issues
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-gtt:
    - shard-tglb:         NOTRUN -> [SKIP][91] ([fdo#109280] / [fdo#111825]) +12 similar issues
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb3/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_hdmi_inject@inject-audio:
    - shard-tglb:         [PASS][92] -> [SKIP][93] ([i915#433])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-tglb1/igt@kms_hdmi_inject@inject-audio.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb5/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1:
    - shard-kbl:          [PASS][94] -> [FAIL][95] ([i915#1188])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-kbl6/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl4/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html

  * igt@kms_plane_lowres@tiling-x@pipe-b-edp-1:
    - shard-iclb:         NOTRUN -> [SKIP][96] ([i915#3536]) +2 similar issues
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb7/igt@kms_plane_lowres@tiling-x@pipe-b-edp-1.html

  * igt@kms_plane_lowres@tiling-x@pipe-c-edp-1:
    - shard-tglb:         NOTRUN -> [SKIP][97] ([i915#3536]) +3 similar issues
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb8/igt@kms_plane_lowres@tiling-x@pipe-c-edp-1.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b-edp-1:
    - shard-iclb:         [PASS][98] -> [SKIP][99] ([i915#5176]) +1 similar issue
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-iclb5/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b-edp-1.html
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb3/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b-edp-1.html

  * igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf:
    - shard-tglb:         NOTRUN -> [SKIP][100] ([i915#2920])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb5/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf.html
    - shard-iclb:         NOTRUN -> [SKIP][101] ([i915#2920])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb2/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-apl:          NOTRUN -> [SKIP][102] ([fdo#109271] / [i915#658]) +1 similar issue
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl6/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_psr2_su@page_flip-nv12:
    - shard-tglb:         NOTRUN -> [SKIP][103] ([i915#1911])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb1/igt@kms_psr2_su@page_flip-nv12.html
    - shard-glk:          NOTRUN -> [SKIP][104] ([fdo#109271] / [i915#658]) +1 similar issue
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-glk3/igt@kms_psr2_su@page_flip-nv12.html
    - shard-iclb:         NOTRUN -> [FAIL][105] ([i915#5939])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb2/igt@kms_psr2_su@page_flip-nv12.html
    - shard-kbl:          NOTRUN -> [SKIP][106] ([fdo#109271] / [i915#658]) +1 similar issue
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl6/igt@kms_psr2_su@page_flip-nv12.html

  * igt@kms_psr@psr2_dpms:
    - shard-tglb:         NOTRUN -> [FAIL][107] ([i915#132] / [i915#3467])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb8/igt@kms_psr@psr2_dpms.html
    - shard-iclb:         NOTRUN -> [SKIP][108] ([fdo#109441])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb5/igt@kms_psr@psr2_dpms.html

  * igt@kms_psr@psr2_primary_page_flip:
    - shard-iclb:         [PASS][109] -> [SKIP][110] ([fdo#109441]) +2 similar issues
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb6/igt@kms_psr@psr2_primary_page_flip.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-apl:          [PASS][111] -> [DMESG-WARN][112] ([i915#180]) +1 similar issue
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-apl4/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl8/igt@kms_vblank@pipe-b-ts-continuation-suspend.html

  * igt@kms_vrr@flip-suspend:
    - shard-tglb:         NOTRUN -> [SKIP][113] ([i915#3555])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb7/igt@kms_vrr@flip-suspend.html

  * igt@kms_writeback@writeback-invalid-parameters:
    - shard-apl:          NOTRUN -> [SKIP][114] ([fdo#109271] / [i915#2437])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl8/igt@kms_writeback@writeback-invalid-parameters.html
    - shard-tglb:         NOTRUN -> [SKIP][115] ([i915#2437])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb6/igt@kms_writeback@writeback-invalid-parameters.html
    - shard-glk:          NOTRUN -> [SKIP][116] ([fdo#109271] / [i915#2437])
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-glk8/igt@kms_writeback@writeback-invalid-parameters.html
    - shard-iclb:         NOTRUN -> [SKIP][117] ([i915#2437])
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb4/igt@kms_writeback@writeback-invalid-parameters.html
    - shard-kbl:          NOTRUN -> [SKIP][118] ([fdo#109271] / [i915#2437])
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl1/igt@kms_writeback@writeback-invalid-parameters.html

  * igt@perf@polling-parameterized:
    - shard-tglb:         [PASS][119] -> [FAIL][120] ([i915#5639])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-tglb8/igt@perf@polling-parameterized.html
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb5/igt@perf@polling-parameterized.html

  * igt@prime_nv_api@nv_i915_reimport_twice_check_flink_name:
    - shard-tglb:         NOTRUN -> [SKIP][121] ([fdo#109291]) +3 similar issues
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb6/igt@prime_nv_api@nv_i915_reimport_twice_check_flink_name.html
    - shard-iclb:         NOTRUN -> [SKIP][122] ([fdo#109291]) +3 similar issues
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb4/igt@prime_nv_api@nv_i915_reimport_twice_check_flink_name.html

  * igt@sysfs_clients@create:
    - shard-apl:          NOTRUN -> [SKIP][123] ([fdo#109271] / [i915#2994])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl4/igt@sysfs_clients@create.html

  
#### Possible fixes ####

  * igt@gem_eio@in-flight-contexts-1us:
    - shard-iclb:         [TIMEOUT][124] ([i915#3070]) -> [PASS][125]
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-iclb5/igt@gem_eio@in-flight-contexts-1us.html
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb1/igt@gem_eio@in-flight-contexts-1us.html

  * igt@gem_exec_balancer@parallel:
    - shard-iclb:         [SKIP][126] ([i915#4525]) -> [PASS][127]
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-iclb7/igt@gem_exec_balancer@parallel.html
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb2/igt@gem_exec_balancer@parallel.html

  * igt@gem_exec_fair@basic-none@rcs0:
    - shard-kbl:          [FAIL][128] ([i915#2842]) -> [PASS][129]
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-kbl6/igt@gem_exec_fair@basic-none@rcs0.html
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl7/igt@gem_exec_fair@basic-none@rcs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-iclb:         [FAIL][130] ([i915#2842]) -> [PASS][131]
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-iclb6/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb7/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglb:         [SKIP][132] ([i915#2190]) -> [PASS][133]
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-tglb6/igt@gem_huc_copy@huc-copy.html
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-tglb3/igt@gem_huc_copy@huc-copy.html

  * igt@i915_pm_dc@dc6-dpms:
    - shard-iclb:         [FAIL][134] ([i915#454]) -> [PASS][135] +1 similar issue
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-iclb3/igt@i915_pm_dc@dc6-dpms.html
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb1/igt@i915_pm_dc@dc6-dpms.html

  * igt@i915_pm_rpm@modeset-non-lpsp-stress:
    - shard-kbl:          [TIMEOUT][136] ([i915#6168]) -> [PASS][137]
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-kbl7/igt@i915_pm_rpm@modeset-non-lpsp-stress.html
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl6/igt@i915_pm_rpm@modeset-non-lpsp-stress.html
    - shard-apl:          [TIMEOUT][138] ([i915#6168]) -> [PASS][139]
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-apl3/igt@i915_pm_rpm@modeset-non-lpsp-stress.html
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl8/igt@i915_pm_rpm@modeset-non-lpsp-stress.html

  * igt@i915_suspend@forcewake:
    - shard-kbl:          [DMESG-WARN][140] ([i915#180]) -> [PASS][141]
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-kbl7/igt@i915_suspend@forcewake.html
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl6/igt@i915_suspend@forcewake.html

  * igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_ccs:
    - shard-apl:          [DMESG-WARN][142] ([i915#62]) -> [PASS][143] +46 similar issues
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-apl7/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_ccs.html
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl4/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_ccs.html

  * igt@kms_draw_crc@draw-method-rgb565-render-xtiled:
    - shard-glk:          [FAIL][144] ([i915#5160]) -> [PASS][145]
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-glk6/igt@kms_draw_crc@draw-method-rgb565-render-xtiled.html
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-glk7/igt@kms_draw_crc@draw-method-rgb565-render-xtiled.html

  * igt@kms_flip@blocking-wf_vblank@a-dp1:
    - shard-apl:          [DMESG-WARN][146] ([i915#1982] / [i915#62]) -> [PASS][147]
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-apl7/igt@kms_flip@blocking-wf_vblank@a-dp1.html
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl7/igt@kms_flip@blocking-wf_vblank@a-dp1.html

  * igt@kms_flip@flip-vs-suspend@a-dp1:
    - shard-apl:          [DMESG-WARN][148] ([i915#180]) -> [PASS][149] +3 similar issues
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-apl1/igt@kms_flip@flip-vs-suspend@a-dp1.html
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl8/igt@kms_flip@flip-vs-suspend@a-dp1.html

  * igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-render:
    - shard-snb:          [SKIP][150] ([fdo#109271]) -> [PASS][151]
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-snb6/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-render.html
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-snb5/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-render.html

  * igt@kms_hdr@bpc-switch-dpms@pipe-a-dp-1:
    - shard-kbl:          [FAIL][152] ([i915#1188]) -> [PASS][153]
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-kbl1/igt@kms_hdr@bpc-switch-dpms@pipe-a-dp-1.html
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl7/igt@kms_hdr@bpc-switch-dpms@pipe-a-dp-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1:
    - shard-iclb:         [SKIP][154] ([i915#5235]) -> [PASS][155] +2 similar issues
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-iclb2/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb8/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-b-dp-1:
    - shard-apl:          [DMESG-WARN][156] ([i915#180] / [i915#62]) -> [PASS][157] +2 similar issues
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-apl7/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-b-dp-1.html
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl6/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-b-dp-1.html

  * igt@kms_psr@psr2_cursor_mmap_cpu:
    - shard-iclb:         [SKIP][158] ([fdo#109441]) -> [PASS][159]
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-iclb1/igt@kms_psr@psr2_cursor_mmap_cpu.html
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html

  * igt@kms_vblank@pipe-c-wait-busy-hang:
    - shard-apl:          [SKIP][160] ([fdo#109271]) -> [PASS][161] +11 similar issues
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-apl7/igt@kms_vblank@pipe-c-wait-busy-hang.html
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl7/igt@kms_vblank@pipe-c-wait-busy-hang.html

  
#### Warnings ####

  * igt@kms_content_protection@uevent:
    - shard-apl:          [SKIP][162] ([fdo#109271]) -> [FAIL][163] ([i915#2105])
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-apl7/igt@kms_content_protection@uevent.html
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-apl1/igt@kms_content_protection@uevent.html

  * igt@kms_psr2_sf@cursor-plane-update-sf:
    - shard-iclb:         [SKIP][164] ([i915#2920]) -> [SKIP][165] ([fdo#111068] / [i915#658]) +1 similar issue
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-iclb2/igt@kms_psr2_sf@cursor-plane-update-sf.html
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-iclb7/igt@kms_psr2_sf@cursor-plane-update-sf.html

  * igt@runner@aborted:
    - shard-kbl:          ([FAIL][166], [FAIL][167], [FAIL][168]) ([i915#180] / [i915#3002] / [i915#4312] / [i915#5257]) -> ([FAIL][169], [FAIL][170]) ([i915#3002] / [i915#4312] / [i915#5257])
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-kbl7/igt@runner@aborted.html
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-kbl7/igt@runner@aborted.html
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6603/shard-kbl6/igt@runner@aborted.html
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl4/igt@runner@aborted.html
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/shard-kbl4/igt@runner@aborted.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109293]: https://bugs.freedesktop.org/show_bug.cgi?id=109293
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
  [fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
  [fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
  [fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
  [fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
  [fdo#109313]: https://bugs.freedesktop.org/show_bug.cgi?id=109313
  [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110542]: https://bugs.freedesktop.org/show_bug.cgi?id=110542
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725
  [fdo#111066]: https://bugs.freedesktop.org/show_bug.cgi?id=111066
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111314]: https://bugs.freedesktop.org/show_bug.cgi?id=111314
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
  [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
  [i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
  [i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
  [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1850]: https://gitlab.freedesktop.org/drm/intel/issues/1850
  [i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
  [i915#1911]: https://gitlab.freedesktop.org/drm/intel/issues/1911
  [i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2105]: https://gitlab.freedesktop.org/drm/intel/issues/2105
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2410]: https://gitlab.freedesktop.org/drm/intel/issues/2410
  [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
  [i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
  [i915#2435]: https://gitlab.freedesktop.org/drm/intel/issues/2435
  [i915#2436]: https://gitlab.freedesktop.org/drm/intel/issues/2436
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
  [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
  [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
  [i915#3070]: https://gitlab.freedesktop.org/drm/intel/issues/3070
  [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
  [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
  [i915#3376]: https://gitlab.freedesktop.org/drm/intel/issues/3376
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3467]: https://gitlab.freedesktop.org/drm/intel/issues/3467
  [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
  [i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
  [i915#3828]: https://gitlab.freedesktop.org/drm/intel/issues/3828
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
  [i915#3938]: https://gitlab.freedesktop.org/drm/intel/issues/3938
  [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#3966]: https://gitlab.freedesktop.org/drm/intel/issues/3966
  [i915#3987]: https://gitlab.freedesktop.org/drm/intel/issues/3987
  [i915#4032]: https://gitlab.freedesktop.org/drm/intel/issues/4032
  [i915#4036]: https://gitlab.freedesktop.org/drm/intel/issues/4036
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4171]: https://gitlab.freedesktop.org/drm/intel/issues/4171
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
  [i915#4369]: https://gitlab.freedesktop.org/drm/intel/issues/4369
  [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
  [i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
  [i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4853]: https://gitlab.freedesktop.org/drm/intel/issues/4853
  [i915#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854
  [i915#4855]: https://gitlab.freedesktop.org/drm/intel/issues/4855
  [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#4877]: https://gitlab.freedesktop.org/drm/intel/issues/4877
  [i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879
  [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
  [i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
  [i915#4883]: https://gitlab.freedesktop.org/drm/intel/issues/4883
  [i915#4884]: https://gitlab.freedesktop.org/drm/intel/issues/4884
  [i915#4893]: https://gitlab.freedesktop.org/drm/intel/issues/4893
  [i915#4904]: https://gitlab.freedesktop.org/drm/intel/issues/4904
  [i915#4939]: https://gitlab.freedesktop.org/drm/intel/issues/4939
  [i915#4941]: https://gitlab.freedesktop.org/drm/intel/issues/4941
  [i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957
  [i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991
  [i915#5160]: https://gitlab.freedesktop.org/drm/intel/issues/5160
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5178]: https://gitlab.freedesktop.org/drm/intel/issues/5178
  [i915#5234]: https://gitlab.freedesktop.org/drm/intel/issues/5234
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5287]: https://gitlab.freedesktop.org/drm/intel/issues/5287
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#5327]: https://gitlab.freedesktop.org/drm/intel/issues/5327
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5639]: https://gitlab.freedesktop.org/drm/intel/issues/5639
  [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#5903]: https://gitlab.freedesktop.org/drm/intel/issues/5903
  [i915#5939]: https://gitlab.freedesktop.org/drm/intel/issues/5939
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117
  [i915#6168]: https://gitlab.freedesktop.org/drm/intel/issues/6168
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
  [i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
  [i915#6234]: https://gitlab.freedesktop.org/drm/intel/issues/6234
  [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
  [i915#6251]: https://gitlab.freedesktop.org/drm/intel/issues/6251
  [i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
  [i915#6258]: https://gitlab.freedesktop.org/drm/intel/issues/6258
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
  [i915#6331]: https://gitlab.freedesktop.org/drm/intel/issues/6331
  [i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
  [i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
  [i915#6405]: https://gitlab.freedesktop.org/drm/intel/issues/6405
  [i915#6412]: https://gitlab.freedesktop.org/drm/intel/issues/6412
  [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
  [i915#6458]: https://gitlab.freedesktop.org/drm/intel/issues/6458
  [i915#6463]: https://gitlab.freedesktop.org/drm/intel/issues/6463
  [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
  [i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_6603 -> IGTPW_7582

  CI-20190529: 20190529
  CI_DRM_11946: 0e9c43d76a145712da46e935d429ce2a3eea80e8 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7582: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/index.html
  IGT_6603: d851d950cf805f3021d67666db67e24fae1b99ee @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/index.html

[-- Attachment #2: Type: text/html, Size: 53845 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] ✗ Fi.CI.IGT: failure for tooling: Add linux's .clang-format (rev3)
  2022-07-29 10:38   ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2022-08-02 22:25     ` Jim Shargo
  0 siblings, 0 replies; 15+ messages in thread
From: Jim Shargo @ 2022-08-02 22:25 UTC (permalink / raw)
  To: Development mailing list for IGT GPU Tools, Petri Latvala,
	Mark Yacoub, Arkadiusz Hiler
  Cc: Jim Shargo

Hi!

Does this failure (which seems unrelated :P) block the submission?
Possible to re-run?

Thanks!




On Fri, Jul 29, 2022 at 6:39 AM Patchwork
<patchwork@emeril.freedesktop.org> wrote:
>
> Patch Details
> Series:tooling: Add linux's .clang-format (rev3)
> URL:https://patchwork.freedesktop.org/series/106835/
> State:failure
> Details:https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/index.html
>
> CI Bug Log - changes from IGT_6603_full -> IGTPW_7582_full
>
> Summary
>
> FAILURE
>
> Serious unknown changes coming with IGTPW_7582_full absolutely need to be
> verified manually.
>
> If you think the reported changes have nothing to do with the changes
> introduced in IGTPW_7582_full, please notify your bug team to allow them
> to document this new failure mode, which will reduce false positives in CI.
>
> External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/index.html
>
> Participating hosts (7 -> 10)
>
> Additional (3): shard-rkl shard-dg1 shard-tglu
>
> Possible new issues
>
> Here are the unknown changes that may have been introduced in IGTPW_7582_full:
>
> IGT changes
>
> Possible regressions
>
> igt@kms_flip@flip-vs-modeset-vs-hang@c-dp1:
>
> shard-apl: PASS -> DMESG-WARN
>
> Suppressed
>
> The following results come from untrusted machines, tests, or statuses.
> They do not affect the overall result.
>
> igt@kms_sysfs_edid_timing:
>
> {shard-dg1}: NOTRUN -> FAIL
>
> Known issues
>
> Here are the changes found in IGTPW_7582_full that come from known issues:
>
> IGT changes
>
> Issues hit
>
> igt@gem_busy@close-race:
>
> shard-snb: PASS -> INCOMPLETE (i915#6234)
>
> igt@gem_ctx_persistence@engines-hostile:
>
> shard-snb: NOTRUN -> SKIP (fdo#109271 / i915#1099) +1 similar issue
>
> igt@gem_ctx_sseu@engines:
>
> shard-tglb: NOTRUN -> SKIP (i915#280) +1 similar issue
>
> igt@gem_exec_balancer@parallel-contexts:
>
> shard-iclb: PASS -> SKIP (i915#4525) +1 similar issue
>
> igt@gem_exec_balancer@parallel-ordering:
>
> shard-tglb: NOTRUN -> FAIL (i915#6117)
>
> shard-iclb: NOTRUN -> SKIP (i915#4525) +1 similar issue
>
> shard-kbl: NOTRUN -> FAIL (i915#6117)
>
> igt@gem_exec_fair@basic-deadline:
>
> shard-glk: PASS -> FAIL (i915#2846)
>
> igt@gem_exec_fair@basic-pace-share@rcs0:
>
> shard-tglb: PASS -> FAIL (i915#2842)
>
> igt@gem_exec_fair@basic-sync@rcs0:
>
> shard-kbl: PASS -> SKIP (fdo#109271)
>
> igt@gem_lmem_swapping@heavy-verify-multi-ccs:
>
> shard-tglb: NOTRUN -> SKIP (i915#4613)
>
> shard-glk: NOTRUN -> SKIP (fdo#109271 / i915#4613)
>
> shard-iclb: NOTRUN -> SKIP (i915#4613)
>
> shard-kbl: NOTRUN -> SKIP (fdo#109271 / i915#4613)
>
> igt@gem_lmem_swapping@parallel-random-engines:
>
> shard-apl: NOTRUN -> SKIP (fdo#109271 / i915#4613) +1 similar issue
>
> igt@gem_pxp@create-regular-context-2:
>
> shard-tglb: NOTRUN -> SKIP (i915#4270)
>
> shard-iclb: NOTRUN -> SKIP (i915#4270)
>
> igt@gem_render_copy@x-tiled-to-vebox-yf-tiled:
>
> shard-iclb: NOTRUN -> SKIP (i915#768)
>
> igt@gen7_exec_parse@cmd-crossing-page:
>
> shard-tglb: NOTRUN -> SKIP (fdo#109289) +2 similar issues
>
> shard-iclb: NOTRUN -> SKIP (fdo#109289) +1 similar issue
>
> igt@gen9_exec_parse@allowed-all:
>
> shard-glk: PASS -> DMESG-WARN (i915#5566 / i915#716)
>
> igt@gen9_exec_parse@basic-rejected-ctx-param:
>
> shard-snb: NOTRUN -> SKIP (fdo#109271) +119 similar issues
>
> igt@gen9_exec_parse@unaligned-access:
>
> shard-tglb: NOTRUN -> SKIP (i915#2527 / i915#2856) +1 similar issue
>
> shard-iclb: NOTRUN -> SKIP (i915#2856) +1 similar issue
>
> igt@i915_module_load@reload-with-fault-injection:
>
> shard-snb: PASS -> INCOMPLETE (i915#5178)
>
> igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp:
>
> shard-apl: NOTRUN -> SKIP (fdo#109271 / i915#1937)
>
> shard-kbl: NOTRUN -> SKIP (fdo#109271 / i915#1937)
>
> igt@i915_pm_rpm@gem-execbuf-stress-pc8:
>
> shard-glk: NOTRUN -> SKIP (fdo#109271) +72 similar issues
>
> shard-iclb: NOTRUN -> SKIP (fdo#109293 / fdo#109506)
>
> shard-tglb: NOTRUN -> SKIP (fdo#109506 / i915#2411)
>
> igt@kms_big_fb@4-tiled-32bpp-rotate-90:
>
> shard-tglb: NOTRUN -> SKIP (i915#5286) +1 similar issue
>
> shard-iclb: NOTRUN -> SKIP (i915#5286) +1 similar issue
>
> igt@kms_big_fb@linear-32bpp-rotate-270:
>
> shard-tglb: NOTRUN -> SKIP (fdo#111614) +1 similar issue
>
> shard-iclb: NOTRUN -> SKIP (fdo#110725 / fdo#111614) +1 similar issue
>
> igt@kms_big_fb@yf-tiled-64bpp-rotate-0:
>
> shard-iclb: NOTRUN -> SKIP (fdo#110723) +1 similar issue
>
> igt@kms_big_fb@yf-tiled-64bpp-rotate-90:
>
> shard-kbl: NOTRUN -> SKIP (fdo#109271) +115 similar issues
>
> igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
>
> shard-tglb: NOTRUN -> SKIP (fdo#111615) +2 similar issues
>
> igt@kms_ccs@pipe-a-ccs-on-another-bo-yf_tiled_ccs:
>
> shard-tglb: NOTRUN -> SKIP (fdo#111615 / i915#3689) +4 similar issues
>
> igt@kms_ccs@pipe-a-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs:
>
> shard-iclb: NOTRUN -> SKIP (fdo#109278) +16 similar issues
>
> igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
>
> shard-iclb: NOTRUN -> SKIP (fdo#109278 / i915#3886) +2 similar issues
>
> shard-kbl: NOTRUN -> SKIP (fdo#109271 / i915#3886) +2 similar issues
>
> igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_mc_ccs:
>
> shard-apl: NOTRUN -> SKIP (fdo#109271 / i915#3886) +4 similar issues
>
> igt@kms_ccs@pipe-c-crc-primary-rotation-180-4_tiled_dg2_rc_ccs:
>
> shard-tglb: NOTRUN -> SKIP (i915#3689 / i915#6095) +2 similar issues
>
> igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
>
> shard-tglb: NOTRUN -> SKIP (i915#3689 / i915#3886) +1 similar issue
>
> shard-glk: NOTRUN -> SKIP (fdo#109271 / i915#3886) +2 similar issues
>
> igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_gen12_mc_ccs:
>
> shard-apl: NOTRUN -> SKIP (fdo#109271) +132 similar issues
>
> igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_mc_ccs:
>
> shard-tglb: NOTRUN -> SKIP (i915#3689) +1 similar issue
>
> igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs:
>
> shard-tglb: NOTRUN -> SKIP (i915#6095) +2 similar issues
>
> igt@kms_chamelium@dp-hpd-for-each-pipe:
>
> shard-glk: NOTRUN -> SKIP (fdo#109271 / fdo#111827) +7 similar issues
>
> igt@kms_chamelium@hdmi-mode-timings:
>
> shard-apl: NOTRUN -> SKIP (fdo#109271 / fdo#111827) +11 similar issues
>
> igt@kms_color_chamelium@pipe-a-ctm-0-25:
>
> shard-snb: NOTRUN -> SKIP (fdo#109271 / fdo#111827) +6 similar issues
>
> igt@kms_color_chamelium@pipe-b-ctm-0-5:
>
> shard-iclb: NOTRUN -> SKIP (fdo#109284 / fdo#111827) +6 similar issues
>
> igt@kms_color_chamelium@pipe-b-ctm-negative:
>
> shard-tglb: NOTRUN -> SKIP (fdo#109284 / fdo#111827) +7 similar issues
>
> igt@kms_color_chamelium@pipe-d-ctm-negative:
>
> shard-iclb: NOTRUN -> SKIP (fdo#109278 / fdo#109284 / fdo#111827)
>
> shard-kbl: NOTRUN -> SKIP (fdo#109271 / fdo#111827) +8 similar issues
>
> igt@kms_content_protection@legacy:
>
> shard-apl: NOTRUN -> TIMEOUT (i915#1319) +1 similar issue
>
> shard-tglb: NOTRUN -> SKIP (i915#1063) +1 similar issue
>
> shard-iclb: NOTRUN -> SKIP (fdo#109300 / fdo#111066) +1 similar issue
>
> shard-kbl: NOTRUN -> TIMEOUT (i915#1319) +1 similar issue
>
> igt@kms_content_protection@uevent:
>
> shard-kbl: NOTRUN -> FAIL (i915#2105)
>
> igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1:
>
> shard-apl: NOTRUN -> DMESG-WARN (i915#180)
>
> igt@kms_cursor_crc@cursor-suspend@pipe-b-edp-1:
>
> shard-iclb: NOTRUN -> DMESG-WARN (i915#2867)
>
> igt@kms_cursor_legacy@cursorb-vs-flipa@varying-size:
>
> shard-tglb: NOTRUN -> SKIP (fdo#109274 / fdo#111825) +6 similar issues
>
> igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-4tiled:
>
> shard-tglb: NOTRUN -> SKIP (i915#5287)
>
> shard-iclb: NOTRUN -> SKIP (i915#5287)
>
> igt@kms_fbcon_fbt@fbc-suspend:
>
> shard-apl: PASS -> INCOMPLETE (i915#180 / i915#4939)
>
> igt@kms_flip@2x-absolute-wf_vblank:
>
> shard-tglb: NOTRUN -> SKIP (fdo#109274 / fdo#111825 / i915#3637 / i915#3966)
>
> igt@kms_flip@2x-flip-vs-panning:
>
> shard-iclb: NOTRUN -> SKIP (fdo#109274) +11 similar issues
>
> igt@kms_flip@2x-plain-flip-fb-recreate@ab-hdmi-a1-hdmi-a2:
>
> shard-glk: PASS -> FAIL (i915#2122)
>
> igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset:
>
> shard-tglb: NOTRUN -> SKIP (fdo#109274 / fdo#111825 / i915#3637) +3 similar issues
>
> igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp1:
>
> shard-apl: PASS -> FAIL (i915#79)
>
> igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-default-mode:
>
> shard-iclb: NOTRUN -> SKIP (i915#3555) +2 similar issues
>
> igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode:
>
> shard-iclb: NOTRUN -> SKIP (i915#2672) +6 similar issues
>
> igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode:
>
> shard-tglb: NOTRUN -> SKIP (i915#2672) +1 similar issue
>
> igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-default-mode:
>
> shard-iclb: NOTRUN -> SKIP (i915#2672 / i915#3555) +1 similar issue
>
> igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-gtt:
>
> shard-iclb: NOTRUN -> SKIP (fdo#109280) +12 similar issues
>
> igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite:
>
> shard-tglb: NOTRUN -> SKIP (i915#6497) +4 similar issues
>
> igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-gtt:
>
> shard-tglb: NOTRUN -> SKIP (fdo#109280 / fdo#111825) +12 similar issues
>
> igt@kms_hdmi_inject@inject-audio:
>
> shard-tglb: PASS -> SKIP (i915#433)
>
> igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1:
>
> shard-kbl: PASS -> FAIL (i915#1188)
>
> igt@kms_plane_lowres@tiling-x@pipe-b-edp-1:
>
> shard-iclb: NOTRUN -> SKIP (i915#3536) +2 similar issues
>
> igt@kms_plane_lowres@tiling-x@pipe-c-edp-1:
>
> shard-tglb: NOTRUN -> SKIP (i915#3536) +3 similar issues
>
> igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b-edp-1:
>
> shard-iclb: PASS -> SKIP (i915#5176) +1 similar issue
>
> igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf:
>
> shard-tglb: NOTRUN -> SKIP (i915#2920)
>
> shard-iclb: NOTRUN -> SKIP (i915#2920)
>
> igt@kms_psr2_su@frontbuffer-xrgb8888:
>
> shard-apl: NOTRUN -> SKIP (fdo#109271 / i915#658) +1 similar issue
>
> igt@kms_psr2_su@page_flip-nv12:
>
> shard-tglb: NOTRUN -> SKIP (i915#1911)
>
> shard-glk: NOTRUN -> SKIP (fdo#109271 / i915#658) +1 similar issue
>
> shard-iclb: NOTRUN -> FAIL (i915#5939)
>
> shard-kbl: NOTRUN -> SKIP (fdo#109271 / i915#658) +1 similar issue
>
> igt@kms_psr@psr2_dpms:
>
> shard-tglb: NOTRUN -> FAIL (i915#132 / i915#3467)
>
> shard-iclb: NOTRUN -> SKIP (fdo#109441)
>
> igt@kms_psr@psr2_primary_page_flip:
>
> shard-iclb: PASS -> SKIP (fdo#109441) +2 similar issues
>
> igt@kms_vblank@pipe-b-ts-continuation-suspend:
>
> shard-apl: PASS -> DMESG-WARN (i915#180) +1 similar issue
>
> igt@kms_vrr@flip-suspend:
>
> shard-tglb: NOTRUN -> SKIP (i915#3555)
>
> igt@kms_writeback@writeback-invalid-parameters:
>
> shard-apl: NOTRUN -> SKIP (fdo#109271 / i915#2437)
>
> shard-tglb: NOTRUN -> SKIP (i915#2437)
>
> shard-glk: NOTRUN -> SKIP (fdo#109271 / i915#2437)
>
> shard-iclb: NOTRUN -> SKIP (i915#2437)
>
> shard-kbl: NOTRUN -> SKIP (fdo#109271 / i915#2437)
>
> igt@perf@polling-parameterized:
>
> shard-tglb: PASS -> FAIL (i915#5639)
>
> igt@prime_nv_api@nv_i915_reimport_twice_check_flink_name:
>
> shard-tglb: NOTRUN -> SKIP (fdo#109291) +3 similar issues
>
> shard-iclb: NOTRUN -> SKIP (fdo#109291) +3 similar issues
>
> igt@sysfs_clients@create:
>
> shard-apl: NOTRUN -> SKIP (fdo#109271 / i915#2994)
>
> Possible fixes
>
> igt@gem_eio@in-flight-contexts-1us:
>
> shard-iclb: TIMEOUT (i915#3070) -> PASS
>
> igt@gem_exec_balancer@parallel:
>
> shard-iclb: SKIP (i915#4525) -> PASS
>
> igt@gem_exec_fair@basic-none@rcs0:
>
> shard-kbl: FAIL (i915#2842) -> PASS
>
> igt@gem_exec_fair@basic-pace-solo@rcs0:
>
> shard-iclb: FAIL (i915#2842) -> PASS
>
> igt@gem_huc_copy@huc-copy:
>
> shard-tglb: SKIP (i915#2190) -> PASS
>
> igt@i915_pm_dc@dc6-dpms:
>
> shard-iclb: FAIL (i915#454) -> PASS +1 similar issue
>
> igt@i915_pm_rpm@modeset-non-lpsp-stress:
>
> shard-kbl: TIMEOUT (i915#6168) -> PASS
>
> shard-apl: TIMEOUT (i915#6168) -> PASS
>
> igt@i915_suspend@forcewake:
>
> shard-kbl: DMESG-WARN (i915#180) -> PASS
>
> igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_ccs:
>
> shard-apl: DMESG-WARN (i915#62) -> PASS +46 similar issues
>
> igt@kms_draw_crc@draw-method-rgb565-render-xtiled:
>
> shard-glk: FAIL (i915#5160) -> PASS
>
> igt@kms_flip@blocking-wf_vblank@a-dp1:
>
> shard-apl: DMESG-WARN (i915#1982 / i915#62) -> PASS
>
> igt@kms_flip@flip-vs-suspend@a-dp1:
>
> shard-apl: DMESG-WARN (i915#180) -> PASS +3 similar issues
>
> igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-render:
>
> shard-snb: SKIP (fdo#109271) -> PASS
>
> igt@kms_hdr@bpc-switch-dpms@pipe-a-dp-1:
>
> shard-kbl: FAIL (i915#1188) -> PASS
>
> igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1:
>
> shard-iclb: SKIP (i915#5235) -> PASS +2 similar issues
>
> igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-b-dp-1:
>
> shard-apl: DMESG-WARN (i915#180 / i915#62) -> PASS +2 similar issues
>
> igt@kms_psr@psr2_cursor_mmap_cpu:
>
> shard-iclb: SKIP (fdo#109441) -> PASS
>
> igt@kms_vblank@pipe-c-wait-busy-hang:
>
> shard-apl: SKIP (fdo#109271) -> PASS +11 similar issues
>
> Warnings
>
> igt@kms_content_protection@uevent:
>
> shard-apl: SKIP (fdo#109271) -> FAIL (i915#2105)
>
> igt@kms_psr2_sf@cursor-plane-update-sf:
>
> shard-iclb: SKIP (i915#2920) -> SKIP (fdo#111068 / i915#658) +1 similar issue
>
> igt@runner@aborted:
>
> shard-kbl: (FAIL, FAIL, FAIL) (i915#180 / i915#3002 / i915#4312 / i915#5257) -> (FAIL, FAIL) (i915#3002 / i915#4312 / i915#5257)
>
> {name}: This element is suppressed. This means it is ignored when computing
> the status of the difference (SUCCESS, WARNING, or FAILURE).
>
> Build changes
>
> CI: CI-20190529 -> None
> IGT: IGT_6603 -> IGTPW_7582
>
> CI-20190529: 20190529
> CI_DRM_11946: 0e9c43d76a145712da46e935d429ce2a3eea80e8 @ git://anongit.freedesktop.org/gfx-ci/linux
> IGTPW_7582: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7582/index.html
> IGT_6603: d851d950cf805f3021d67666db67e24fae1b99ee @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3] tooling: Add linux's .clang-format
  2022-07-28 17:57       ` [igt-dev] [PATCH i-g-t v3] " Jim Shargo
@ 2022-08-12 12:53         ` Petri Latvala
  2022-08-12 16:00           ` Jim Shargo
  2022-08-23 11:01         ` Petri Latvala
  2023-08-31 17:03         ` Mauro Carvalho Chehab
  2 siblings, 1 reply; 15+ messages in thread
From: Petri Latvala @ 2022-08-12 12:53 UTC (permalink / raw)
  To: Jim Shargo; +Cc: Development mailing list for IGT GPU Tools

On Thu, Jul 28, 2022 at 01:57:36PM -0400, Jim Shargo wrote:
> As I was authoring my first patchset for IGT, I found myself fighting
> the tooling a bit to get everything right. I had to add a bunch of extra
> command line args to use my linux checkout's formatting rules to get the
> style right.
> 
> I grabbed this from a recent checkout of torvald's repo.
> 
> The commit I used was: e0dccc3b76fb35bb257b4118367a883073d7390e
> 
> To make this discoverable to new contributors, this change also
> updates CONTRIBUTING.md with:
> 
>   - A link to git-clang-format, which is a useful tool for using
>   clang-format from git just on a commit's changes
>   - A link to .editorconfig to make it more discoverable
> 
> Changes made to the linux kernel style:
> 
>   - Reflowing comments, including multi-line comments (ReflowComments)
>   - Support for magic code blocks (ForEachMacros, IfMacros)
> 
> Signed-off-by: Jim Shargo <jshargo@chromium.org>
> ---
> V2 -> V3: Update CONTRIBUTING.md with a note about .editorconfig,
>           remove reference to .clang-format from the .editorconfig
> V1 -> V2: Better support for IGT style and addressing comments
> 
>  .clang-format   | 176 ++++++++++++++++++++++++++++++++++++++++++++++++
>  CONTRIBUTING.md |   9 ++-
>  2 files changed, 182 insertions(+), 3 deletions(-)
>  create mode 100644 .clang-format
> 
> diff --git a/.clang-format b/.clang-format
> new file mode 100644
> index 00000000..da42bead
> --- /dev/null
> +++ b/.clang-format
> @@ -0,0 +1,176 @@
> +# SPDX-License-Identifier: GPL-2.0
> +#
> +# clang-format configuration file. Intended for clang-format >= 11.
> +#
> +# For more information, see:
> +#
> +#   Documentation/process/clang-format.rst
> +#   https://clang.llvm.org/docs/ClangFormat.html
> +#   https://clang.llvm.org/docs/ClangFormatStyleOptions.html
> +#
> +# This file was pulled from the linux kernel at revision
> +# e0dccc3b76fb35bb257b4118367a883073d7390e.
> +#
> +# Changes made for IGT-specific styles should include a comment noting
> +# the previous value with "kernel-value". This makes it clear what we
> +# want to keep when updating this file.
> +---
> +AccessModifierOffset: -4
> +AlignAfterOpenBracket: Align
> +AlignConsecutiveAssignments: false
> +AlignConsecutiveDeclarations: false
> +AlignEscapedNewlines: Left
> +AlignOperands: true
> +AlignTrailingComments: false
> +AllowAllParametersOfDeclarationOnNextLine: false
> +AllowShortBlocksOnASingleLine: false
> +AllowShortCaseLabelsOnASingleLine: false
> +AllowShortFunctionsOnASingleLine: None
> +AllowShortIfStatementsOnASingleLine: false
> +AllowShortLoopsOnASingleLine: false
> +AlwaysBreakAfterDefinitionReturnType: None
> +AlwaysBreakAfterReturnType: None
> +AlwaysBreakBeforeMultilineStrings: false
> +AlwaysBreakTemplateDeclarations: false
> +BinPackArguments: true
> +BinPackParameters: true
> +BraceWrapping:
> +  AfterClass: false
> +  AfterControlStatement: false
> +  AfterEnum: false
> +  AfterFunction: true
> +  AfterNamespace: true
> +  AfterObjCDeclaration: false
> +  AfterStruct: false
> +  AfterUnion: false
> +  AfterExternBlock: false
> +  BeforeCatch: false
> +  BeforeElse: false
> +  IndentBraces: false
> +  SplitEmptyFunction: true
> +  SplitEmptyRecord: true
> +  SplitEmptyNamespace: true
> +BreakBeforeBinaryOperators: None
> +BreakBeforeBraces: Custom
> +BreakBeforeInheritanceComma: false
> +BreakBeforeTernaryOperators: false
> +BreakConstructorInitializersBeforeComma: false
> +BreakConstructorInitializers: BeforeComma
> +BreakAfterJavaFieldAnnotations: false
> +BreakStringLiterals: false
> +ColumnLimit: 80
> +CommentPragmas: '^ IWYU pragma:'
> +CompactNamespaces: false
> +ConstructorInitializerAllOnOneLineOrOnePerLine: false
> +ConstructorInitializerIndentWidth: 8
> +ContinuationIndentWidth: 8
> +Cpp11BracedListStyle: false
> +DerivePointerAlignment: false
> +DisableFormat: false
> +ExperimentalAutoDetectBinPacking: false
> +FixNamespaceComments: false
> +
> +# Taken from:
> +#   git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ tools/ \
> +#   | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$,  - '\1'," \
> +#   | LC_ALL=C sort -u
> +ForEachMacros: # kernel-value: (long list removed)
> +  # IGT rules, found via:
> +  # git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ lib/ |
> +  #     sed "s,^#define \([^(]\+\).*,'\1'," |
> +  #     grep -v "__" |
> +  #     sort -u    
> +  - 'for_each_collection_data'
> +  - 'for_each_combination'
> +  - 'for_each_connected_output'
> +  - 'for_each_connector_mode'
> +  - 'for_each_ctx_cfg_engine'
> +  - 'for_each_ctx_engine'
> +  - 'for_each_format'
> +  - 'for_each_if'
> +  - 'for_each_memory_region'
> +  - 'for_each_mmap_offset_type'
> +  - 'for_each_physical_engine'
> +  - 'for_each_physical_ring'
> +  - 'for_each_pipe'
> +  - 'for_each_pipe_static'
> +  - 'for_each_pipe_with_single_output'
> +  - 'for_each_pipe_with_valid_output'
> +  - 'for_each_plane_on_pipe'
> +  - 'for_each_prime_number'
> +  - 'for_each_ring'
> +  - 'for_each_subset'
> +  - 'for_each_sysfs_gt_dirfd'
> +  - 'for_each_sysfs_gt_path'
> +  - 'for_each_valid_output_on_pipe'
> +  - 'for_each_variation_nr'
> +  - 'for_each_variation_r'
> +  - 'igt_list_for_each_entry'
> +  - 'igt_list_for_each_entry_reverse'
> +  - 'igt_list_for_each_entry_safe'
> +  - 'igt_list_for_each_entry_safe_reverse'
> +
> +IfMacros: # kernel-value: none
> +  - 'igt_dynamic'
> +  - 'igt_fixture'
> +  - 'igt_fork'
> +  - 'igt_subtest'
> +  - 'igt_subtest_f'
> +  - 'igt_subtest_group'
> +  - 'igt_subtest_with_dynamic'
> +  - 'igt_subtest_with_dynamic_f'
> +  - 'igt_until_timeout'

What version of clang-format is needed for IfMacros?


-- 
Petri Latvala


> +
> +IncludeBlocks: Preserve
> +IncludeCategories:
> +  - Regex: '.*'
> +    Priority: 1
> +IncludeIsMainRegex: '(Test)?$'
> +IndentCaseLabels: false
> +IndentGotoLabels: false
> +IndentPPDirectives: None
> +IndentWidth: 8
> +IndentWrappedFunctionNames: false
> +JavaScriptQuotes: Leave
> +JavaScriptWrapImports: true
> +KeepEmptyLinesAtTheStartOfBlocks: false
> +MacroBlockBegin: ''
> +MacroBlockEnd: ''
> +MaxEmptyLinesToKeep: 1
> +NamespaceIndentation: None
> +ObjCBinPackProtocolList: Auto
> +ObjCBlockIndentWidth: 8
> +ObjCSpaceAfterProperty: true
> +ObjCSpaceBeforeProtocolList: true
> +
> +# Taken from git's rules
> +PenaltyBreakAssignment: 10
> +PenaltyBreakBeforeFirstCallParameter: 30
> +PenaltyBreakComment: 10
> +PenaltyBreakFirstLessLess: 0
> +PenaltyBreakString: 10
> +PenaltyExcessCharacter: 100
> +PenaltyReturnTypeOnItsOwnLine: 60
> +
> +PointerAlignment: Right
> +ReflowComments: true # kernel-value: false
> +SortIncludes: false
> +SortUsingDeclarations: false
> +SpaceAfterCStyleCast: false
> +SpaceAfterTemplateKeyword: true
> +SpaceBeforeAssignmentOperators: true
> +SpaceBeforeCtorInitializerColon: true
> +SpaceBeforeInheritanceColon: true
> +SpaceBeforeParens: ControlStatementsExceptForEachMacros
> +SpaceBeforeRangeBasedForLoopColon: true
> +SpaceInEmptyParentheses: false
> +SpacesBeforeTrailingComments: 1
> +SpacesInAngles: false
> +SpacesInContainerLiterals: false
> +SpacesInCStyleCastParentheses: false
> +SpacesInParentheses: false
> +SpacesInSquareBrackets: false
> +Standard: Cpp03
> +TabWidth: 8
> +UseTab: Always
> +...
> diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
> index 6d1294ad..f2af5a18 100644
> --- a/CONTRIBUTING.md
> +++ b/CONTRIBUTING.md
> @@ -10,8 +10,10 @@ improvements for documentation and new tools and testcases.
>  The Code
>  --------
>  
> -- The code should follow kernel coding style:
> -  https://www.kernel.org/doc/html/latest/process/coding-style.html
> +- The code should follow [kernel coding style](coding-style). Before
> +  sending out a patch, changes can be formatted with
> +  [git-clang-format](git-clang-format). Editors can be configured
> +  using .editorconfig for additional style support.
>  
>  - Testcases (subtests) have to use minus signs (-) as a word separator.
>    The generated documentation contains glossary of commonly used terms.
> @@ -30,9 +32,10 @@ The Code
>    provided by the igt library. The semantic patch lib/igt.cocci can help with
>    more automatic conversions.
>  
> +[coding-style]: https://www.kernel.org/doc/html/latest/process/coding-style.html
> +[git-clang-format]: https://github.com/llvm-mirror/clang/blob/master/tools/clang-format/git-clang-format
>  [igt-describe]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
>  
> -
>  Sending Patches
>  ---------------
>  
> -- 
> 2.37.1.455.g008518b4e5-goog
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3] tooling: Add linux's .clang-format
  2022-08-12 12:53         ` Petri Latvala
@ 2022-08-12 16:00           ` Jim Shargo
  2022-08-19 14:23             ` Jim Shargo
  0 siblings, 1 reply; 15+ messages in thread
From: Jim Shargo @ 2022-08-12 16:00 UTC (permalink / raw)
  To: Petri Latvala; +Cc: Jim Shargo, Development mailing list for IGT GPU Tools

It appears to be 13: https://clang.llvm.org/docs/ClangFormatStyleOptions.html


On Fri, Aug 12, 2022 at 8:54 AM Petri Latvala <petri.latvala@intel.com> wrote:
>
> On Thu, Jul 28, 2022 at 01:57:36PM -0400, Jim Shargo wrote:
> > As I was authoring my first patchset for IGT, I found myself fighting
> > the tooling a bit to get everything right. I had to add a bunch of extra
> > command line args to use my linux checkout's formatting rules to get the
> > style right.
> >
> > I grabbed this from a recent checkout of torvald's repo.
> >
> > The commit I used was: e0dccc3b76fb35bb257b4118367a883073d7390e
> >
> > To make this discoverable to new contributors, this change also
> > updates CONTRIBUTING.md with:
> >
> >   - A link to git-clang-format, which is a useful tool for using
> >   clang-format from git just on a commit's changes
> >   - A link to .editorconfig to make it more discoverable
> >
> > Changes made to the linux kernel style:
> >
> >   - Reflowing comments, including multi-line comments (ReflowComments)
> >   - Support for magic code blocks (ForEachMacros, IfMacros)
> >
> > Signed-off-by: Jim Shargo <jshargo@chromium.org>
> > ---
> > V2 -> V3: Update CONTRIBUTING.md with a note about .editorconfig,
> >           remove reference to .clang-format from the .editorconfig
> > V1 -> V2: Better support for IGT style and addressing comments
> >
> >  .clang-format   | 176 ++++++++++++++++++++++++++++++++++++++++++++++++
> >  CONTRIBUTING.md |   9 ++-
> >  2 files changed, 182 insertions(+), 3 deletions(-)
> >  create mode 100644 .clang-format
> >
> > diff --git a/.clang-format b/.clang-format
> > new file mode 100644
> > index 00000000..da42bead
> > --- /dev/null
> > +++ b/.clang-format
> > @@ -0,0 +1,176 @@
> > +# SPDX-License-Identifier: GPL-2.0
> > +#
> > +# clang-format configuration file. Intended for clang-format >= 11.
> > +#
> > +# For more information, see:
> > +#
> > +#   Documentation/process/clang-format.rst
> > +#   https://clang.llvm.org/docs/ClangFormat.html
> > +#   https://clang.llvm.org/docs/ClangFormatStyleOptions.html
> > +#
> > +# This file was pulled from the linux kernel at revision
> > +# e0dccc3b76fb35bb257b4118367a883073d7390e.
> > +#
> > +# Changes made for IGT-specific styles should include a comment noting
> > +# the previous value with "kernel-value". This makes it clear what we
> > +# want to keep when updating this file.
> > +---
> > +AccessModifierOffset: -4
> > +AlignAfterOpenBracket: Align
> > +AlignConsecutiveAssignments: false
> > +AlignConsecutiveDeclarations: false
> > +AlignEscapedNewlines: Left
> > +AlignOperands: true
> > +AlignTrailingComments: false
> > +AllowAllParametersOfDeclarationOnNextLine: false
> > +AllowShortBlocksOnASingleLine: false
> > +AllowShortCaseLabelsOnASingleLine: false
> > +AllowShortFunctionsOnASingleLine: None
> > +AllowShortIfStatementsOnASingleLine: false
> > +AllowShortLoopsOnASingleLine: false
> > +AlwaysBreakAfterDefinitionReturnType: None
> > +AlwaysBreakAfterReturnType: None
> > +AlwaysBreakBeforeMultilineStrings: false
> > +AlwaysBreakTemplateDeclarations: false
> > +BinPackArguments: true
> > +BinPackParameters: true
> > +BraceWrapping:
> > +  AfterClass: false
> > +  AfterControlStatement: false
> > +  AfterEnum: false
> > +  AfterFunction: true
> > +  AfterNamespace: true
> > +  AfterObjCDeclaration: false
> > +  AfterStruct: false
> > +  AfterUnion: false
> > +  AfterExternBlock: false
> > +  BeforeCatch: false
> > +  BeforeElse: false
> > +  IndentBraces: false
> > +  SplitEmptyFunction: true
> > +  SplitEmptyRecord: true
> > +  SplitEmptyNamespace: true
> > +BreakBeforeBinaryOperators: None
> > +BreakBeforeBraces: Custom
> > +BreakBeforeInheritanceComma: false
> > +BreakBeforeTernaryOperators: false
> > +BreakConstructorInitializersBeforeComma: false
> > +BreakConstructorInitializers: BeforeComma
> > +BreakAfterJavaFieldAnnotations: false
> > +BreakStringLiterals: false
> > +ColumnLimit: 80
> > +CommentPragmas: '^ IWYU pragma:'
> > +CompactNamespaces: false
> > +ConstructorInitializerAllOnOneLineOrOnePerLine: false
> > +ConstructorInitializerIndentWidth: 8
> > +ContinuationIndentWidth: 8
> > +Cpp11BracedListStyle: false
> > +DerivePointerAlignment: false
> > +DisableFormat: false
> > +ExperimentalAutoDetectBinPacking: false
> > +FixNamespaceComments: false
> > +
> > +# Taken from:
> > +#   git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ tools/ \
> > +#   | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$,  - '\1'," \
> > +#   | LC_ALL=C sort -u
> > +ForEachMacros: # kernel-value: (long list removed)
> > +  # IGT rules, found via:
> > +  # git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ lib/ |
> > +  #     sed "s,^#define \([^(]\+\).*,'\1'," |
> > +  #     grep -v "__" |
> > +  #     sort -u
> > +  - 'for_each_collection_data'
> > +  - 'for_each_combination'
> > +  - 'for_each_connected_output'
> > +  - 'for_each_connector_mode'
> > +  - 'for_each_ctx_cfg_engine'
> > +  - 'for_each_ctx_engine'
> > +  - 'for_each_format'
> > +  - 'for_each_if'
> > +  - 'for_each_memory_region'
> > +  - 'for_each_mmap_offset_type'
> > +  - 'for_each_physical_engine'
> > +  - 'for_each_physical_ring'
> > +  - 'for_each_pipe'
> > +  - 'for_each_pipe_static'
> > +  - 'for_each_pipe_with_single_output'
> > +  - 'for_each_pipe_with_valid_output'
> > +  - 'for_each_plane_on_pipe'
> > +  - 'for_each_prime_number'
> > +  - 'for_each_ring'
> > +  - 'for_each_subset'
> > +  - 'for_each_sysfs_gt_dirfd'
> > +  - 'for_each_sysfs_gt_path'
> > +  - 'for_each_valid_output_on_pipe'
> > +  - 'for_each_variation_nr'
> > +  - 'for_each_variation_r'
> > +  - 'igt_list_for_each_entry'
> > +  - 'igt_list_for_each_entry_reverse'
> > +  - 'igt_list_for_each_entry_safe'
> > +  - 'igt_list_for_each_entry_safe_reverse'
> > +
> > +IfMacros: # kernel-value: none
> > +  - 'igt_dynamic'
> > +  - 'igt_fixture'
> > +  - 'igt_fork'
> > +  - 'igt_subtest'
> > +  - 'igt_subtest_f'
> > +  - 'igt_subtest_group'
> > +  - 'igt_subtest_with_dynamic'
> > +  - 'igt_subtest_with_dynamic_f'
> > +  - 'igt_until_timeout'
>
> What version of clang-format is needed for IfMacros?
>
>
> --
> Petri Latvala
>
>
> > +
> > +IncludeBlocks: Preserve
> > +IncludeCategories:
> > +  - Regex: '.*'
> > +    Priority: 1
> > +IncludeIsMainRegex: '(Test)?$'
> > +IndentCaseLabels: false
> > +IndentGotoLabels: false
> > +IndentPPDirectives: None
> > +IndentWidth: 8
> > +IndentWrappedFunctionNames: false
> > +JavaScriptQuotes: Leave
> > +JavaScriptWrapImports: true
> > +KeepEmptyLinesAtTheStartOfBlocks: false
> > +MacroBlockBegin: ''
> > +MacroBlockEnd: ''
> > +MaxEmptyLinesToKeep: 1
> > +NamespaceIndentation: None
> > +ObjCBinPackProtocolList: Auto
> > +ObjCBlockIndentWidth: 8
> > +ObjCSpaceAfterProperty: true
> > +ObjCSpaceBeforeProtocolList: true
> > +
> > +# Taken from git's rules
> > +PenaltyBreakAssignment: 10
> > +PenaltyBreakBeforeFirstCallParameter: 30
> > +PenaltyBreakComment: 10
> > +PenaltyBreakFirstLessLess: 0
> > +PenaltyBreakString: 10
> > +PenaltyExcessCharacter: 100
> > +PenaltyReturnTypeOnItsOwnLine: 60
> > +
> > +PointerAlignment: Right
> > +ReflowComments: true # kernel-value: false
> > +SortIncludes: false
> > +SortUsingDeclarations: false
> > +SpaceAfterCStyleCast: false
> > +SpaceAfterTemplateKeyword: true
> > +SpaceBeforeAssignmentOperators: true
> > +SpaceBeforeCtorInitializerColon: true
> > +SpaceBeforeInheritanceColon: true
> > +SpaceBeforeParens: ControlStatementsExceptForEachMacros
> > +SpaceBeforeRangeBasedForLoopColon: true
> > +SpaceInEmptyParentheses: false
> > +SpacesBeforeTrailingComments: 1
> > +SpacesInAngles: false
> > +SpacesInContainerLiterals: false
> > +SpacesInCStyleCastParentheses: false
> > +SpacesInParentheses: false
> > +SpacesInSquareBrackets: false
> > +Standard: Cpp03
> > +TabWidth: 8
> > +UseTab: Always
> > +...
> > diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
> > index 6d1294ad..f2af5a18 100644
> > --- a/CONTRIBUTING.md
> > +++ b/CONTRIBUTING.md
> > @@ -10,8 +10,10 @@ improvements for documentation and new tools and testcases.
> >  The Code
> >  --------
> >
> > -- The code should follow kernel coding style:
> > -  https://www.kernel.org/doc/html/latest/process/coding-style.html
> > +- The code should follow [kernel coding style](coding-style). Before
> > +  sending out a patch, changes can be formatted with
> > +  [git-clang-format](git-clang-format). Editors can be configured
> > +  using .editorconfig for additional style support.
> >
> >  - Testcases (subtests) have to use minus signs (-) as a word separator.
> >    The generated documentation contains glossary of commonly used terms.
> > @@ -30,9 +32,10 @@ The Code
> >    provided by the igt library. The semantic patch lib/igt.cocci can help with
> >    more automatic conversions.
> >
> > +[coding-style]: https://www.kernel.org/doc/html/latest/process/coding-style.html
> > +[git-clang-format]: https://github.com/llvm-mirror/clang/blob/master/tools/clang-format/git-clang-format
> >  [igt-describe]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
> >
> > -
> >  Sending Patches
> >  ---------------
> >
> > --
> > 2.37.1.455.g008518b4e5-goog
> >

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3] tooling: Add linux's .clang-format
  2022-08-12 16:00           ` Jim Shargo
@ 2022-08-19 14:23             ` Jim Shargo
  0 siblings, 0 replies; 15+ messages in thread
From: Jim Shargo @ 2022-08-19 14:23 UTC (permalink / raw)
  To: Jim Shargo; +Cc: Development mailing list for IGT GPU Tools, Petri Latvala

[-- Attachment #1: Type: text/plain, Size: 9923 bytes --]

Hi!

Just checking in--is this ready to commit? Is there anything else I need to
fix up?

Thanks!


On Fri, Aug 12, 2022 at 12:00 PM Jim Shargo <jshargo@google.com> wrote:

> It appears to be 13:
> https://clang.llvm.org/docs/ClangFormatStyleOptions.html
>
>
> On Fri, Aug 12, 2022 at 8:54 AM Petri Latvala <petri.latvala@intel.com>
> wrote:
> >
> > On Thu, Jul 28, 2022 at 01:57:36PM -0400, Jim Shargo wrote:
> > > As I was authoring my first patchset for IGT, I found myself fighting
> > > the tooling a bit to get everything right. I had to add a bunch of
> extra
> > > command line args to use my linux checkout's formatting rules to get
> the
> > > style right.
> > >
> > > I grabbed this from a recent checkout of torvald's repo.
> > >
> > > The commit I used was: e0dccc3b76fb35bb257b4118367a883073d7390e
> > >
> > > To make this discoverable to new contributors, this change also
> > > updates CONTRIBUTING.md with:
> > >
> > >   - A link to git-clang-format, which is a useful tool for using
> > >   clang-format from git just on a commit's changes
> > >   - A link to .editorconfig to make it more discoverable
> > >
> > > Changes made to the linux kernel style:
> > >
> > >   - Reflowing comments, including multi-line comments (ReflowComments)
> > >   - Support for magic code blocks (ForEachMacros, IfMacros)
> > >
> > > Signed-off-by: Jim Shargo <jshargo@chromium.org>
> > > ---
> > > V2 -> V3: Update CONTRIBUTING.md with a note about .editorconfig,
> > >           remove reference to .clang-format from the .editorconfig
> > > V1 -> V2: Better support for IGT style and addressing comments
> > >
> > >  .clang-format   | 176 ++++++++++++++++++++++++++++++++++++++++++++++++
> > >  CONTRIBUTING.md |   9 ++-
> > >  2 files changed, 182 insertions(+), 3 deletions(-)
> > >  create mode 100644 .clang-format
> > >
> > > diff --git a/.clang-format b/.clang-format
> > > new file mode 100644
> > > index 00000000..da42bead
> > > --- /dev/null
> > > +++ b/.clang-format
> > > @@ -0,0 +1,176 @@
> > > +# SPDX-License-Identifier: GPL-2.0
> > > +#
> > > +# clang-format configuration file. Intended for clang-format >= 11.
> > > +#
> > > +# For more information, see:
> > > +#
> > > +#   Documentation/process/clang-format.rst
> > > +#   https://clang.llvm.org/docs/ClangFormat.html
> > > +#   https://clang.llvm.org/docs/ClangFormatStyleOptions.html
> > > +#
> > > +# This file was pulled from the linux kernel at revision
> > > +# e0dccc3b76fb35bb257b4118367a883073d7390e.
> > > +#
> > > +# Changes made for IGT-specific styles should include a comment noting
> > > +# the previous value with "kernel-value". This makes it clear what we
> > > +# want to keep when updating this file.
> > > +---
> > > +AccessModifierOffset: -4
> > > +AlignAfterOpenBracket: Align
> > > +AlignConsecutiveAssignments: false
> > > +AlignConsecutiveDeclarations: false
> > > +AlignEscapedNewlines: Left
> > > +AlignOperands: true
> > > +AlignTrailingComments: false
> > > +AllowAllParametersOfDeclarationOnNextLine: false
> > > +AllowShortBlocksOnASingleLine: false
> > > +AllowShortCaseLabelsOnASingleLine: false
> > > +AllowShortFunctionsOnASingleLine: None
> > > +AllowShortIfStatementsOnASingleLine: false
> > > +AllowShortLoopsOnASingleLine: false
> > > +AlwaysBreakAfterDefinitionReturnType: None
> > > +AlwaysBreakAfterReturnType: None
> > > +AlwaysBreakBeforeMultilineStrings: false
> > > +AlwaysBreakTemplateDeclarations: false
> > > +BinPackArguments: true
> > > +BinPackParameters: true
> > > +BraceWrapping:
> > > +  AfterClass: false
> > > +  AfterControlStatement: false
> > > +  AfterEnum: false
> > > +  AfterFunction: true
> > > +  AfterNamespace: true
> > > +  AfterObjCDeclaration: false
> > > +  AfterStruct: false
> > > +  AfterUnion: false
> > > +  AfterExternBlock: false
> > > +  BeforeCatch: false
> > > +  BeforeElse: false
> > > +  IndentBraces: false
> > > +  SplitEmptyFunction: true
> > > +  SplitEmptyRecord: true
> > > +  SplitEmptyNamespace: true
> > > +BreakBeforeBinaryOperators: None
> > > +BreakBeforeBraces: Custom
> > > +BreakBeforeInheritanceComma: false
> > > +BreakBeforeTernaryOperators: false
> > > +BreakConstructorInitializersBeforeComma: false
> > > +BreakConstructorInitializers: BeforeComma
> > > +BreakAfterJavaFieldAnnotations: false
> > > +BreakStringLiterals: false
> > > +ColumnLimit: 80
> > > +CommentPragmas: '^ IWYU pragma:'
> > > +CompactNamespaces: false
> > > +ConstructorInitializerAllOnOneLineOrOnePerLine: false
> > > +ConstructorInitializerIndentWidth: 8
> > > +ContinuationIndentWidth: 8
> > > +Cpp11BracedListStyle: false
> > > +DerivePointerAlignment: false
> > > +DisableFormat: false
> > > +ExperimentalAutoDetectBinPacking: false
> > > +FixNamespaceComments: false
> > > +
> > > +# Taken from:
> > > +#   git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*('
> include/ tools/ \
> > > +#   | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$,  -
> '\1'," \
> > > +#   | LC_ALL=C sort -u
> > > +ForEachMacros: # kernel-value: (long list removed)
> > > +  # IGT rules, found via:
> > > +  # git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*('
> include/ lib/ |
> > > +  #     sed "s,^#define \([^(]\+\).*,'\1'," |
> > > +  #     grep -v "__" |
> > > +  #     sort -u
> > > +  - 'for_each_collection_data'
> > > +  - 'for_each_combination'
> > > +  - 'for_each_connected_output'
> > > +  - 'for_each_connector_mode'
> > > +  - 'for_each_ctx_cfg_engine'
> > > +  - 'for_each_ctx_engine'
> > > +  - 'for_each_format'
> > > +  - 'for_each_if'
> > > +  - 'for_each_memory_region'
> > > +  - 'for_each_mmap_offset_type'
> > > +  - 'for_each_physical_engine'
> > > +  - 'for_each_physical_ring'
> > > +  - 'for_each_pipe'
> > > +  - 'for_each_pipe_static'
> > > +  - 'for_each_pipe_with_single_output'
> > > +  - 'for_each_pipe_with_valid_output'
> > > +  - 'for_each_plane_on_pipe'
> > > +  - 'for_each_prime_number'
> > > +  - 'for_each_ring'
> > > +  - 'for_each_subset'
> > > +  - 'for_each_sysfs_gt_dirfd'
> > > +  - 'for_each_sysfs_gt_path'
> > > +  - 'for_each_valid_output_on_pipe'
> > > +  - 'for_each_variation_nr'
> > > +  - 'for_each_variation_r'
> > > +  - 'igt_list_for_each_entry'
> > > +  - 'igt_list_for_each_entry_reverse'
> > > +  - 'igt_list_for_each_entry_safe'
> > > +  - 'igt_list_for_each_entry_safe_reverse'
> > > +
> > > +IfMacros: # kernel-value: none
> > > +  - 'igt_dynamic'
> > > +  - 'igt_fixture'
> > > +  - 'igt_fork'
> > > +  - 'igt_subtest'
> > > +  - 'igt_subtest_f'
> > > +  - 'igt_subtest_group'
> > > +  - 'igt_subtest_with_dynamic'
> > > +  - 'igt_subtest_with_dynamic_f'
> > > +  - 'igt_until_timeout'
> >
> > What version of clang-format is needed for IfMacros?
> >
> >
> > --
> > Petri Latvala
> >
> >
> > > +
> > > +IncludeBlocks: Preserve
> > > +IncludeCategories:
> > > +  - Regex: '.*'
> > > +    Priority: 1
> > > +IncludeIsMainRegex: '(Test)?$'
> > > +IndentCaseLabels: false
> > > +IndentGotoLabels: false
> > > +IndentPPDirectives: None
> > > +IndentWidth: 8
> > > +IndentWrappedFunctionNames: false
> > > +JavaScriptQuotes: Leave
> > > +JavaScriptWrapImports: true
> > > +KeepEmptyLinesAtTheStartOfBlocks: false
> > > +MacroBlockBegin: ''
> > > +MacroBlockEnd: ''
> > > +MaxEmptyLinesToKeep: 1
> > > +NamespaceIndentation: None
> > > +ObjCBinPackProtocolList: Auto
> > > +ObjCBlockIndentWidth: 8
> > > +ObjCSpaceAfterProperty: true
> > > +ObjCSpaceBeforeProtocolList: true
> > > +
> > > +# Taken from git's rules
> > > +PenaltyBreakAssignment: 10
> > > +PenaltyBreakBeforeFirstCallParameter: 30
> > > +PenaltyBreakComment: 10
> > > +PenaltyBreakFirstLessLess: 0
> > > +PenaltyBreakString: 10
> > > +PenaltyExcessCharacter: 100
> > > +PenaltyReturnTypeOnItsOwnLine: 60
> > > +
> > > +PointerAlignment: Right
> > > +ReflowComments: true # kernel-value: false
> > > +SortIncludes: false
> > > +SortUsingDeclarations: false
> > > +SpaceAfterCStyleCast: false
> > > +SpaceAfterTemplateKeyword: true
> > > +SpaceBeforeAssignmentOperators: true
> > > +SpaceBeforeCtorInitializerColon: true
> > > +SpaceBeforeInheritanceColon: true
> > > +SpaceBeforeParens: ControlStatementsExceptForEachMacros
> > > +SpaceBeforeRangeBasedForLoopColon: true
> > > +SpaceInEmptyParentheses: false
> > > +SpacesBeforeTrailingComments: 1
> > > +SpacesInAngles: false
> > > +SpacesInContainerLiterals: false
> > > +SpacesInCStyleCastParentheses: false
> > > +SpacesInParentheses: false
> > > +SpacesInSquareBrackets: false
> > > +Standard: Cpp03
> > > +TabWidth: 8
> > > +UseTab: Always
> > > +...
> > > diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
> > > index 6d1294ad..f2af5a18 100644
> > > --- a/CONTRIBUTING.md
> > > +++ b/CONTRIBUTING.md
> > > @@ -10,8 +10,10 @@ improvements for documentation and new tools and
> testcases.
> > >  The Code
> > >  --------
> > >
> > > -- The code should follow kernel coding style:
> > > -  https://www.kernel.org/doc/html/latest/process/coding-style.html
> > > +- The code should follow [kernel coding style](coding-style). Before
> > > +  sending out a patch, changes can be formatted with
> > > +  [git-clang-format](git-clang-format). Editors can be configured
> > > +  using .editorconfig for additional style support.
> > >
> > >  - Testcases (subtests) have to use minus signs (-) as a word
> separator.
> > >    The generated documentation contains glossary of commonly used
> terms.
> > > @@ -30,9 +32,10 @@ The Code
> > >    provided by the igt library. The semantic patch lib/igt.cocci can
> help with
> > >    more automatic conversions.
> > >
> > > +[coding-style]:
> https://www.kernel.org/doc/html/latest/process/coding-style.html
> > > +[git-clang-format]:
> https://github.com/llvm-mirror/clang/blob/master/tools/clang-format/git-clang-format
> > >  [igt-describe]:
> https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
> > >
> > > -
> > >  Sending Patches
> > >  ---------------
> > >
> > > --
> > > 2.37.1.455.g008518b4e5-goog
> > >
>

[-- Attachment #2: Type: text/html, Size: 14006 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3] tooling: Add linux's .clang-format
  2022-07-28 17:57       ` [igt-dev] [PATCH i-g-t v3] " Jim Shargo
  2022-08-12 12:53         ` Petri Latvala
@ 2022-08-23 11:01         ` Petri Latvala
  2023-08-31 17:03         ` Mauro Carvalho Chehab
  2 siblings, 0 replies; 15+ messages in thread
From: Petri Latvala @ 2022-08-23 11:01 UTC (permalink / raw)
  To: Jim Shargo; +Cc: Development mailing list for IGT GPU Tools

On Thu, Jul 28, 2022 at 01:57:36PM -0400, Jim Shargo wrote:
> As I was authoring my first patchset for IGT, I found myself fighting
> the tooling a bit to get everything right. I had to add a bunch of extra
> command line args to use my linux checkout's formatting rules to get the
> style right.
> 
> I grabbed this from a recent checkout of torvald's repo.
> 
> The commit I used was: e0dccc3b76fb35bb257b4118367a883073d7390e
> 
> To make this discoverable to new contributors, this change also
> updates CONTRIBUTING.md with:
> 
>   - A link to git-clang-format, which is a useful tool for using
>   clang-format from git just on a commit's changes
>   - A link to .editorconfig to make it more discoverable
> 
> Changes made to the linux kernel style:
> 
>   - Reflowing comments, including multi-line comments (ReflowComments)
>   - Support for magic code blocks (ForEachMacros, IfMacros)
> 
> Signed-off-by: Jim Shargo <jshargo@chromium.org>
> ---

It looks good in this form. Just two observations now:

igt_fork_helper() gets its {} incorrectly placed, example in
lib/igt_aux.c. Didn't spot this last time.

Is it possible to have function attributes on their separate lines?
Example diff that clang-format produces with this:

-__attribute__((format(printf, 2, 3)))
-static void internal_assert(bool cond, const char *format, ...)
+__attribute__((format(printf, 2, 3))) static void
+internal_assert(bool cond, const char *format, ...)

Other stuff that it changes that I semi-quickly checked are either
debatable differences, absolutely correct, or irrelevantly different
so that should be the last things to mention.

Oh, and the minimum clang-format version needs to be mentioned in the
docs, Debian stable for example only has 11.

-- 
Petri Latvala



> V2 -> V3: Update CONTRIBUTING.md with a note about .editorconfig,
>           remove reference to .clang-format from the .editorconfig
> V1 -> V2: Better support for IGT style and addressing comments
> 
>  .clang-format   | 176 ++++++++++++++++++++++++++++++++++++++++++++++++
>  CONTRIBUTING.md |   9 ++-
>  2 files changed, 182 insertions(+), 3 deletions(-)
>  create mode 100644 .clang-format
> 
> diff --git a/.clang-format b/.clang-format
> new file mode 100644
> index 00000000..da42bead
> --- /dev/null
> +++ b/.clang-format
> @@ -0,0 +1,176 @@
> +# SPDX-License-Identifier: GPL-2.0
> +#
> +# clang-format configuration file. Intended for clang-format >= 11.
> +#
> +# For more information, see:
> +#
> +#   Documentation/process/clang-format.rst
> +#   https://clang.llvm.org/docs/ClangFormat.html
> +#   https://clang.llvm.org/docs/ClangFormatStyleOptions.html
> +#
> +# This file was pulled from the linux kernel at revision
> +# e0dccc3b76fb35bb257b4118367a883073d7390e.
> +#
> +# Changes made for IGT-specific styles should include a comment noting
> +# the previous value with "kernel-value". This makes it clear what we
> +# want to keep when updating this file.
> +---
> +AccessModifierOffset: -4
> +AlignAfterOpenBracket: Align
> +AlignConsecutiveAssignments: false
> +AlignConsecutiveDeclarations: false
> +AlignEscapedNewlines: Left
> +AlignOperands: true
> +AlignTrailingComments: false
> +AllowAllParametersOfDeclarationOnNextLine: false
> +AllowShortBlocksOnASingleLine: false
> +AllowShortCaseLabelsOnASingleLine: false
> +AllowShortFunctionsOnASingleLine: None
> +AllowShortIfStatementsOnASingleLine: false
> +AllowShortLoopsOnASingleLine: false
> +AlwaysBreakAfterDefinitionReturnType: None
> +AlwaysBreakAfterReturnType: None
> +AlwaysBreakBeforeMultilineStrings: false
> +AlwaysBreakTemplateDeclarations: false
> +BinPackArguments: true
> +BinPackParameters: true
> +BraceWrapping:
> +  AfterClass: false
> +  AfterControlStatement: false
> +  AfterEnum: false
> +  AfterFunction: true
> +  AfterNamespace: true
> +  AfterObjCDeclaration: false
> +  AfterStruct: false
> +  AfterUnion: false
> +  AfterExternBlock: false
> +  BeforeCatch: false
> +  BeforeElse: false
> +  IndentBraces: false
> +  SplitEmptyFunction: true
> +  SplitEmptyRecord: true
> +  SplitEmptyNamespace: true
> +BreakBeforeBinaryOperators: None
> +BreakBeforeBraces: Custom
> +BreakBeforeInheritanceComma: false
> +BreakBeforeTernaryOperators: false
> +BreakConstructorInitializersBeforeComma: false
> +BreakConstructorInitializers: BeforeComma
> +BreakAfterJavaFieldAnnotations: false
> +BreakStringLiterals: false
> +ColumnLimit: 80
> +CommentPragmas: '^ IWYU pragma:'
> +CompactNamespaces: false
> +ConstructorInitializerAllOnOneLineOrOnePerLine: false
> +ConstructorInitializerIndentWidth: 8
> +ContinuationIndentWidth: 8
> +Cpp11BracedListStyle: false
> +DerivePointerAlignment: false
> +DisableFormat: false
> +ExperimentalAutoDetectBinPacking: false
> +FixNamespaceComments: false
> +
> +# Taken from:
> +#   git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ tools/ \
> +#   | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$,  - '\1'," \
> +#   | LC_ALL=C sort -u
> +ForEachMacros: # kernel-value: (long list removed)
> +  # IGT rules, found via:
> +  # git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ lib/ |
> +  #     sed "s,^#define \([^(]\+\).*,'\1'," |
> +  #     grep -v "__" |
> +  #     sort -u    
> +  - 'for_each_collection_data'
> +  - 'for_each_combination'
> +  - 'for_each_connected_output'
> +  - 'for_each_connector_mode'
> +  - 'for_each_ctx_cfg_engine'
> +  - 'for_each_ctx_engine'
> +  - 'for_each_format'
> +  - 'for_each_if'
> +  - 'for_each_memory_region'
> +  - 'for_each_mmap_offset_type'
> +  - 'for_each_physical_engine'
> +  - 'for_each_physical_ring'
> +  - 'for_each_pipe'
> +  - 'for_each_pipe_static'
> +  - 'for_each_pipe_with_single_output'
> +  - 'for_each_pipe_with_valid_output'
> +  - 'for_each_plane_on_pipe'
> +  - 'for_each_prime_number'
> +  - 'for_each_ring'
> +  - 'for_each_subset'
> +  - 'for_each_sysfs_gt_dirfd'
> +  - 'for_each_sysfs_gt_path'
> +  - 'for_each_valid_output_on_pipe'
> +  - 'for_each_variation_nr'
> +  - 'for_each_variation_r'
> +  - 'igt_list_for_each_entry'
> +  - 'igt_list_for_each_entry_reverse'
> +  - 'igt_list_for_each_entry_safe'
> +  - 'igt_list_for_each_entry_safe_reverse'
> +
> +IfMacros: # kernel-value: none
> +  - 'igt_dynamic'
> +  - 'igt_fixture'
> +  - 'igt_fork'
> +  - 'igt_subtest'
> +  - 'igt_subtest_f'
> +  - 'igt_subtest_group'
> +  - 'igt_subtest_with_dynamic'
> +  - 'igt_subtest_with_dynamic_f'
> +  - 'igt_until_timeout'
> +
> +IncludeBlocks: Preserve
> +IncludeCategories:
> +  - Regex: '.*'
> +    Priority: 1
> +IncludeIsMainRegex: '(Test)?$'
> +IndentCaseLabels: false
> +IndentGotoLabels: false
> +IndentPPDirectives: None
> +IndentWidth: 8
> +IndentWrappedFunctionNames: false
> +JavaScriptQuotes: Leave
> +JavaScriptWrapImports: true
> +KeepEmptyLinesAtTheStartOfBlocks: false
> +MacroBlockBegin: ''
> +MacroBlockEnd: ''
> +MaxEmptyLinesToKeep: 1
> +NamespaceIndentation: None
> +ObjCBinPackProtocolList: Auto
> +ObjCBlockIndentWidth: 8
> +ObjCSpaceAfterProperty: true
> +ObjCSpaceBeforeProtocolList: true
> +
> +# Taken from git's rules
> +PenaltyBreakAssignment: 10
> +PenaltyBreakBeforeFirstCallParameter: 30
> +PenaltyBreakComment: 10
> +PenaltyBreakFirstLessLess: 0
> +PenaltyBreakString: 10
> +PenaltyExcessCharacter: 100
> +PenaltyReturnTypeOnItsOwnLine: 60
> +
> +PointerAlignment: Right
> +ReflowComments: true # kernel-value: false
> +SortIncludes: false
> +SortUsingDeclarations: false
> +SpaceAfterCStyleCast: false
> +SpaceAfterTemplateKeyword: true
> +SpaceBeforeAssignmentOperators: true
> +SpaceBeforeCtorInitializerColon: true
> +SpaceBeforeInheritanceColon: true
> +SpaceBeforeParens: ControlStatementsExceptForEachMacros
> +SpaceBeforeRangeBasedForLoopColon: true
> +SpaceInEmptyParentheses: false
> +SpacesBeforeTrailingComments: 1
> +SpacesInAngles: false
> +SpacesInContainerLiterals: false
> +SpacesInCStyleCastParentheses: false
> +SpacesInParentheses: false
> +SpacesInSquareBrackets: false
> +Standard: Cpp03
> +TabWidth: 8
> +UseTab: Always
> +...
> diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
> index 6d1294ad..f2af5a18 100644
> --- a/CONTRIBUTING.md
> +++ b/CONTRIBUTING.md
> @@ -10,8 +10,10 @@ improvements for documentation and new tools and testcases.
>  The Code
>  --------
>  
> -- The code should follow kernel coding style:
> -  https://www.kernel.org/doc/html/latest/process/coding-style.html
> +- The code should follow [kernel coding style](coding-style). Before
> +  sending out a patch, changes can be formatted with
> +  [git-clang-format](git-clang-format). Editors can be configured
> +  using .editorconfig for additional style support.
>  
>  - Testcases (subtests) have to use minus signs (-) as a word separator.
>    The generated documentation contains glossary of commonly used terms.
> @@ -30,9 +32,10 @@ The Code
>    provided by the igt library. The semantic patch lib/igt.cocci can help with
>    more automatic conversions.
>  
> +[coding-style]: https://www.kernel.org/doc/html/latest/process/coding-style.html
> +[git-clang-format]: https://github.com/llvm-mirror/clang/blob/master/tools/clang-format/git-clang-format
>  [igt-describe]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
>  
> -
>  Sending Patches
>  ---------------
>  
> -- 
> 2.37.1.455.g008518b4e5-goog
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3] tooling: Add linux's .clang-format
  2022-07-28 17:57       ` [igt-dev] [PATCH i-g-t v3] " Jim Shargo
  2022-08-12 12:53         ` Petri Latvala
  2022-08-23 11:01         ` Petri Latvala
@ 2023-08-31 17:03         ` Mauro Carvalho Chehab
  2 siblings, 0 replies; 15+ messages in thread
From: Mauro Carvalho Chehab @ 2023-08-31 17:03 UTC (permalink / raw)
  To: Jim Shargo; +Cc: Development mailing list for IGT GPU Tools, Petri Latvala

On Thu, 28 Jul 2022 13:57:36 -0400
Jim Shargo <jshargo@chromium.org> wrote:

> As I was authoring my first patchset for IGT, I found myself fighting
> the tooling a bit to get everything right. I had to add a bunch of extra
> command line args to use my linux checkout's formatting rules to get the
> style right.
> 
> I grabbed this from a recent checkout of torvald's repo.
> 
> The commit I used was: e0dccc3b76fb35bb257b4118367a883073d7390e
> 
> To make this discoverable to new contributors, this change also
> updates CONTRIBUTING.md with:
> 
>   - A link to git-clang-format, which is a useful tool for using
>   clang-format from git just on a commit's changes
>   - A link to .editorconfig to make it more discoverable
> 
> Changes made to the linux kernel style:
> 
>   - Reflowing comments, including multi-line comments (ReflowComments)
>   - Support for magic code blocks (ForEachMacros, IfMacros)
> 
> Signed-off-by: Jim Shargo <jshargo@chromium.org>

This is not a full validation of the results, but, running this with:

	git-clang-format 8c64183a461a

I found several places where the output format is worse than what
we have. Strictly speaking, the results may be following the 
documented Kernel coding style, but for sure they don't follow the usual
Kernel nor IGT practices. Also, checkpatch.pl won't be complaining
about such things as the original code already follows the Kernel
coding style.

Some examples below:

	 #ifndef likely
	-#  ifdef __GNUC__
	-#    define likely(x)   __builtin_expect(!!(x), 1)
	-#    define unlikely(x) __builtin_expect(!!(x), 0)
	-#  else
	-#    define likely(x)   (x)
	-#    define unlikely(x) (x)
	-#  endif
	+#ifdef __GNUC__
	+#define likely(x) __builtin_expect(!!(x), 1)
	+#define unlikely(x) __builtin_expect(!!(x), 0)
	+#else
	+#define likely(x) (x)
	+#define unlikely(x) (x)
	+#endif
	 #endif

The above is a lot worse to read, making reviews harder.

Other defines also are re-formatted in a way that makes harder
to review:

	-#define PIPE_CONTROL_NOWRITE          0x00
	-#define PIPE_CONTROL_WRITEIMMEDIATE   0x01
	-#define PIPE_CONTROL_WRITEDEPTH       0x02
	-#define PIPE_CONTROL_WRITETIMESTAMP   0x03
	+#define PIPE_CONTROL_NOWRITE 0x00
	+#define PIPE_CONTROL_WRITEIMMEDIATE 0x01
	+#define PIPE_CONTROL_WRITEDEPTH 0x02
	+#define PIPE_CONTROL_WRITETIMESTAMP 0x03

Tables are also weird-formatted:

        -static const char * const end_of_thread[2] = {
        -    [0] = "",
        -    [1] = "EOT"
        -};
        -
        +static const char *const end_of_thread[2] = { [0] = "", [1] = "EOT" };

Placing multiple values per line. On a small tame like this, not
a big issue, but on bigger tables, it makes a lot harder to check
if there are gaps at the values.

Looking at function prototypes:

        -static int src_ia1 (FILE *file,
        -                   unsigned type,
        -                   unsigned _reg_file,
        -                   int _addr_imm,
        -                   unsigned _addr_subreg_nr,
        -                   unsigned _negate,
        -                   unsigned __abs,
        -                   unsigned _addr_mode,
        -                   unsigned _horiz_stride,
        -                   unsigned _width,
        -                   unsigned _vert_stride)
        +static int src_ia1(FILE *file, unsigned type, unsigned _reg_file, int _addr_imm,
        +                  unsigned _addr_subreg_nr, unsigned _negate, unsigned __abs,
        +                  unsigned _addr_mode, unsigned _horiz_stride, unsigned _width,
        +                  unsigned _vert_stride)

At least for functions with that many arguments, having one argument
per line makes easier for reviewers and for users.

So, I'd say it is not ready yet for merging.

Regards,
Mauro

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2023-08-31 17:04 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-26 19:01 [igt-dev] [PATCH i-g-t] tooling: Add linux's .clang-format Jim Shargo
2022-07-27 10:52 ` Petri Latvala
2022-07-27 20:10   ` Jim Shargo
2022-07-27 20:21   ` [igt-dev] [PATCH i-g-t v2] " Jim Shargo
2022-07-28  7:55     ` Petri Latvala
2022-07-28 17:55       ` Jim Shargo
2022-07-28 17:57       ` [igt-dev] [PATCH i-g-t v3] " Jim Shargo
2022-08-12 12:53         ` Petri Latvala
2022-08-12 16:00           ` Jim Shargo
2022-08-19 14:23             ` Jim Shargo
2022-08-23 11:01         ` Petri Latvala
2023-08-31 17:03         ` Mauro Carvalho Chehab
2022-07-29  9:21   ` [igt-dev] ✓ Fi.CI.BAT: success for tooling: Add linux's .clang-format (rev3) Patchwork
2022-07-29 10:38   ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2022-08-02 22:25     ` Jim Shargo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.