perf: Rework event_init checks
Subsystems (48)
Robin Murphy
maintainercover perf: Rework event_init checks
Hi all,
[ Note I'm only CC'ing lists for now to avoid spamming nearly 100
individual maintainers/reviewers while we work out the basics ]
Reviving my idea from a few years back, the aim here is to minimise the amount of event_init boilerplate that most new drivers have to implement (and so many get wrong), while also trying to establish some more consistent and easy-to-follow patterns for the things that drivers should still care about (mostly group validation).
It's ended up somewhat big and ugly, so to start with I've tried to optimise for ease of review - based on the typical "fixes, cleanup, new development" order the split of the current patches is like so:
* Group validation rework (patches #1-#15)
- Specific drivers with functional issues by inspection (#1-#7)
- Specific drivers where cleanup changes were non-trivial (#8-#11)
- Common patterns across remaining drivers (#12-#15)
* Capabilities rework (patches #16-#18)
* Giant bonfire of remaining boilerplate! (patch #19)
If the overall idea is acceptable then a more relaxed merge strategy might be to look at landing the common parts first (#16-#18 and maybe #13), then rearrange the rest into per-driver patches, but I'm sure nobody wants a ~70-patch series out of the gate :)
Thanks,
Robin.
Robin Murphy (19):
perf/arm-cmn: Fix event validation perf/hisilicon: Fix group validation perf/imx8_ddr: Fix group validation perf/starfive: Fix group validation iommu/vt-d: Fix perfmon group validation
ARM: l2x0: Fix group validation
ARM: imx: Fix MMDC PMU group validation perf/arm_smmu_v3: Improve group validation perf/qcom: Improve group validation perf/arm-ni: Improve event validation perf/arm-cci: Tidy up event validation
perf: Ignore event state for group validation
perf: Add helper for checking grouped events
perf: Clean up redundant group validation
perf: Simplify group validation
perf: Introduce positive capability for sampling
perf: Retire PERF_PMU_CAP_NO_INTERRUPT
perf: Introduce positive capability for raw events
perf: Garbage-collect event_init checks
arch/alpha/kernel/perf_event.c | 5 +- arch/arc/kernel/perf_event.c | 4 +- arch/arm/mach-imx/mmdc.c | 29 ++---- arch/arm/mm/cache-l2x0-pmu.c | 19 +--- arch/csky/kernel/perf_event.c | 3 +- arch/loongarch/kernel/perf_event.c | 1 + arch/mips/kernel/perf_event_mipsxx.c | 1 + arch/powerpc/perf/8xx-pmu.c | 3 +- arch/powerpc/perf/core-book3s.c | 4 +- arch/powerpc/perf/core-fsl-emb.c | 4 +- arch/powerpc/perf/hv-24x7.c | 11 --- arch/powerpc/perf/hv-gpci.c | 11 --- arch/powerpc/perf/imc-pmu.c | 31 +----- arch/powerpc/perf/kvm-hv-pmu.c | 5 +- arch/powerpc/perf/vpa-pmu.c | 13 +-- arch/powerpc/platforms/pseries/papr_scm.c | 18 +--- arch/s390/kernel/perf_cpum_cf.c | 8 +- arch/s390/kernel/perf_cpum_sf.c | 2 + arch/s390/kernel/perf_pai_crypto.c | 1 + arch/s390/kernel/perf_pai_ext.c | 1 + arch/sh/kernel/perf_event.c | 1 - arch/sparc/kernel/perf_event.c | 4 +- arch/x86/events/amd/ibs.c | 32 ++----- arch/x86/events/amd/iommu.c | 15 --- arch/x86/events/amd/power.c | 7 -- arch/x86/events/amd/uncore.c | 12 +-- arch/x86/events/core.c | 7 +- arch/x86/events/intel/bts.c | 3 - arch/x86/events/intel/cstate.c | 16 +--- arch/x86/events/intel/pt.c | 3 - arch/x86/events/intel/uncore.c | 16 +--- arch/x86/events/intel/uncore_snb.c | 18 ---- arch/x86/events/msr.c | 8 +- arch/x86/events/rapl.c | 11 --- arch/xtensa/kernel/perf_event.c | 1 + drivers/devfreq/event/rockchip-dfi.c | 13 +-- drivers/dma/idxd/perfmon.c | 17 +--- drivers/fpga/dfl-fme-perf.c | 18 +--- drivers/gpu/drm/amd/amdgpu/amdgpu_pmu.c | 4 - drivers/gpu/drm/i915/i915_pmu.c | 13 --- drivers/gpu/drm/xe/xe_pmu.c | 13 --- .../hwtracing/coresight/coresight-etm-perf.c | 5 - drivers/hwtracing/ptt/hisi_ptt.c | 8 -- drivers/iommu/intel/perfmon.c | 28 +++--- drivers/perf/alibaba_uncore_drw_pmu.c | 28 +----- drivers/perf/amlogic/meson_ddr_pmu_core.c | 9 -- drivers/perf/arm-cci.c | 56 +++-------- drivers/perf/arm-ccn.c | 34 ------- drivers/perf/arm-cmn.c | 15 +-- drivers/perf/arm-ni.c | 35 +++---- drivers/perf/arm_cspmu/arm_cspmu.c | 34 +------ drivers/perf/arm_dmc620_pmu.c | 28 +----- drivers/perf/arm_dsu_pmu.c | 26 +---- drivers/perf/arm_pmu.c | 19 +--- drivers/perf/arm_pmu_platform.c | 2 +- drivers/perf/arm_smmuv3_pmu.c | 35 ++----- drivers/perf/arm_spe_pmu.c | 7 +- drivers/perf/cxl_pmu.c | 6 -- drivers/perf/dwc_pcie_pmu.c | 21 +--- drivers/perf/fsl_imx8_ddr_perf.c | 32 +------ drivers/perf/fsl_imx9_ddr_perf.c | 27 ------ drivers/perf/hisilicon/hisi_pcie_pmu.c | 25 ++--- drivers/perf/hisilicon/hisi_uncore_pmu.c | 41 ++------ drivers/perf/hisilicon/hns3_pmu.c | 24 ++--- drivers/perf/marvell_cn10k_ddr_pmu.c | 18 ---- drivers/perf/marvell_cn10k_tad_pmu.c | 12 +-- drivers/perf/marvell_pem_pmu.c | 22 +---- drivers/perf/qcom_l2_pmu.c | 96 ++++++------------- drivers/perf/qcom_l3_pmu.c | 33 ++----- drivers/perf/riscv_pmu_legacy.c | 1 - drivers/perf/riscv_pmu_sbi.c | 3 +- drivers/perf/starfive_starlink_pmu.c | 32 ++----- drivers/perf/thunderx2_pmu.c | 45 ++------- drivers/perf/xgene_pmu.c | 29 ------ drivers/powercap/intel_rapl_common.c | 9 +- include/linux/perf_event.h | 10 +- kernel/events/core.c | 35 +++++-- kernel/events/hw_breakpoint.c | 1 + 78 files changed, 244 insertions(+), 1053 deletions(-)
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerPATCH 1/19 perf/arm-cmn: Fix event validation
In the hypothetical case where a CMN event is opened with a software group leader that already has some other hardware sibling, currently arm_cmn_val_add_event() could try to interpret the other event's data as an arm_cmn_hw_event, which is not great since we dereference a pointer from there... Thankfully the way to be more robust is to be less clever - stop trying to special-case software events and simply skip any event that isn't for our PMU.
--- drivers/perf/arm-cmn.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
drivers/perf/arm-cmn.c +1 -4
@@ -1652,7 +1652,7 @@ static void arm_cmn_val_add_event(struct arm_cmn *cmn, struct arm_cmn_val *val,enum cmn_node_type type;int i; -if (is_software_event (event)) +if (event->pmu != &cmn->pmu)return ; type =CMN_EVENT_TYPE (event);
@@ -1693,9 +1693,6 @@ static int arm_cmn_validate_group(struct arm_cmn *cmn, struct perf_event *event)if (leader == event)return 0 ; -if (event->pmu != leader->pmu && !is_software_event (leader)) -return -EINVAL ; - val =kzalloc (sizeof (*val),GFP_KERNEL );if (!val)return -ENOMEM ;
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Mark Rutland
maintainerRe: [PATCH 01/19] perf/arm-cmn: Fix event validation
Hi Robin,
Quoted 7 lines · Robin Murphy
In the hypothetical case where a CMN event is opened with a software group leader that already has some other hardware sibling, currently
arm_cmn_val_add_event()could try to interpret the other event's data as anarm_cmn_hw_event, which is not great since we dereference a pointer from there... Thankfully the way to be more robust is to be less clever - stop trying to special-case software events and simply skip any event that isn't for our PMU.
I think this is missing some important context w.r.t. how the core perf code behaves (and hence why this change doesn't cause other problems). I'd suggest that we give the first few patches a common preamble:
| When opening a new perf event, the core perf code calls | pmu::event_init() before checking whether the new event would cause an | event group to span multiple hardware PMUs. Considering this: | | (1) Any pmu::event_init() callback needs to be robust to cases where | a non-software group_leader or sibling event targets a distinct | PMU. | | (2) Any pmu::event_init() callback doesn't need to explicitly reject | groups that span multiple hardware PMUs, as the core code will | reject this later.
... and then spell out the specific issues in the driver, e.g.
| The logic in arm_cmn_validate_group() doesn't account for cases where | a non-software sibling event targets a distinct PMU. In such cases, | arm_cmn_val_add_event() will erroneously interpret the sibling's | event::hw as as struct arm_cmn_hw_event, including dereferencing | pointers from potentially user-controlled fields. | | Fix this by skipping any events for distinct PMUs, and leaving it to | the core code to reject event groups that span multiple hardware PMUs.
With that context, the patch itself looks good to me.
This will need a Cc stable. I'm not sure what Fixes tag is necessary; has this been broken since its introduction?
Mark.
Quoted 32 lines
Signed-off-by Robin Murphy <[email protected]>--- drivers/perf/arm-cmn.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)drivers/perf/arm-cmn.c +1
-4@@ -1652,7 +1652,7 @@ static void arm_cmn_val_add_event(struct arm_cmn *cmn, struct arm_cmn_val *val,enum cmn_node_type type;int i; -if (is_software_event (event)) +if (event->pmu != &cmn->pmu)return ; type =CMN_EVENT_TYPE (event);@@ -1693,9 +1693,6 @@ static int arm_cmn_validate_group(struct arm_cmn *cmn, struct perf_event *event)if (leader == event)return 0 ; -if (event->pmu != leader->pmu && !is_software_event (leader)) -return -EINVAL ; - val =kzalloc (sizeof (*val),GFP_KERNEL );if (!val)return -ENOMEM ;Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerPATCH 2/19 perf/hisilicon: Fix group validation
In reply to Robin MurphyThe group validation logic shared by the HiSilicon HNS3/PCIe drivers is a bit off, in that given a software group leader, it will consider that event *in place of* the actual new event being opened. At worst this could theoretically allow an unschedulable group if the software event config happens to look like one of the hardware siblings.
The uncore framework avoids that particular issue, but all 3 also share the common issue of not preventing racy access to the sibling list, and some redundant checks which can be cleaned up.
--- drivers/perf/hisilicon/hisi_pcie_pmu.c | 17 ++++++----------- drivers/perf/hisilicon/hisi_uncore_pmu.c | 23 +++++++---------------- drivers/perf/hisilicon/hns3_pmu.c | 17 ++++++----------- 3 files changed, 19 insertions(+), 38 deletions(-)
drivers/perf/hisilicon/hisi_pcie_pmu.c +6 -11
@@ -338,21 +338,16 @@ static bool hisi_pcie_pmu_validate_event_group(struct perf_event *event)int counters =1 ;int num; - event_group[0 ] = leader; -if (!is_software_event (leader)) { -if (leader->pmu != event->pmu) -return false; +if (leader == event) +return true; -if (leader != event && !hisi_pcie_pmu_cmp_event (leader, event)) - event_group[counters++] = event; - } + event_group[0 ] = event; +if (leader->pmu == event->pmu && !hisi_pcie_pmu_cmp_event (leader, event)) + event_group[counters++] = leader;for_each_sibling_event (sibling, event->group_leader) { -if (is_software_event (sibling)) -continue ; -if (sibling->pmu != event->pmu) -return false; +continue ;for (num =0 ; num < counters; num++) {/*
drivers/perf/hisilicon/hisi_uncore_pmu.c +7 -16
@@ -101,26 +101,17 @@ static bool hisi_validate_event_group(struct perf_event *event)/* Include count for the event */ int counters =1 ; -if (!is_software_event (leader)) { -/* -* We must NOT create groups containing mixed PMUs, although -* software events are acceptable -*/ -if (leader->pmu != event->pmu) -return false; +if (leader == event) +return true; -/* Increment counter for the leader */ -if (leader != event) - counters++; - } +/* Increment counter for the leader */ +if (leader->pmu == event->pmu) + counters++;for_each_sibling_event (sibling, event->group_leader) { -if (is_software_event (sibling)) -continue ; -if (sibling->pmu != event->pmu) -return false;/* Increment counter for each sibling */ - counters++; +if (sibling->pmu == event->pmu) + counters++; }/* The group can not count events more than the counters in the HW */
drivers/perf/hisilicon/hns3_pmu.c +6 -11
@@ -1058,21 +1058,16 @@ static bool hns3_pmu_validate_event_group(struct perf_event *event)int counters =1 ;int num; - event_group[0 ] = leader; -if (!is_software_event (leader)) { -if (leader->pmu != event->pmu) -return false; +if (leader == event) +return true; -if (leader != event && !hns3_pmu_cmp_event (leader, event)) - event_group[counters++] = event; - } + event_group[0 ] = event; +if (leader->pmu == event->pmu && !hns3_pmu_cmp_event (leader, event)) + event_group[counters++] = leader;for_each_sibling_event (sibling, event->group_leader) { -if (is_software_event (sibling)) -continue ; -if (sibling->pmu != event->pmu) -return false; +continue ;for (num =0 ; num < counters; num++) {/*
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Mark Rutland
maintainerRe: [PATCH 02/19] perf/hisilicon: Fix group validation
Quoted 7 lines · Robin Murphy
The group validation logic shared by the HiSilicon HNS3/PCIe drivers is a bit off, in that given a software group leader, it will consider that event *in place of* the actual new event being opened. At worst this could theoretically allow an unschedulable group if the software event config happens to look like one of the hardware siblings.
The uncore framework avoids that particular issue,
What is "the uncore framework"? I'm not sure exactly what you're referring to, nor how that composes with the problem described above.
Quoted 2 lines
but all 3 also share the common issue of not preventing racy access to the sibling list,
Can you please elaborate on this racy access to the silbing list? I'm not sure exactly what you're referring to.
Quoted 20 lines
and some redundant checks which can be cleaned up.
Signed-off-by Robin Murphy <[email protected]>--- drivers/perf/hisilicon/hisi_pcie_pmu.c | 17 ++++++----------- drivers/perf/hisilicon/hisi_uncore_pmu.c | 23 +++++++---------------- drivers/perf/hisilicon/hns3_pmu.c | 17 ++++++----------- 3 files changed, 19 insertions(+), 38 deletions(-)drivers/perf/hisilicon/hisi_pcie_pmu.c +0
-3@@ -338,21 +338,16 @@ static bool hisi_pcie_pmu_validate_event_group(struct perf_event *event)int counters =1 ;int num; - event_group[0 ] = leader; -if (!is_software_event (leader)) { -if (leader->pmu != event->pmu)
drivers/perf/hisilicon/hisi_pcie_pmu.c static bool hisi_pcie_pmu_validate_event_group(struct perf_event *event) · line 346
Quoted 10 lines
drivers/perf/hisilicon/hisi_pcie_pmu.c +5
-4-return false; +if (leader == event) +return true; -if (leader != event && !hisi_pcie_pmu_cmp_event (leader, event)) - event_group[counters++] = event; - } + event_group[0 ] = event; +if (leader->pmu == event->pmu && !hisi_pcie_pmu_cmp_event (leader, event)) + event_group[counters++] = leader;
Looking at this, the existing logic to share counters (which hisi_pcie_pmu_cmp_event() is trying to permit) looks to be bogus, given that the start/stop callbacks will reprogram the HW counters (and hence can fight with one another).
I suspect that can be removed *entirely*, and this can be simplified down to allocating N counters, without a quadratic event comparison. We don't try to share counters in other PMU drivers, and there was no rationale for trying to do this when this wa introduced in commit:
8404b0fbc7fbd42e ("drivers/perf: hisi: Add driver for HiSilicon PCIe PMU")
The 'link' tag in that comment goes to v13, which doesn't link to prior postings, so I'm not going to dig further.
Mark.
Quoted 84 lines
drivers/perf/hisilicon/hisi_pcie_pmu.c +1
-4for_each_sibling_event (sibling, event->group_leader) { -if (is_software_event (sibling)) -continue ; -if (sibling->pmu != event->pmu) -return false; +continue ;for (num =0 ; num < counters; num++) {/* drivers/perf/hisilicon/hisi_uncore_pmu.c +7
-16@@ -101,26 +101,17 @@ static bool hisi_validate_event_group(struct perf_event *event)/* Include count for the event */ int counters =1 ; -if (!is_software_event (leader)) { -/* -* We must NOT create groups containing mixed PMUs, although -* software events are acceptable -*/ -if (leader->pmu != event->pmu) -return false; +if (leader == event) +return true; -/* Increment counter for the leader */ -if (leader != event) - counters++; - } +/* Increment counter for the leader */ +if (leader->pmu == event->pmu) + counters++;for_each_sibling_event (sibling, event->group_leader) { -if (is_software_event (sibling)) -continue ; -if (sibling->pmu != event->pmu) -return false;/* Increment counter for each sibling */ - counters++; +if (sibling->pmu == event->pmu) + counters++; }/* The group can not count events more than the counters in the HW */ drivers/perf/hisilicon/hns3_pmu.c +6
-11@@ -1058,21 +1058,16 @@ static bool hns3_pmu_validate_event_group(struct perf_event *event)int counters =1 ;int num; - event_group[0 ] = leader; -if (!is_software_event (leader)) { -if (leader->pmu != event->pmu) -return false; +if (leader == event) +return true; -if (leader != event && !hns3_pmu_cmp_event (leader, event)) - event_group[counters++] = event; - } + event_group[0 ] = event; +if (leader->pmu == event->pmu && !hns3_pmu_cmp_event (leader, event)) + event_group[counters++] = leader;for_each_sibling_event (sibling, event->group_leader) { -if (is_software_event (sibling)) -continue ; -if (sibling->pmu != event->pmu) -return false; +continue ;for (num =0 ; num < counters; num++) {/* Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Mark Rutland
maintainerRe: [PATCH 02/19] perf/hisilicon: Fix group validation
Quoted 9 lines · Mark Rutland
Quoted 7 lines · Robin Murphy
The group validation logic shared by the HiSilicon HNS3/PCIe drivers is a bit off, in that given a software group leader, it will consider that event *in place of* the actual new event being opened. At worst this could theoretically allow an unschedulable group if the software event config happens to look like one of the hardware siblings.
The uncore framework avoids that particular issue,
Quoted 8 lines
What is "the uncore framework"? I'm not sure exactly what you're referring to, nor how that composes with the problem described above.
Quoted 2 lines
but all 3 also share the common issue of not preventing racy access to the sibling list,
Can you please elaborate on this racy access to the silbing list? I'm not sure exactly what you're referring to.
Ah, I think you're referring to the issue in:
https://lore.kernel.org/linux-arm-kernel/Zg0l642PgQ7T3a8Z@FVFF77S0Q05N/
... where when creatign a new event which is its own group leader, lockdep_assert_event_ctx(event) fires in for_each_sibling_event(), because the new event's context isn't locked...
Quoted 8 lines
Quoted 8 lines
drivers/perf/hisilicon/hisi_uncore_pmu.c +0
-0@@ -101,26 +101,17 @@ static bool hisi_validate_event_group(struct perf_event *event)/* Include count for the event */ int counters =1 ;
Quoted 9 lines
drivers/perf/hisilicon/hisi_uncore_pmu.c static bool hisi_validate_event_group(struct perf_event *event) · line 105
Quoted 9 lines
drivers/perf/hisilicon/hisi_uncore_pmu.c +2
-7-if (!is_software_event (leader)) { -/* -* We must NOT create groups containing mixed PMUs, although -* software events are acceptable -*/ -if (leader->pmu != event->pmu) -return false; +if (leader == event) +return true;
... and hence bailing out here avoids that?
It's not strictly "racy access to the sibling list", becuase there's nothing else accessing the list; it's just that this is the simplest way to appease lockdep while avoiding false negatives.
It'd probably be better to say something like "the common issue of calling for_each_sibling_event() when initialising a new group leader", and maybe to spell that out a bit.
Mark.
Robin Murphy
maintainerRe: [PATCH 02/19] perf/hisilicon: Fix group validation
In reply to Mark RutlandQuoted 11 lines · Mark Rutland
Quoted 7 lines · Robin Murphy
The group validation logic shared by the HiSilicon HNS3/PCIe drivers is a bit off, in that given a software group leader, it will consider that event *in place of* the actual new event being opened. At worst this could theoretically allow an unschedulable group if the software event config happens to look like one of the hardware siblings.
The uncore framework avoids that particular issue,
What is "the uncore framework"? I'm not sure exactly what you're referring to, nor how that composes with the problem described above.
Literally that hisi_uncore_pmu.c is actually a framework for half a dozen individual sub-drivers rather than a "driver" itself per se, but I suppose that detail doesn't strictly matter at this level.
Quoted 5 lines
Quoted 2 lines
but all 3 also share the common issue of not preventing racy access to the sibling list,
Can you please elaborate on this racy access to the silbing list? I'm not sure exactly what you're referring to.
Hmm, yes, I guess an actual race is probably impossible since if we're still in the middle of opening the group leader event then we haven't yet allocated the fd that userspace would need to start adding siblings, even if it tried to guess. I leaned on "racy" as a concise way to infer "when it isn't locked (even though the reasons for that are more subtle)" repeatedly over several patches - after all, the overall theme of this series is that I dislike repetitive boilerplate :)
I'll dedicate some time for polishing commit messages for v2, especially the common context for these "part 1" patches per your feedback on patch #1.
Quoted 24 lines
Quoted 24 lines
and some redundant checks which can be cleaned up.
Signed-off-by Robin Murphy <[email protected]>--- drivers/perf/hisilicon/hisi_pcie_pmu.c | 17 ++++++----------- drivers/perf/hisilicon/hisi_uncore_pmu.c | 23 +++++++---------------- drivers/perf/hisilicon/hns3_pmu.c | 17 ++++++----------- 3 files changed, 19 insertions(+), 38 deletions(-)drivers/perf/hisilicon/hisi_pcie_pmu.c +2
-4@@ -338,21 +338,16 @@ static bool hisi_pcie_pmu_validate_event_group(struct perf_event *event)int counters =1 ;int num; - event_group[0 ] = leader; -if (!is_software_event (leader)) { -if (leader->pmu != event->pmu) -return false; +if (leader == event) +return true;
Quoted 11 lines
drivers/perf/hisilicon/hisi_pcie_pmu.c static bool hisi_pcie_pmu_validate_event_group(struct perf_event *event) · line 346
Quoted 6 lines
drivers/perf/hisilicon/hisi_pcie_pmu.c +3
-3-if (leader != event && !hisi_pcie_pmu_cmp_event (leader, event)) - event_group[counters++] = event; - } + event_group[0 ] = event; +if (leader->pmu == event->pmu && !hisi_pcie_pmu_cmp_event (leader, event)) + event_group[counters++] = leader;Looking at this, the existing logic to share counters (which
hisi_pcie_pmu_cmp_event()is trying to permit) looks to be bogus, given that the start/stop callbacks will reprogram the HW counters (and hence can fight with one another).
Yeah, this had a dodgy smell when I first came across it, but after doing all the digging I think it does actually work out - the trick seems to be the group_leader check in hisi_pcie_pmu_get_event_idx(), with the implication the PMU is going to be stopped while scheduling in/out the whole group, so assuming hisi_pcie_pmu_del() doesn't clear the counter value in hardware (even though the first call nukes the rest of the event configuration), then the events should stay in sync.
It does seem somewhat nonsensical to have multiple copies of the same event in the same group, but I imagine it could happen with some sort of scripted combination of metrics, and supporting it at this level saves needing explicit deduplication further up. So even though my initial instinct was to rip it out too, in the end I concluded that that doesn't seem justified.
Thanks,
Robin.
Quoted 96 lines
I suspect that can be removed *entirely*, and this can be simplified down to allocating N counters, without a quadratic event comparison. We don't try to share counters in other PMU drivers, and there was no rationale for trying to do this when this wa introduced in commit:
8404b0fbc7fbd42e("drivers/perf: hisi: Add driver for HiSilicon PCIe PMU")The 'link' tag in that comment goes to v13, which doesn't link to prior postings, so I'm not going to dig further.
Mark.
Quoted 84 lines
drivers/perf/hisilicon/hisi_pcie_pmu.c +1
-4for_each_sibling_event (sibling, event->group_leader) { -if (is_software_event (sibling)) -continue ; -if (sibling->pmu != event->pmu) -return false; +continue ;for (num =0 ; num < counters; num++) {/* drivers/perf/hisilicon/hisi_uncore_pmu.c +7
-16@@ -101,26 +101,17 @@ static bool hisi_validate_event_group(struct perf_event *event)/* Include count for the event */ int counters =1 ; -if (!is_software_event (leader)) { -/* -* We must NOT create groups containing mixed PMUs, although -* software events are acceptable -*/ -if (leader->pmu != event->pmu) -return false; +if (leader == event) +return true; -/* Increment counter for the leader */ -if (leader != event) - counters++; - } +/* Increment counter for the leader */ +if (leader->pmu == event->pmu) + counters++;for_each_sibling_event (sibling, event->group_leader) { -if (is_software_event (sibling)) -continue ; -if (sibling->pmu != event->pmu) -return false;/* Increment counter for each sibling */ - counters++; +if (sibling->pmu == event->pmu) + counters++; }/* The group can not count events more than the counters in the HW */ drivers/perf/hisilicon/hns3_pmu.c +6
-11@@ -1058,21 +1058,16 @@ static bool hns3_pmu_validate_event_group(struct perf_event *event)int counters =1 ;int num; - event_group[0 ] = leader; -if (!is_software_event (leader)) { -if (leader->pmu != event->pmu) -return false; +if (leader == event) +return true; -if (leader != event && !hns3_pmu_cmp_event (leader, event)) - event_group[counters++] = event; - } + event_group[0 ] = event; +if (leader->pmu == event->pmu && !hns3_pmu_cmp_event (leader, event)) + event_group[counters++] = leader;for_each_sibling_event (sibling, event->group_leader) { -if (is_software_event (sibling)) -continue ; -if (sibling->pmu != event->pmu) -return false; +continue ;for (num =0 ; num < counters; num++) {/* Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Mark Rutland
maintainerRe: [PATCH 02/19] perf/hisilicon: Fix group validation
Quoted 8 lines · Robin Murphy
Quoted 7 lines · Mark Rutland
Quoted 6 lines · Robin Murphy
The group validation logic shared by the HiSilicon HNS3/PCIe drivers is a bit off, in that given a software group leader, it will consider that event *in place of* the actual new event being opened. At worst this could theoretically allow an unschedulable group if the software event config happens to look like one of the hardware siblings.
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
The uncore framework avoids that particular issue,
What is "the uncore framework"? I'm not sure exactly what you're referring to, nor how that composes with the problem described above.
Literally that
hisi_uncore_pmu.cis actually a framework for half a dozen individual sub-drivers rather than a "driver" itself per se, but I suppose that detail doesn't strictly matter at this level.
I see. My concern was just that I couldn't figure out what "the uncore framework" was, since it sounded more generic. If you say something like "the shared code in hisi_uncore_pmu.c", I think that would be clearer.
Quoted 14 lines
Quoted 5 lines
Quoted 2 lines
but all 3 also share the common issue of not preventing racy access to the sibling list,
Can you please elaborate on this racy access to the silbing list? I'm not sure exactly what you're referring to.
Hmm, yes, I guess an actual race is probably impossible since if we're still in the middle of opening the group leader event then we haven't yet allocated the fd that userspace would need to start adding siblings, even if it tried to guess. I leaned on "racy" as a concise way to infer "when it isn't locked (even though the reasons for that are more subtle)" repeatedly over several patches - after all, the overall theme of this series is that I dislike repetitive boilerplate :)
Quoted 2 lines
I'll dedicate some time for polishing commit messages for v2, especially the common context for these "part 1" patches per your feedback on patch #1.
Thanks!
Quoted 34 lines
Quoted 25 lines
Quoted 25 lines
and some redundant checks which can be cleaned up.
Signed-off-by Robin Murphy <[email protected]>--- drivers/perf/hisilicon/hisi_pcie_pmu.c | 17 ++++++----------- drivers/perf/hisilicon/hisi_uncore_pmu.c | 23 +++++++---------------- drivers/perf/hisilicon/hns3_pmu.c | 17 ++++++----------- 3 files changed, 19 insertions(+), 38 deletions(-)drivers/perf/hisilicon/hisi_pcie_pmu.c +2
-7@@ -338,21 +338,16 @@ static bool hisi_pcie_pmu_validate_event_group(struct perf_event *event)int counters =1 ;int num; - event_group[0 ] = leader; -if (!is_software_event (leader)) { -if (leader->pmu != event->pmu) -return false; +if (leader == event) +return true; -if (leader != event && !hisi_pcie_pmu_cmp_event (leader, event)) - event_group[counters++] = event; - }Quoted 8 lines
drivers/perf/hisilicon/hisi_pcie_pmu.c static bool hisi_pcie_pmu_validate_event_group(struct perf_event *event) · line 346
Quoted 3 lines
drivers/perf/hisilicon/hisi_pcie_pmu.c +3
-0+ event_group[0 ] = event; +if (leader->pmu == event->pmu && !hisi_pcie_pmu_cmp_event (leader, event)) + event_group[counters++] = leader;Looking at this, the existing logic to share counters (which
hisi_pcie_pmu_cmp_event()is trying to permit) looks to be bogus, given that the start/stop callbacks will reprogram the HW counters (and hence can fight with one another).
Quoted 7 lines
Yeah, this had a dodgy smell when I first came across it, but after doing all the digging I think it does actually work out - the trick seems to be the
group_leadercheck inhisi_pcie_pmu_get_event_idx(), with the implication the PMU is going to be stopped while scheduling in/out the whole group, so assuminghisi_pcie_pmu_del()doesn't clear the counter value in hardware (even though the first call nukes the rest of the event configuration), then the events should stay in sync.
I don't think that's sufficient. If nothing else, overflow is handled per-event, and for a group of two identical events, upon overflow hisi_pcie_pmu_irq() will reprogram the shared HW counter when handling the first event, and the second event will see an arbitrary discontinuity. Maybe no-one has spotted that due to the 2^63 counter period that we program, but this is clearly bogus.
In addition, AFAICT the IRQ handler doesn't stop the PMU, so in general groups aren't handled atomically, and snapshots of the counters won't be atomic.
Quoted 5 lines
It does seem somewhat nonsensical to have multiple copies of the same event in the same group, but I imagine it could happen with some sort of scripted combination of metrics, and supporting it at this level saves needing explicit deduplication further up. So even though my initial instinct was to rip it out too, in the end I concluded that that doesn't seem justified.
As above, I think it's clearly bogus. I don't think we should have merged it as-is and it's not something I'd like to see others copy. Other PMUs don't do this sort of event deduplication, and in general it should be up to the user or userspace software to do that rather than doing that badly in the kernel.
Given it was implemented with no rationale I think we should rip it out. If that breaks someone's scripting, then we can consider implementing something that actually works.
Mark.
Mark Rutland
maintainerRe: [PATCH 02/19] perf/hisilicon: Fix group validation
Quoted 53 lines · Mark Rutland
Quoted 27 lines · Robin Murphy
Quoted 17 lines · Mark Rutland
Quoted 16 lines · Robin Murphy
drivers/perf/hisilicon/hisi_pcie_pmu.c +2
-7@@ -338,21 +338,16 @@ static bool hisi_pcie_pmu_validate_event_group(struct perf_event *event)int counters =1 ;int num; - event_group[0 ] = leader; -if (!is_software_event (leader)) { -if (leader->pmu != event->pmu) -return false; +if (leader == event) +return true; -if (leader != event && !hisi_pcie_pmu_cmp_event (leader, event)) - event_group[counters++] = event; - }Quoted 8 lines
drivers/perf/hisilicon/hisi_pcie_pmu.c static bool hisi_pcie_pmu_validate_event_group(struct perf_event *event) · line 346
Quoted 3 lines
drivers/perf/hisilicon/hisi_pcie_pmu.c +3
-0+ event_group[0 ] = event; +if (leader->pmu == event->pmu && !hisi_pcie_pmu_cmp_event (leader, event)) + event_group[counters++] = leader;Looking at this, the existing logic to share counters (which
hisi_pcie_pmu_cmp_event()is trying to permit) looks to be bogus, given that the start/stop callbacks will reprogram the HW counters (and hence can fight with one another).Quoted 7 lines
Yeah, this had a dodgy smell when I first came across it, but after doing all the digging I think it does actually work out - the trick seems to be the
group_leadercheck inhisi_pcie_pmu_get_event_idx(), with the implication the PMU is going to be stopped while scheduling in/out the whole group, so assuminghisi_pcie_pmu_del()doesn't clear the counter value in hardware (even though the first call nukes the rest of the event configuration), then the events should stay in sync.I don't think that's sufficient. If nothing else, overflow is handled per-event, and for a group of two identical events, upon overflow
hisi_pcie_pmu_irq()will reprogram the shared HW counter when handling the first event, and the second event will see an arbitrary discontinuity. Maybe no-one has spotted that due to the 2^63 counter period that we program, but this is clearly bogus.In addition, AFAICT the IRQ handler doesn't stop the PMU, so in general groups aren't handled atomically, and snapshots of the counters won't be atomic.
Quoted 5 lines
It does seem somewhat nonsensical to have multiple copies of the same event in the same group, but I imagine it could happen with some sort of scripted combination of metrics, and supporting it at this level saves needing explicit deduplication further up. So even though my initial instinct was to rip it out too, in the end I concluded that that doesn't seem justified.
[...]
Quoted 9 lines
As above, I think it's clearly bogus. I don't think we should have merged it as-is and it's not something I'd like to see others copy. Other PMUs don't do this sort of event deduplication, and in general it should be up to the user or userspace software to do that rather than doing that badly in the kernel.
Given it was implemented with no rationale I think we should rip it out. If that breaks someone's scripting, then we can consider implementing something that actually works.
FWIW, I'm happy to go do that as a follow-up, so if that's a pain, feel free to leave that as-is for now.
Mark.
Mark Rutland
maintainerRe: [PATCH 02/19] perf/hisilicon: Fix group validation
In reply to Mark RutlandQuoted 41 lines · Mark Rutland
Quoted 28 lines · Robin Murphy
Quoted 18 lines · Mark Rutland
Quoted 16 lines · Robin Murphy
drivers/perf/hisilicon/hisi_pcie_pmu.c +2
-7@@ -338,21 +338,16 @@ static bool hisi_pcie_pmu_validate_event_group(struct perf_event *event)int counters =1 ;int num; - event_group[0 ] = leader; -if (!is_software_event (leader)) { -if (leader->pmu != event->pmu) -return false; +if (leader == event) +return true; -if (leader != event && !hisi_pcie_pmu_cmp_event (leader, event)) - event_group[counters++] = event; - }Quoted 8 lines
drivers/perf/hisilicon/hisi_pcie_pmu.c static bool hisi_pcie_pmu_validate_event_group(struct perf_event *event) · line 346
Quoted 3 lines
drivers/perf/hisilicon/hisi_pcie_pmu.c +3
-0+ event_group[0 ] = event; +if (leader->pmu == event->pmu && !hisi_pcie_pmu_cmp_event (leader, event)) + event_group[counters++] = leader;Looking at this, the existing logic to share counters (which
hisi_pcie_pmu_cmp_event()is trying to permit) looks to be bogus, given that the start/stop callbacks will reprogram the HW counters (and hence can fight with one another).Quoted 5 lines
It does seem somewhat nonsensical to have multiple copies of the same event in the same group, but I imagine it could happen with some sort of scripted combination of metrics, and supporting it at this level saves needing explicit deduplication further up. So even though my initial instinct was to rip it out too, in the end I concluded that that doesn't seem justified.
As above, I think it's clearly bogus. I don't think we should have merged it as-is and it's not something I'd like to see others copy. Other PMUs don't do this sort of event deduplication, and in general it should be up to the user or userspace software to do that rather than doing that badly in the kernel.
Quoted 3 lines
Given it was implemented with no rationale I think we should rip it out. If that breaks someone's scripting, then we can consider implementing something that actually works.
Having dug some more, I see that this was intended to handle the way the hardware shares a single config register between pairs of counter and counter_ext registers, with the idea being that two related events could be allocated into the same counter pair (but would only occupy a single counter each).
I still think the code is wrong, but it is more complex than I made it out to be, and you're right that we should leave it as-is for now. I can follow up after we've got this series in.
Mark.
Robin Murphy
maintainerPATCH 3/19 perf/imx8_ddr: Fix group validation
In reply to Robin MurphyThe group validation here is erroneously inspecting software events, as well as other hardware siblings, which are only checked for *after* they've already been misinterpreted. Once again, just ignore events which don't belong to our PMU, and don't duplicate what perf_event_open() will already check for us.
--- drivers/perf/fsl_imx8_ddr_perf.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-)
drivers/perf/fsl_imx8_ddr_perf.c +5 -16
@@ -331,6 +331,9 @@ static u32 ddr_perf_filter_val(struct perf_event *event)static bool ddr_perf_filters_compatible (struct perf_event *a,struct perf_event *b) { +/* Ignore grouped events that aren't ours */ +if (a->pmu != b->pmu) +return true;if (!ddr_perf_is_filtered (a))return true;if (!ddr_perf_is_filtered (b))
@@ -409,16 +412,8 @@ static int ddr_perf_event_init(struct perf_event *event)return -EOPNOTSUPP ; } -/* -* We must NOT create groups containing mixed PMUs, although software -* events are acceptable (for example to create a CCN group -* periodically read when a hrtimer aka cpu-clock leader triggers). -*/ -if (event->group_leader->pmu != event->pmu && - !is_software_event (event->group_leader)) -return -EINVAL ; - -if (pmu->devtype_data->quirks &DDR_CAP_AXI_ID_FILTER ) { +if (event != event->group_leader && + pmu->devtype_data->quirks &DDR_CAP_AXI_ID_FILTER ) {if (!ddr_perf_filters_compatible (event, event->group_leader))return -EINVAL ;for_each_sibling_event (sibling, event->group_leader) {
@@ -427,12 +422,6 @@ static int ddr_perf_event_init(struct perf_event *event) } } -for_each_sibling_event (sibling, event->group_leader) { -if (sibling->pmu != event->pmu && - !is_software_event (sibling)) -return -EINVAL ; - } - event->cpu = pmu->cpu; hwc->idx =-1 ;
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerPATCH 4/19 perf/starfive: Fix group validation
In reply to Robin MurphyThe group validation code here is superficially the right shape, but is failing to count the group leader, while also erroneously counting software siblings. Just correctly count the events which belong to our PMU, and let perf core worry about the rest.
--- drivers/perf/starfive_starlink_pmu.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-)
drivers/perf/starfive_starlink_pmu.c +7 -11
@@ -347,19 +347,15 @@ static bool starlink_pmu_validate_event_group(struct perf_event *event)struct perf_event *sibling;int counter =1 ; -/* -* Ensure hardware events in the group are on the same PMU, -* software events are acceptable. -*/ -if (event->group_leader->pmu != event->pmu && - !is_software_event (event->group_leader)) -return false; +if (leader == event) +return true; + +if (leader->pmu == event->pmu) + counter++;for_each_sibling_event (sibling, leader) { -if (sibling->pmu != event->pmu && !is_software_event (sibling)) -return false; - - counter++; +if (sibling->pmu == event->pmu) + counter++; }return counter <=STARLINK_PMU_NUM_COUNTERS ;
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerPATCH 5/19 iommu/vt-d: Fix perfmon group validation
In reply to Robin MurphyThe group validation here has a few issues to fix: firstly, failing to count the group leader or the event being opened itself. Secondly it appears wrong not to count disabled sibling events given that they could be enabled later. Finally there's the subtlety that we should avoid racy access to the sibling list when the event is its own group leader.
--- drivers/iommu/intel/perfmon.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-)
drivers/iommu/intel/perfmon.c +11 -7
@@ -258,21 +258,25 @@ static int iommu_pmu_validate_group(struct perf_event *event) {struct iommu_pmu *iommu_pmu =iommu_event_to_pmu (event);struct perf_event *sibling; -int nr =0 ; +int nr =1 ; +if (event == event->group_leader) +return 0 ;/* * All events in a group must be scheduled simultaneously. * Check whether there is enough counters for all the events. */ -for_each_sibling_event (sibling, event->group_leader) { -if (!is_iommu_pmu_event (iommu_pmu, sibling) || - sibling->state <=PERF_EVENT_STATE_OFF ) -continue ; +if (is_iommu_pmu_event (iommu_pmu, event->group_leader)) + ++nr; -if (++nr > iommu_pmu->num_cntr) -return -EINVAL ; +for_each_sibling_event (sibling, event->group_leader) { +if (is_iommu_pmu_event (iommu_pmu, sibling)) + ++nr; } +if (nr > iommu_pmu->num_cntr) +return -EINVAL ; +return 0 ; }
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerPATCH 6/19 ARM: l2x0: Fix group validation
In reply to Robin MurphyThe group validation here is almost right, but fails to count the new event itself. While we fix that, also adopt the standard pattern to avoid racy access the sibling list and drop checks that are redundant with core code.
--- arch/arm/mm/cache-l2x0-pmu.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
arch/arm/mm/cache-l2x0-pmu.c +4 -5
@@ -274,18 +274,17 @@ static bool l2x0_pmu_group_is_valid(struct perf_event *event)struct pmu *pmu = event->pmu;struct perf_event *leader = event->group_leader;struct perf_event *sibling; -int num_hw =0 ; +int num_hw =1 ; + +if (leader == event) +return true;if (leader->pmu == pmu) num_hw++; -else if (!is_software_event (leader)) -return false;for_each_sibling_event (sibling, leader) {if (sibling->pmu == pmu) num_hw++; -else if (!is_software_event (sibling)) -return false; }return num_hw <=PMU_NR_COUNTERS ;
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerPATCH 7/19 ARM: imx: Fix MMDC PMU group validation
In reply to Robin MurphyThe group validation here gets the event and its group leader mixed up, such that if the group leader belongs to a different PMU, the set_bit() may go wildly out of bounds. While we fix that, also adopt the standard pattern to avoid racy access the sibling list and drop checks that are redundant with core code.
--- arch/arm/mach-imx/mmdc.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-)
arch/arm/mach-imx/mmdc.c +6 -9
@@ -238,11 +238,8 @@ static bool mmdc_pmu_group_event_is_valid(struct perf_event *event, {int cfg = event->attr.config; -if (is_software_event (event)) -return true; -if (event->pmu != pmu) -return false; +return true;return !test_and_set_bit (cfg, used_counters); }
@@ -260,12 +257,12 @@ static bool mmdc_pmu_group_is_valid(struct perf_event *event)struct perf_event *sibling;unsigned long counter_mask =0 ; -set_bit (leader->attr.config, &counter_mask); +if (event == leader) +return true; -if (event != leader) { -if (!mmdc_pmu_group_event_is_valid (event, pmu, &counter_mask)) -return false; - } +set_bit (event->attr.config, &counter_mask); +if (!mmdc_pmu_group_event_is_valid (leader, pmu, &counter_mask)) +return false;for_each_sibling_event (sibling, leader) {if (!mmdc_pmu_group_event_is_valid (sibling, pmu, &counter_mask))
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerPATCH 8/19 perf/arm_smmu_v3: Improve group validation
In reply to Robin MurphyThe group validation here is OK, except for the benign issue that it will double-count an event that is its own group leader. Even though it's highly unlikely we'd ever have PMCG hardware with only one counter, let's sort that out, cleaning up some reudundant checks in the process.
--- drivers/perf/arm_smmuv3_pmu.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-)
drivers/perf/arm_smmuv3_pmu.c +9 -13
@@ -377,9 +377,6 @@ static int smmu_pmu_get_event_idx(struct smmu_pmu *smmu_pmu,static bool smmu_pmu_events_compatible (struct perf_event *curr,struct perf_event *new) { -if (new->pmu != curr->pmu) -return false; -if (to_smmu_pmu (new->pmu)->global_filter && !smmu_pmu_check_global_filter (curr, new))return false;
@@ -422,15 +419,6 @@ static int smmu_pmu_event_init(struct perf_event *event)return -EINVAL ; } -/* Don't allow groups with mixed PMUs, except for s/w events */ -if (!is_software_event (event->group_leader)) { -if (!smmu_pmu_events_compatible (event->group_leader, event)) -return -EINVAL ; - -if (++group_num_events > smmu_pmu->num_counters) -return -EINVAL ; - } -/* * Ensure all events are on the same cpu so all events are in the * same cpu context, to avoid races on pmu_enable etc.
@@ -442,8 +430,16 @@ static int smmu_pmu_event_init(struct perf_event *event)if (event->group_leader == event)return 0 ; +if (event->group_leader->pmu == event->pmu) { +if (!smmu_pmu_events_compatible (event->group_leader, event)) +return -EINVAL ; + +if (++group_num_events > smmu_pmu->num_counters) +return -EINVAL ; + } +for_each_sibling_event (sibling, event->group_leader) { -if (is_software_event (sibling)) +if (sibling->pmu != event->pmu)continue ;if (!smmu_pmu_events_compatible (sibling, event))
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerPATCH 9/19 perf/qcom: Improve group validation
In reply to Robin MurphyThe L3 driver's group validation is almost right, except for erroneously counting a software group leader - which is benign other than artificially limiting the maximum size of such a group to one less than it could be. Correct that with the now-established pattern of simply ignoring all events which do not belong to our PMU.
The L2 driver gets a cleanup of some slightly suspicious logic, and both can have the same overall simplification to not duplicate things that perf core will already do, and avoid racy access to the sibling list of group leader events.
--- drivers/perf/qcom_l2_pmu.c | 81 +++++++++++++++----------------------- drivers/perf/qcom_l3_pmu.c | 14 +++---- 2 files changed, 37 insertions(+), 58 deletions(-)
drivers/perf/qcom_l2_pmu.c +31 -50
@@ -468,23 +468,6 @@ static int l2_cache_event_init(struct perf_event *event)return -EINVAL ; } -/* Don't allow groups with mixed PMUs, except for s/w events */ -if (event->group_leader->pmu != event->pmu && - !is_software_event (event->group_leader)) { -dev_dbg_ratelimited (&l2cache_pmu->pdev->dev, -"Can't create mixed PMU group\n" ); -return -EINVAL ; - } - -for_each_sibling_event (sibling, event->group_leader) { -if (sibling->pmu != event->pmu && - !is_software_event (sibling)) { -dev_dbg_ratelimited (&l2cache_pmu->pdev->dev, -"Can't create mixed PMU group\n" ); -return -EINVAL ; - } - } - cluster =get_cluster_pmu (l2cache_pmu, event->cpu);if (!cluster) {/* CPU has not been initialised */
@@ -493,39 +476,6 @@ static int l2_cache_event_init(struct perf_event *event)return -EINVAL ; } -/* Ensure all events in a group are on the same cpu */ -if ((event->group_leader != event) && - (cluster->on_cpu != event->group_leader->cpu)) { -dev_dbg_ratelimited (&l2cache_pmu->pdev->dev, -"Can't create group on CPUs %d and %d" , - event->cpu, event->group_leader->cpu); -return -EINVAL ; - } - -if ((event != event->group_leader) && - !is_software_event (event->group_leader) && - (L2_EVT_GROUP (event->group_leader->attr.config) == -L2_EVT_GROUP (event->attr.config))) { -dev_dbg_ratelimited (&l2cache_pmu->pdev->dev, -"Column exclusion: conflicting events %llx %llx\n" , - event->group_leader->attr.config, - event->attr.config); -return -EINVAL ; - } - -for_each_sibling_event (sibling, event->group_leader) { -if ((sibling != event) && - !is_software_event (sibling) && - (L2_EVT_GROUP (sibling->attr.config) == -L2_EVT_GROUP (event->attr.config))) { -dev_dbg_ratelimited (&l2cache_pmu->pdev->dev, -"Column exclusion: conflicting events %llx %llx\n" , - sibling->attr.config, - event->attr.config); -return -EINVAL ; - } - } - hwc->idx =-1 ; hwc->config_base = event->attr.config;
@@ -534,6 +484,37 @@ static int l2_cache_event_init(struct perf_event *event)* same cpu context, to avoid races on pmu_enable etc. */ event->cpu = cluster->on_cpu; +if (event->cpu != event->group_leader->cpu) { +dev_dbg_ratelimited (&l2cache_pmu->pdev->dev, +"Can't create group on CPUs %d and %d" , + event->cpu, event->group_leader->cpu); +return -EINVAL ; + } + +if (event == event->group_leader) +return 0 ; + +if ((event->group_leader->pmu == event->pmu) && + (L2_EVT_GROUP (event->group_leader->attr.config) == +L2_EVT_GROUP (event->attr.config))) { +dev_dbg_ratelimited (&l2cache_pmu->pdev->dev, +"Column exclusion: conflicting events %llx %llx\n" , + event->group_leader->attr.config, + event->attr.config); +return -EINVAL ; + } + +for_each_sibling_event (sibling, event->group_leader) { +if ((sibling->pmu == event->pmu) && + (L2_EVT_GROUP (sibling->attr.config) == +L2_EVT_GROUP (event->attr.config))) { +dev_dbg_ratelimited (&l2cache_pmu->pdev->dev, +"Column exclusion: conflicting events %llx %llx\n" , + sibling->attr.config, + event->attr.config); +return -EINVAL ; + } + }return 0 ; }
drivers/perf/qcom_l3_pmu.c +6 -8
@@ -454,18 +454,16 @@ static bool qcom_l3_cache__validate_event_group(struct perf_event *event)struct perf_event *sibling;int counters =0 ; -if (leader->pmu != event->pmu && !is_software_event (leader)) -return false; +if (leader == event) +return true; counters =event_num_counters (event); - counters +=event_num_counters (leader); +if (leader->pmu == event->pmu) + counters +=event_num_counters (leader);for_each_sibling_event (sibling, leader) { -if (is_software_event (sibling)) -continue ; -if (sibling->pmu != event->pmu) -return false; - counters +=event_num_counters (sibling); +if (sibling->pmu == event->pmu) + counters +=event_num_counters (sibling); }/*
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerPATCH 10/19 perf/arm-ni: Improve event validation
In reply to Robin MurphyAlthough it is entirely benign for arm_ni_val_count_event() to count any old hardware leader/sibling as an NI event (perf core will still ultimately reject the cross-PMU group), it would still be nicer if it didn't. Stop trying to special-case software events and simply skip any event which doesn't belong to our PMU. Similarly drop the early return paths since they can almost never actually return early.
--- drivers/perf/arm-ni.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-)
drivers/perf/arm-ni.c +13 -16
@@ -271,40 +271,37 @@ static void arm_ni_pmu_disable(struct pmu *pmu) }struct arm_ni_val { +const struct pmu *pmu;unsigned int evcnt;unsigned int ccnt; }; -static bool arm_ni_val_count_event (struct perf_event *evt,struct arm_ni_val *val) +static void arm_ni_val_count_event (struct perf_event *evt,struct arm_ni_val *val) { -if (is_software_event (evt)) -return true; - -if (NI_EVENT_TYPE (evt) ==NI_PMU ) { - val->ccnt++; -return val->ccnt <=1 ; +if (evt->pmu == val->pmu) { +if (NI_EVENT_TYPE (evt) ==NI_PMU ) + val->ccnt++; +else + val->evcnt++; } - - val->evcnt++; -return val->evcnt <=NI_NUM_COUNTERS ; }static int arm_ni_validate_group (struct perf_event *event) {struct perf_event *sibling, *leader = event->group_leader; -struct arm_ni_val val = {0 }; +struct arm_ni_val val = { .pmu = event->pmu };if (leader == event)return 0 ;arm_ni_val_count_event (event, &val); -if (!arm_ni_val_count_event (leader, &val)) +arm_ni_val_count_event (leader, &val); +for_each_sibling_event (sibling, leader) +arm_ni_val_count_event (sibling, &val); + +if (val.evcnt >NI_NUM_COUNTERS || val.ccnt >1 )return -EINVAL ; -for_each_sibling_event (sibling, leader) { -if (!arm_ni_val_count_event (sibling, &val)) -return -EINVAL ; - }return 0 ; }
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerPATCH 11/19 perf/arm-cci: Tidy up event validation
In reply to Robin MurphyThe CCI driver only accepts events of its own type, so it is pointless to re-check the event type again further into validation. Conversely, if an event *is* for CCI but has a nonsense config, we should not return -ENOENT to potentially offer it to other PMUs. Finally it seems wrong not to count disabled events which may be enabled later.
These are all artefacts left over from the original attempt to fit CCI into the arm_pmu framework; clean them up, along with the now-redundant checks for cross-PMU groups which core code will already handle (albeit not quite as the out-of-date comment says).
--- drivers/perf/arm-cci.c | 47 +++++++++++------------------------------- 1 file changed, 12 insertions(+), 35 deletions(-)
drivers/perf/arm-cci.c +12 -35
@@ -333,7 +333,7 @@ static int cci400_validate_hw_event(struct cci_pmu *cci_pmu, unsigned long hw_evint if_type;if (hw_event & ~CCI400_PMU_EVENT_MASK ) -return -ENOENT ; +return -EINVAL ;if (hw_event ==CCI400_PMU_CYCLES )return hw_event;
@@ -354,14 +354,14 @@ static int cci400_validate_hw_event(struct cci_pmu *cci_pmu, unsigned long hw_ev if_type =CCI_IF_MASTER ;break ;default : -return -ENOENT ; +return -EINVAL ; }if (ev_code >= cci_pmu->model->event_ranges[if_type].min && ev_code <= cci_pmu->model->event_ranges[if_type].max)return hw_event; -return -ENOENT ; +return -EINVAL ; }static int probe_cci400_revision (struct cci_pmu *cci_pmu)
@@ -541,7 +541,7 @@ static int cci500_validate_hw_event(struct cci_pmu *cci_pmu,int if_type;if (hw_event & ~CCI5xx_PMU_EVENT_MASK) -return -ENOENT ; +return -EINVAL ;switch (ev_source) {case CCI5xx_PORT_S0:
@@ -565,14 +565,14 @@ static int cci500_validate_hw_event(struct cci_pmu *cci_pmu, if_type =CCI_IF_GLOBAL ;break ;default : -return -ENOENT ; +return -EINVAL ; }if (ev_code >= cci_pmu->model->event_ranges[if_type].min && ev_code <= cci_pmu->model->event_ranges[if_type].max)return hw_event; -return -ENOENT ; +return -EINVAL ; }/*
@@ -592,7 +592,7 @@ static int cci550_validate_hw_event(struct cci_pmu *cci_pmu,int if_type;if (hw_event & ~CCI5xx_PMU_EVENT_MASK) -return -ENOENT ; +return -EINVAL ;switch (ev_source) {case CCI5xx_PORT_S0:
@@ -617,14 +617,14 @@ static int cci550_validate_hw_event(struct cci_pmu *cci_pmu, if_type =CCI_IF_GLOBAL ;break ;default : - return -ENOENT; + return -EINVAL; }if (ev_code >= cci_pmu->model->event_ranges[if_type].min && ev_code <= cci_pmu->model->event_ranges[if_type].max)return hw_event; -return -ENOENT ; +return -EINVAL ; }#endif /* CONFIG_ARM_CCI5xx_PMU */
@@ -801,17 +801,6 @@ static int pmu_get_event_idx(struct cci_pmu_hw_events *hw, struct perf_event *evreturn -EAGAIN ; } -static int pmu_map_event (struct perf_event *event) -{ -struct cci_pmu *cci_pmu =to_cci_pmu (event->pmu); - -if (event->attr.type <PERF_TYPE_MAX || - !cci_pmu->model->validate_hw_event) -return -ENOENT ; - -return cci_pmu->model->validate_hw_event (cci_pmu, event->attr.config); -} -static int pmu_request_irq (struct cci_pmu *cci_pmu,irq_handler_t handler) {int i;
@@ -1216,21 +1205,8 @@ static int validate_event(struct pmu *cci_pmu, struct cci_pmu_hw_events *hw_events, struct perf_event *event) { - if (is_software_event(event)) - return 1; - -/* -* Reject groups spanning multiple HW PMUs (e.g. CPU + CCI). The -* core perf code won't check that the pmu->ctx == leader->ctx -* until after pmu->event_init(event). -*/ +/* Ignore grouped events that aren't ours */ if (event->pmu != cci_pmu) -return 0 ; - -if (event->state <PERF_EVENT_STATE_OFF ) -return 1 ; - -if (event->state ==PERF_EVENT_STATE_OFF && !event->attr.enable_on_exec)return 1 ;return pmu_get_event_idx (hw_events, event) >=0 ;
@@ -1266,10 +1242,11 @@ static int validate_group(struct perf_event *event)static int __hw_perf_event_init (struct perf_event *event) { +struct cci_pmu *cci_pmu =to_cci_pmu (event->pmu);struct hw_perf_event *hwc = &event->hw;int mapping; - mapping =pmu_map_event (event); + mapping = cci_pmu->model->validate_hw_event (cci_pmu, event->attr.config);if (mapping <0 ) { pr_debug("event %x:%llx not supported\n", event->attr.type,
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerPATCH 12/19 perf: Ignore event state for group validation
In reply to Robin MurphyIt may have been different long ago, but today it seems wrong for these drivers to skip counting disabled sibling events in group validation, given that perf_event_enable() could make them schedulable again, and thus increase the effective size of the group later. Conversely, if a sibling event is truly dead then it stands to reason that the whole group is dead, so it's not worth going to any special effort to try to squeeze in a new event that's never going to run anyway. Thus, we can simply remove all these checks.
--- arch/alpha/kernel/perf_event.c | 2 +- arch/powerpc/perf/core-book3s.c | 3 +-- arch/powerpc/perf/core-fsl-emb.c | 3 +-- arch/sparc/kernel/perf_event.c | 3 +-- arch/x86/events/core.c | 2 +- arch/x86/events/intel/uncore.c | 3 +-- drivers/dma/idxd/perfmon.c | 3 +-- drivers/perf/arm_pmu.c | 6 ------ 8 files changed, 7 insertions(+), 18 deletions(-)
arch/alpha/kernel/perf_event.c +1 -1
@@ -352,7 +352,7 @@ static int collect_events(struct perf_event *group, int max_count, current_idx[n++] =PMC_NO_INDEX ; }for_each_sibling_event (pe, group) { -if (!is_software_event (pe) && pe->state !=PERF_EVENT_STATE_OFF ) { +if (!is_software_event (pe)) {if (n >= max_count)return -1 ; event[n] = pe;
arch/powerpc/perf/core-book3s.c +1 -2
@@ -1602,8 +1602,7 @@ static int collect_events(struct perf_event *group, int max_count, events[n++] = group->hw.config; }for_each_sibling_event (event, group) { -if (event->pmu->task_ctx_nr == perf_hw_context && - event->state !=PERF_EVENT_STATE_OFF ) { +if (event->pmu->task_ctx_nr == perf_hw_context) {if (n >= max_count)return -1 ; ctrs[n] = event;
arch/powerpc/perf/core-fsl-emb.c +1 -2
@@ -261,8 +261,7 @@ static int collect_events(struct perf_event *group, int max_count, n++; }for_each_sibling_event (event, group) { -if (!is_software_event (event) && - event->state !=PERF_EVENT_STATE_OFF ) { +if (!is_software_event (event)) {if (n >= max_count)return -1 ; ctrs[n] = event;
arch/sparc/kernel/perf_event.c +1 -2
@@ -1357,8 +1357,7 @@ static int collect_events(struct perf_event *group, int max_count, current_idx[n++] =PIC_NO_INDEX ; }for_each_sibling_event (event, group) { -if (!is_software_event (event) && - event->state !=PERF_EVENT_STATE_OFF ) { +if (!is_software_event (event)) {if (n >= max_count)return -1 ; evts[n] = event;
arch/x86/events/core.c +1 -1
@@ -1211,7 +1211,7 @@ static int collect_events(struct cpu_hw_events *cpuc, struct perf_event *leader,return n;for_each_sibling_event (event, leader) { -if (!is_x86_event (event) || event->state <=PERF_EVENT_STATE_OFF ) +if (!is_x86_event (event))continue ;if (collect_event (cpuc, event, max_count, n))
arch/x86/events/intel/uncore.c +1 -2
@@ -406,8 +406,7 @@ uncore_collect_events(struct intel_uncore_box *box, struct perf_event *leader,return n;for_each_sibling_event (event, leader) { -if (!is_box_event (box, event) || - event->state <=PERF_EVENT_STATE_OFF ) +if (!is_box_event (box, event))continue ;if (n >= max_count)
drivers/dma/idxd/perfmon.c +1 -2
@@ -75,8 +75,7 @@ static int perfmon_collect_events(struct idxd_pmu *idxd_pmu,return n;for_each_sibling_event (event, leader) { -if (!is_idxd_event (idxd_pmu, event) || - event->state <=PERF_EVENT_STATE_OFF ) +if (!is_idxd_event (idxd_pmu, event))continue ;if (n >= max_count)
drivers/perf/arm_pmu.c +0 -6
@@ -386,12 +386,6 @@ validate_event(struct pmu *pmu, struct pmu_hw_events *hw_events,if (event->pmu != pmu)return 0 ; -if (event->state <PERF_EVENT_STATE_OFF ) -return 1 ; - -if (event->state ==PERF_EVENT_STATE_OFF && !event->attr.enable_on_exec) -return 1 ; - armpmu =to_arm_pmu (event->pmu);return armpmu->get_event_idx (hw_events, event) >=0 ; }
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Peter Zijlstra
maintainerRe: [PATCH 12/19] perf: Ignore event state for group validation
Quoted 8 lines · Robin Murphy
It may have been different long ago, but today it seems wrong for these drivers to skip counting disabled sibling events in group validation, given that
perf_event_enable()could make them schedulable again, and thus increase the effective size of the group later. Conversely, if a sibling event is truly dead then it stands to reason that the whole group is dead, so it's not worth going to any special effort to try to squeeze in a new event that's never going to run anyway. Thus, we can simply remove all these checks.
So currently you can do sort of a manual event rotation inside an over-sized group and have it work.
I'm not sure if anybody actually does this, but its possible.
Eg. on a PMU that supports only 4 counters, create a group of 5 and periodically cycle which of the 5 events is off.
So I'm not against changing this, but changing stuff like this always makes me a little fearful -- it wouldn't be the first time that when it finally trickles down to some 'enterprise' user in 5 years someone comes and finally says, oh hey, you broke my shit :-(
Robin Murphy
maintainerRe: [PATCH 12/19] perf: Ignore event state for group validation
Quoted 15 lines · Peter Zijlstra
Quoted 8 lines · Robin Murphy
It may have been different long ago, but today it seems wrong for these drivers to skip counting disabled sibling events in group validation, given that
perf_event_enable()could make them schedulable again, and thus increase the effective size of the group later. Conversely, if a sibling event is truly dead then it stands to reason that the whole group is dead, so it's not worth going to any special effort to try to squeeze in a new event that's never going to run anyway. Thus, we can simply remove all these checks.So currently you can do sort of a manual event rotation inside an over-sized group and have it work.
I'm not sure if anybody actually does this, but its possible.
Quoted 7 lines
Eg. on a PMU that supports only 4 counters, create a group of 5 and periodically cycle which of the 5 events is off.
So I'm not against changing this, but changing stuff like this always makes me a little fearful -- it wouldn't be the first time that when it finally trickles down to some 'enterprise' user in 5 years someone comes and finally says, oh hey, you broke my shit :-(
Eww, I see what you mean... and I guess that's probably lower-overhead than actually deleting and recreating the sibling event(s) each time, and potentially less bother then wrangling multiple groups for different combinations of subsets when one simply must still approximate a complex metric that requires more counters than the hardware offers.
I'm also not keen to break anything that wasn't already somewhat broken, especially since this patch is only intended as cleanup, so either we could just drop it altogether, or perhaps I can wrap the existing behaviour in a helper that can at least document this assumption and discourage new drivers from copying it. Am I right that only PERF_EVENT_STATE_{OFF,ERROR} would matter for this, though, and my reasoning for state <= PERF_EVENT_STATE_EXIT should still stand? As for the fiddly discrepancy with enable_on_exec between arm_pmu and others I'm not really sure what to think...
Thanks,
Robin.
Ian Rogers
reviewerRe: [PATCH 12/19] perf: Ignore event state for group validation
Quoted 12 lines · Robin Murphy
Quoted 10 lines · Peter Zijlstra
Quoted 8 lines · Robin Murphy
It may have been different long ago, but today it seems wrong for these drivers to skip counting disabled sibling events in group validation, given that
perf_event_enable()could make them schedulable again, and thus increase the effective size of the group later. Conversely, if a sibling event is truly dead then it stands to reason that the whole group is dead, so it's not worth going to any special effort to try to squeeze in a new event that's never going to run anyway. Thus, we can simply remove all these checks.
Quoted 7 lines
Quoted 7 lines
So currently you can do sort of a manual event rotation inside an over-sized group and have it work.
I'm not sure if anybody actually does this, but its possible.
Eg. on a PMU that supports only 4 counters, create a group of 5 and periodically cycle which of the 5 events is off.
I'm not sure this is true, I thought this would fail in the perf_event_open when adding the 5th event and there being insufficient counters for the group. Not all PMUs validate a group will fit on the counters, but I thought at least Intel's core PMU would validate and not allow this. Fwiw, the metric code is reliant on this behavior as by default all events are placed into a weak group:
https://web.git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/util/metricgroup.c?h=perf-tools-next#n631
Weak groups are really just groups that when the perf_event_open fails retry with the grouping removed. PMUs that don't fail the perf_event_open are problematic as the reads just report "not counted" and the metric doesn't work. Sometimes the PMU can't help it due to errata. There are a bunch of workarounds for those cases carried in the perf tool, but in general weak groups working is relied upon:
https://web.git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/pmu-events/pmu-events.h?h=perf-tools-next#n16
Thanks,
Ian
Quoted 23 lines
Quoted 4 lines
So I'm not against changing this, but changing stuff like this always makes me a little fearful -- it wouldn't be the first time that when it finally trickles down to some 'enterprise' user in 5 years someone comes and finally says, oh hey, you broke my shit :-(
Eww, I see what you mean... and I guess that's probably lower-overhead than actually deleting and recreating the sibling event(s) each time, and potentially less bother then wrangling multiple groups for different combinations of subsets when one simply must still approximate a complex metric that requires more counters than the hardware offers.
I'm also not keen to break anything that wasn't already somewhat broken, especially since this patch is only intended as cleanup, so either we could just drop it altogether, or perhaps I can wrap the existing behaviour in a helper that can at least document this assumption and discourage new drivers from copying it. Am I right that only PERF_EVENT_STATE_{OFF,ERROR} would matter for this, though, and my reasoning for state <=
PERF_EVENT_STATE_EXITshould still stand? As for the fiddly discrepancy withenable_on_execbetweenarm_pmuand others I'm not really sure what to think...Thanks,
Robin.
Mark Rutland
maintainerRe: [PATCH 12/19] perf: Ignore event state for group validation
Quoted 16 lines · Ian Rogers
Quoted 15 lines · Robin Murphy
Quoted 13 lines · Peter Zijlstra
Quoted 8 lines · Robin Murphy
It may have been different long ago, but today it seems wrong for these drivers to skip counting disabled sibling events in group validation, given that
perf_event_enable()could make them schedulable again, and thus increase the effective size of the group later. Conversely, if a sibling event is truly dead then it stands to reason that the whole group is dead, so it's not worth going to any special effort to try to squeeze in a new event that's never going to run anyway. Thus, we can simply remove all these checks.So currently you can do sort of a manual event rotation inside an over-sized group and have it work.
Quoted 8 lines
Quoted 4 lines
Quoted 4 lines
I'm not sure if anybody actually does this, but its possible.
Eg. on a PMU that supports only 4 counters, create a group of 5 and periodically cycle which of the 5 events is off.
I'm not sure this is true, I thought this would fail in the
perf_event_openwhen adding the 5th event and there being insufficient counters for the group.
We're talking specifically about cases where the logic in a pmu's pmu::event_init() callback doesn't count events in specific states, and hence the 5th even doesn't get rejected when it is initialised.
For example, in arch/x86/events/core.c, validate_group() uses collect_events(), which has:
for_each_sibling_event(event, leader) {
if (!is_x86_event(event) || event->state <= PERF_EVENT_STATE_OFF)
continue;
if (collect_event(cpuc, event, max_count, n))
return -EINVAL;
n++;
}... and so where an event's state is <= PERF_EVENT_STATE_OFF at init time, that event is not counted to see if it fits into HW counters.
Mark.
Ian Rogers
reviewerRe: [PATCH 12/19] perf: Ignore event state for group validation
Quoted 44 lines · Mark Rutland
Quoted 16 lines · Ian Rogers
Quoted 15 lines · Robin Murphy
Quoted 13 lines · Peter Zijlstra
Quoted 8 lines · Robin Murphy
It may have been different long ago, but today it seems wrong for these drivers to skip counting disabled sibling events in group validation, given that
perf_event_enable()could make them schedulable again, and thus increase the effective size of the group later. Conversely, if a sibling event is truly dead then it stands to reason that the whole group is dead, so it's not worth going to any special effort to try to squeeze in a new event that's never going to run anyway. Thus, we can simply remove all these checks.So currently you can do sort of a manual event rotation inside an over-sized group and have it work.
Quoted 8 lines
Quoted 4 lines
Quoted 4 lines
I'm not sure if anybody actually does this, but its possible.
Eg. on a PMU that supports only 4 counters, create a group of 5 and periodically cycle which of the 5 events is off.
I'm not sure this is true, I thought this would fail in the
perf_event_openwhen adding the 5th event and there being insufficient counters for the group.We're talking specifically about cases where the logic in a pmu's
pmu::event_init()callback doesn't count events in specific states, and hence the 5th even doesn't get rejected when it is initialised.For example, in
arch/x86/events/core.c,validate_group()usescollect_events(), which has:for_each_sibling_event(event, leader) { if (!is_x86_event(event) || event->state <= PERF_EVENT_STATE_OFF) continue; if (collect_event(cpuc, event, max_count, n)) return -EINVAL; n++; }
Quoted 2 lines
... and so where an event's state is <=
PERF_EVENT_STATE_OFFat init time, that event is not counted to see if it fits into HW counters.
Hmm.. Thinking out loud. So it looked like perf with weak groups could be broken then:
```
$ sudo perf stat -vv -e '{instructions,cycles}:W' true
...
perf_event_attr:
type 0 (PERF_TYPE_HARDWARE)
size 136
config 0x400000001
(cpu_core/PERF_COUNT_HW_INSTRUCTIONS/)
sample_type IDENTIFIER
read_format TOTAL_TIME_ENABLED|TOTAL_TIME_RUNNING|ID|GROUP
disabled 1
inherit 1
enable_on_exec 1
------------------------------------------------------------
sys_perf_event_open: pid 3337764 cpu -1 group_fd -1 flags 0x8 = 5
------------------------------------------------------------
perf_event_attr:
type 0 (PERF_TYPE_HARDWARE)
size 136
config 0x400000000
(cpu_core/PERF_COUNT_HW_CPU_CYCLES/)
sample_type IDENTIFIER
read_format TOTAL_TIME_ENABLED|TOTAL_TIME_RUNNING|ID|GROUP
inherit 1
------------------------------------------------------------
sys_perf_event_open: pid 3337764 cpu -1 group_fd 5 flags 0x8 = 7
...
```
Note, the group leader (instructions) is disabled because of:
https://web.git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/util/stat.c?h=perf-tools-next#n761
```
/*
* Disabling all counters initially, they will be enabled
* either manually by us or by kernel via enable_on_exec
* set later.
*/
if (evsel__is_group_leader(evsel)) {
attr->disabled = 1;
```but the checking of being disabled (PERF_EVENT_STATE_OFF) is only done on siblings in the code you show above. So yes, you can disable the group events to allow the perf_event_open to succeed but not on the leader which is always checked (no PERF_EVENT_STATE_OFF check):
https://web.git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/arch/x86/events/core.c?h=perf-tools-next#n1204
```
if (is_x86_event(leader)) {
if (collect_event(cpuc, leader, max_count, n))
return -EINVAL;
```Thanks,
Ian
Robin Murphy
maintainerPATCH 13/19 perf: Add helper for checking grouped events
In reply to Robin MurphySeveral drivers cannot support groups, but enforce this inconsistently (including not at all) in their event_init routines. Add a helper so that such drivers can simply and robustly check for the acceptable conditions that their event is either standalone, or the first one being added to a software-only group.
In particular it took a while to see that marvell_cn10k_tad_pmu was seemingly trying to rely on the empirical behaviour of perf tool creating group leader events with disabled=1 and subsequent siblings with disabled=0. Down with this sort of thing!
--- arch/x86/events/amd/ibs.c | 30 ++++++--------------------- drivers/devfreq/event/rockchip-dfi.c | 3 +++ drivers/perf/alibaba_uncore_drw_pmu.c | 11 +--------- drivers/perf/arm_dmc620_pmu.c | 12 +---------- drivers/perf/dwc_pcie_pmu.c | 10 ++------- drivers/perf/marvell_cn10k_tad_pmu.c | 6 ++---- drivers/perf/marvell_pem_pmu.c | 11 ++-------- include/linux/perf_event.h | 7 +++++++ 8 files changed, 24 insertions(+), 66 deletions(-)
arch/x86/events/amd/ibs.c +6 -24
@@ -248,27 +248,6 @@ int forward_event_to_ibs(struct perf_event *event)return -ENOENT ; } -/* -* Grouping of IBS events is not possible since IBS can have only -* one event active at any point in time. -*/ -static int validate_group (struct perf_event *event) -{ -struct perf_event *sibling; - -if (event->group_leader == event) -return 0 ; - -if (event->group_leader->pmu == event->pmu) -return -EINVAL ; - -for_each_sibling_event (sibling, event->group_leader) { -if (sibling->pmu == event->pmu) -return -EINVAL ; - } -return 0 ; -} -static bool perf_ibs_ldlat_event (struct perf_ibs *perf_ibs,struct perf_event *event) {
@@ -309,9 +288,12 @@ static int perf_ibs_init(struct perf_event *event) event->attr.exclude_hv))return -EINVAL ; - ret =validate_group (event); -if (ret) -return ret; +/* +* Grouping of IBS events is not possible since IBS can have only +* one event active at any point in time. +*/ +if (in_hardware_group (event)) +return -EINVAL ;if (hwc->sample_period) {if (config & perf_ibs->cnt_mask)
drivers/devfreq/event/rockchip-dfi.c +3 -0
@@ -413,6 +413,9 @@ static int rockchip_ddr_perf_event_init(struct perf_event *event)dev_warn (dfi->dev,"Can't provide per-task data!\n" );return -EINVAL ; } +/* Disallow groups since we can't start/stop/read multiple counters at once */ +if (in_hardware_group (event)) +return -EINVAL ;return 0 ; }
drivers/perf/alibaba_uncore_drw_pmu.c +1 -10
@@ -526,7 +526,6 @@ static int ali_drw_pmu_event_init(struct perf_event *event) {struct ali_drw_pmu *drw_pmu =to_ali_drw_pmu (event->pmu);struct hw_perf_event *hwc = &event->hw; -struct perf_event *sibling;struct device *dev = drw_pmu->pmu.dev;if (event->attr.type != event->pmu->type)
@@ -548,19 +547,11 @@ static int ali_drw_pmu_event_init(struct perf_event *event)return -EOPNOTSUPP ; } -if (event->group_leader != event && - !is_software_event (event->group_leader)) { +if (in_hardware_group (event)) {dev_err (dev,"driveway only allow one event!\n" );return -EINVAL ; } -for_each_sibling_event (sibling, event->group_leader) { -if (sibling != event && !is_software_event (sibling)) { -dev_err (dev,"driveway event not allowed!\n" ); -return -EINVAL ; - } - } -/* reset all the pmu counters */ writel (ALI_DRW_PMU_CNT_RST , drw_pmu->cfg_base +ALI_DRW_PMU_CNT_CTRL );
drivers/perf/arm_dmc620_pmu.c +1 -11
@@ -513,7 +513,6 @@ static int dmc620_pmu_event_init(struct perf_event *event) {struct dmc620_pmu *dmc620_pmu =to_dmc620_pmu (event->pmu);struct hw_perf_event *hwc = &event->hw; -struct perf_event *sibling;if (event->attr.type != event->pmu->type)return -ENOENT ;
@@ -544,22 +543,13 @@ static int dmc620_pmu_event_init(struct perf_event *event) hwc->idx =-1 ; -if (event->group_leader == event) -return 0 ; -/* * We can't atomically disable all HW counters so only one event allowed, * although software events are acceptable. */ -if (!is_software_event (event->group_leader)) +if (in_hardware_group (event))return -EINVAL ; -for_each_sibling_event (sibling, event->group_leader) { -if (sibling != event && - !is_software_event (sibling)) -return -EINVAL ; - } -return 0 ; }
drivers/perf/dwc_pcie_pmu.c +2 -8
@@ -353,7 +353,6 @@ static int dwc_pcie_pmu_event_init(struct perf_event *event) {struct dwc_pcie_pmu *pcie_pmu =to_dwc_pcie_pmu (event->pmu);enum dwc_pcie_event_type type =DWC_PCIE_EVENT_TYPE (event); -struct perf_event *sibling;u32 lane;if (event->attr.type != event->pmu->type)
@@ -367,15 +366,10 @@ static int dwc_pcie_pmu_event_init(struct perf_event *event)if (event->cpu <0 || event->attach_state &PERF_ATTACH_TASK )return -EINVAL ; -if (event->group_leader != event && - !is_software_event (event->group_leader)) +/* Disallow groups since we can't start/stop/read multiple counters at once */ +if (in_hardware_group (event))return -EINVAL ; -for_each_sibling_event (sibling, event->group_leader) { -if (sibling->pmu != event->pmu && !is_software_event (sibling)) -return -EINVAL ; - } -if (type <0 || type >=DWC_PCIE_EVENT_TYPE_MAX )return -EINVAL ;
drivers/perf/marvell_cn10k_tad_pmu.c +2 -4
@@ -152,10 +152,8 @@ static int tad_pmu_event_init(struct perf_event *event)if (event->attr.type != event->pmu->type)return -ENOENT ; -if (!event->attr.disabled) -return -EINVAL ; - -if (event->state !=PERF_EVENT_STATE_OFF ) +/* Disallow groups since we can't start/stop/read multiple counters at once */ +if (in_hardware_group (event))return -EINVAL ; event->cpu = tad_pmu->cpu;
drivers/perf/marvell_pem_pmu.c +2 -9
@@ -190,7 +190,6 @@ static int pem_perf_event_init(struct perf_event *event) {struct pem_pmu *pmu =to_pem_pmu (event->pmu);struct hw_perf_event *hwc = &event->hw; -struct perf_event *sibling;if (event->attr.type != event->pmu->type)return -ENOENT ;
@@ -206,16 +205,10 @@ static int pem_perf_event_init(struct perf_event *event)if (event->cpu <0 )return -EOPNOTSUPP ; -/* We must NOT create groups containing mixed PMUs */ -if (event->group_leader->pmu != event->pmu && - !is_software_event (event->group_leader)) +/* Disallow groups since we can't start/stop/read multiple counters at once */ +if (in_hardware_group (event))return -EINVAL ; -for_each_sibling_event (sibling, event->group_leader) { -if (sibling->pmu != event->pmu && - !is_software_event (sibling)) -return -EINVAL ; - }/* * Set ownership of event to one CPU, same event can not be observed * on multiple cpus at same time.
include/linux/perf_event.h +7 -0
@@ -1556,6 +1556,13 @@ static inline int in_software_context(struct perf_event *event)return event->pmu_ctx->pmu->task_ctx_nr == perf_sw_context; } +/* True if the event has (or would have) any non-software siblings */ +static inline bool in_hardware_group (const struct perf_event *event) +{ +return event != event->group_leader && + !in_software_context (event->group_leader); +} +static inline int is_exclusive_pmu (struct pmu *pmu) {return pmu->capabilities &PERF_PMU_CAP_EXCLUSIVE ;
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
kernel test robot
build botRe: [PATCH 13/19] perf: Add helper for checking grouped events
kernel test robot noticed the following build warnings:
Hi Robin,
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on v6.17-rc1 next-20250814]
[cannot apply to perf-tools-next/perf-tools-next tip/perf/core perf-tools/perf-tools acme/perf/core] [If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Robin-Murphy/perf-arm-cmn-Fix-event-validation/20250814-010626 base: linus/master patch link: https://lore.kernel.org/r/b05607c3ce0d3ce52de1784823ef9f6de324283c.1755096883.git.robin.murphy%40arm.com patch subject: [PATCH 13/19] perf: Add helper for checking grouped events config: i386-randconfig-003-20250814 (https://download.01.org/0day-ci/archive/20250814/[email protected]/config) compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250814/[email protected]/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
All warnings (new ones prefixed by >>):
>> arch/x86/events/amd/ibs.c:264:6: warning: unused variable 'ret' [-Wunused-variable]
264 | int ret;
| ^~~1 warning generated.
vim +/ret +264 arch/x86/events/amd/ibs.c
d20610c19b4a22 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-02-05 258
b716916679e720 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-09-21 259 static int perf_ibs_init(struct perf_event *event)
b716916679e720 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-09-21 260 {
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 261 struct hw_perf_event *hwc = &event->hw;
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 262 struct perf_ibs *perf_ibs;
598bdf4fefff5a arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 263 u64 config;
7c2128235eff99 arch/x86/events/amd/ibs.c Ravi Bangoria 2023-06-20 @264 int ret;
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 265
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 266 perf_ibs = get_ibs_pmu(event->attr.type);
2fad201fe38ff9 arch/x86/events/amd/ibs.c Ravi Bangoria 2023-05-04 267 if (!perf_ibs)
2fad201fe38ff9 arch/x86/events/amd/ibs.c Ravi Bangoria 2023-05-04 268 return -ENOENT;
2fad201fe38ff9 arch/x86/events/amd/ibs.c Ravi Bangoria 2023-05-04 269
450bbd493d436f arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2012-03-12 270 config = event->attr.config;
450bbd493d436f arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2012-03-12 271
450bbd493d436f arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2012-03-12 272 if (event->pmu != &perf_ibs->pmu)
b716916679e720 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-09-21 273 return -ENOENT;
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 274
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 275 if (config & ~perf_ibs->config_mask)
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 276 return -EINVAL;
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 277
0f9e0d7928d8e8 arch/x86/events/amd/ibs.c Namhyung Kim 2023-11-30 278 if (has_branch_stack(event))
0f9e0d7928d8e8 arch/x86/events/amd/ibs.c Namhyung Kim 2023-11-30 279 return -EOPNOTSUPP;
0f9e0d7928d8e8 arch/x86/events/amd/ibs.c Namhyung Kim 2023-11-30 280
d29e744c71673a arch/x86/events/amd/ibs.c Namhyung Kim 2024-12-03 281 /* handle exclude_{user,kernel} in the IRQ handler */
d29e744c71673a arch/x86/events/amd/ibs.c Namhyung Kim 2024-12-03 282 if (event->attr.exclude_host || event->attr.exclude_guest ||
d29e744c71673a arch/x86/events/amd/ibs.c Namhyung Kim 2024-12-03 283 event->attr.exclude_idle)
d29e744c71673a arch/x86/events/amd/ibs.c Namhyung Kim 2024-12-03 284 return -EINVAL;
d29e744c71673a arch/x86/events/amd/ibs.c Namhyung Kim 2024-12-03 285
d29e744c71673a arch/x86/events/amd/ibs.c Namhyung Kim 2024-12-03 286 if (!(event->attr.config2 & IBS_SW_FILTER_MASK) &&
d29e744c71673a arch/x86/events/amd/ibs.c Namhyung Kim 2024-12-03 287 (event->attr.exclude_kernel || event->attr.exclude_user ||
d29e744c71673a arch/x86/events/amd/ibs.c Namhyung Kim 2024-12-03 288 event->attr.exclude_hv))
d29e744c71673a arch/x86/events/amd/ibs.c Namhyung Kim 2024-12-03 289 return -EINVAL;
d29e744c71673a arch/x86/events/amd/ibs.c Namhyung Kim 2024-12-03 290
ccec93f5de464b arch/x86/events/amd/ibs.c Robin Murphy 2025-08-13 291 /*
ccec93f5de464b arch/x86/events/amd/ibs.c Robin Murphy 2025-08-13 292 * Grouping of IBS events is not possible since IBS can have only
ccec93f5de464b arch/x86/events/amd/ibs.c Robin Murphy 2025-08-13 293 * one event active at any point in time.
ccec93f5de464b arch/x86/events/amd/ibs.c Robin Murphy 2025-08-13 294 */
ccec93f5de464b arch/x86/events/amd/ibs.c Robin Murphy 2025-08-13 295 if (in_hardware_group(event))
ccec93f5de464b arch/x86/events/amd/ibs.c Robin Murphy 2025-08-13 296 return -EINVAL;
7c2128235eff99 arch/x86/events/amd/ibs.c Ravi Bangoria 2023-06-20 297
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 298 if (hwc->sample_period) {
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 299 if (config & perf_ibs->cnt_mask)
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 300 /* raw max_cnt may not be set */
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 301 return -EINVAL;
88c7bcad71c83f arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 302
b2fc7b282bf7c1 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 303 if (event->attr.freq) {
b2fc7b282bf7c1 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 304 hwc->sample_period = perf_ibs->min_period;
b2fc7b282bf7c1 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 305 } else {
88c7bcad71c83f arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 306 /* Silently mask off lower nibble. IBS hw mandates it. */
6accb9cf760804 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2012-04-02 307 hwc->sample_period &= ~0x0FULL;
b2fc7b282bf7c1 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 308 if (hwc->sample_period < perf_ibs->min_period)
b2fc7b282bf7c1 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 309 return -EINVAL;
b2fc7b282bf7c1 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 310 }
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 311 } else {
598bdf4fefff5a arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 312 u64 period = 0;
598bdf4fefff5a arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 313
e1e7844ced88f9 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 314 if (event->attr.freq)
e1e7844ced88f9 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 315 return -EINVAL;
e1e7844ced88f9 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 316
598bdf4fefff5a arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 317 if (perf_ibs == &perf_ibs_op) {
598bdf4fefff5a arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 318 period = (config & IBS_OP_MAX_CNT) << 4;
598bdf4fefff5a arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 319 if (ibs_caps & IBS_CAPS_OPCNTEXT)
598bdf4fefff5a arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 320 period |= config & IBS_OP_MAX_CNT_EXT_MASK;
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 321 } else {
598bdf4fefff5a arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 322 period = (config & IBS_FETCH_MAX_CNT) << 4;
598bdf4fefff5a arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 323 }
598bdf4fefff5a arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 324
db98c5faf8cb35 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 325 config &= ~perf_ibs->cnt_mask;
598bdf4fefff5a arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 326 event->attr.sample_period = period;
598bdf4fefff5a arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 327 hwc->sample_period = period;
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 328
b2fc7b282bf7c1 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-01-15 329 if (hwc->sample_period < perf_ibs->min_period)
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 330 return -EINVAL;
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 331 }
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 332
d20610c19b4a22 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-02-05 333 if (perf_ibs_ldlat_event(perf_ibs, event)) {
d20610c19b4a22 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-02-05 334 u64 ldlat = event->attr.config1 & 0xFFF;
d20610c19b4a22 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-02-05 335
d20610c19b4a22 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-02-05 336 if (ldlat < 128 || ldlat > 2048)
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 337 return -EINVAL;
d20610c19b4a22 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-02-05 338 ldlat >>= 7;
d20610c19b4a22 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-02-05 339
d20610c19b4a22 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-02-05 340 config |= (ldlat - 1) << 59;
d20610c19b4a22 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-02-05 341 config |= IBS_OP_L3MISSONLY | IBS_OP_LDLAT_EN;
d20610c19b4a22 arch/x86/events/amd/ibs.c Ravi Bangoria 2025-02-05 342 }
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 343
6accb9cf760804 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2012-04-02 344 /*
6accb9cf760804 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2012-04-02 345 * If we modify hwc->sample_period, we also need to update
6accb9cf760804 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2012-04-02 346 * hwc->last_period and hwc->period_left.
6accb9cf760804 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2012-04-02 347 */
6accb9cf760804 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2012-04-02 348 hwc->last_period = hwc->sample_period;
6accb9cf760804 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2012-04-02 349 local64_set(&hwc->period_left, hwc->sample_period);
6accb9cf760804 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2012-04-02 350
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 351 hwc->config_base = perf_ibs->msr;
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 352 hwc->config = config;
510419435c6948 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-12-15 353
b716916679e720 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-09-21 354 return 0;
b716916679e720 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-09-21 355 }
b716916679e720 arch/x86/kernel/cpu/perf_event_amd_ibs.c Robert Richter 2011-09-21 356 Signature · 2 lines
0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
Robin Murphy
maintainerPATCH 14/19 perf: Clean up redundant group validation
In reply to Robin MurphyNone of these drivers are doing anything that perf_event_open() doesn't inherently do as of commit bf480f938566 ("perf/core: Don't allow grouping events from different hw pmus"). While it's quite possible that they should be doing some actual validation of the schedulability of their own events within the given group, for now at least removing this redundant code makes it even clearer that they are not.
--- drivers/perf/arm-ccn.c | 16 ---------------- drivers/perf/fsl_imx9_ddr_perf.c | 16 ---------------- drivers/perf/marvell_cn10k_ddr_pmu.c | 5 ----- drivers/perf/xgene_pmu.c | 15 --------------- 4 files changed, 52 deletions(-)
drivers/perf/arm-ccn.c +0 -16
@@ -708,7 +708,6 @@ static int arm_ccn_pmu_event_init(struct perf_event *event)u32 node_xp, type, event_id;int valid;int i; -struct perf_event *sibling;if (event->attr.type != event->pmu->type)return -ENOENT ;
@@ -814,21 +813,6 @@ static int arm_ccn_pmu_event_init(struct perf_event *event) node_xp, type, port); } -/* -* We must NOT create groups containing mixed PMUs, although software -* events are acceptable (for example to create a CCN group -* periodically read when a hrtimer aka cpu-clock leader triggers). -*/ -if (event->group_leader->pmu != event->pmu && - !is_software_event (event->group_leader)) -return -EINVAL ; - -for_each_sibling_event (sibling, event->group_leader) { -if (sibling->pmu != event->pmu && - !is_software_event (sibling)) -return -EINVAL ; - } -return 0 ; }
drivers/perf/fsl_imx9_ddr_perf.c +0 -16
@@ -552,7 +552,6 @@ static int ddr_perf_event_init(struct perf_event *event) {struct ddr_pmu *pmu =to_ddr_pmu (event->pmu);struct hw_perf_event *hwc = &event->hw; -struct perf_event *sibling;if (event->attr.type != event->pmu->type)return -ENOENT ;
@@ -565,21 +564,6 @@ static int ddr_perf_event_init(struct perf_event *event)return -EOPNOTSUPP ; } -/* -* We must NOT create groups containing mixed PMUs, although software -* events are acceptable (for example to create a CCN group -* periodically read when a hrtimer aka cpu-clock leader triggers). -*/ -if (event->group_leader->pmu != event->pmu && - !is_software_event (event->group_leader)) -return -EINVAL ; - -for_each_sibling_event (sibling, event->group_leader) { -if (sibling->pmu != event->pmu && - !is_software_event (sibling)) -return -EINVAL ; - } - event->cpu = pmu->cpu; hwc->idx =-1 ;
drivers/perf/marvell_cn10k_ddr_pmu.c +0 -5
@@ -487,11 +487,6 @@ static int cn10k_ddr_perf_event_init(struct perf_event *event)return -EOPNOTSUPP ; } -/* We must NOT create groups containing mixed PMUs */ -if (event->group_leader->pmu != event->pmu && - !is_software_event (event->group_leader)) -return -EINVAL ; -/* Set ownership of event to one CPU, same event can not be observed * on multiple cpus at same time. */
drivers/perf/xgene_pmu.c +0 -15
@@ -877,7 +877,6 @@ static int xgene_perf_event_init(struct perf_event *event) {struct xgene_pmu_dev *pmu_dev =to_pmu_dev (event->pmu);struct hw_perf_event *hw = &event->hw; -struct perf_event *sibling;/* Test the event attr type check for PMU enumeration */ if (event->attr.type != event->pmu->type)
@@ -913,20 +912,6 @@ static int xgene_perf_event_init(struct perf_event *event)*/ hw->config_base = event->attr.config1; -/* -* We must NOT create groups containing mixed PMUs, although software -* events are acceptable -*/ -if (event->group_leader->pmu != event->pmu && - !is_software_event (event->group_leader)) -return -EINVAL ; - -for_each_sibling_event (sibling, event->group_leader) { -if (sibling->pmu != event->pmu && - !is_software_event (sibling)) -return -EINVAL ; - } -return 0 ; }
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerPATCH 15/19 perf: Simplify group validation
In reply to Robin MurphyAll of these drivers copy a pattern of actively policing cross-PMU groups, which is redundant since commit bf480f938566 ("perf/core: Don't allow grouping events from different hw pmus"). Clean up these checks to simplfy matters, especially for thunderx2 which can reduce right down to trivial counting.
--- drivers/perf/arm_cspmu/arm_cspmu.c | 7 ++----- drivers/perf/arm_dsu_pmu.c | 6 ++---- drivers/perf/arm_pmu.c | 11 ++--------- drivers/perf/thunderx2_pmu.c | 30 +++++++----------------------- 4 files changed, 13 insertions(+), 41 deletions(-)
drivers/perf/arm_cspmu/arm_cspmu.c +2 -5
@@ -561,12 +561,9 @@ static bool arm_cspmu_validate_event(struct pmu *pmu, struct arm_cspmu_hw_events *hw_events, struct perf_event *event) { - if (is_software_event(event)) - return true; - -/* Reject groups spanning multiple HW PMUs. */ +/* Ignore grouped events that aren't ours */ if (event->pmu != pmu) -return false; +return true;return (arm_cspmu_get_event_idx (hw_events, event) >=0 ); }
drivers/perf/arm_dsu_pmu.c +2 -4
@@ -492,11 +492,9 @@ static bool dsu_pmu_validate_event(struct pmu *pmu, struct dsu_hw_events *hw_events, struct perf_event *event) { - if (is_software_event(event)) - return true; -/* Reject groups spanning multiple HW PMUs. */ +/* Ignore grouped events that aren't ours */ if (event->pmu != pmu) -return false; +return true;return dsu_pmu_get_event_idx (hw_events, event) >=0 ; }
drivers/perf/arm_pmu.c +2 -9
@@ -375,16 +375,9 @@ validate_event(struct pmu *pmu, struct pmu_hw_events *hw_events, {struct arm_pmu *armpmu; -if (is_software_event (event)) -return 1 ; - -/* -* Reject groups spanning multiple HW PMUs (e.g. CPU + CCI). The -* core perf code won't check that the pmu->ctx == leader->ctx -* until after pmu->event_init(event). -*/ +/* Ignore grouped events that aren't ours */ if (event->pmu != pmu) -return 0 ; +return 1 ; armpmu =to_arm_pmu (event->pmu);return armpmu->get_event_idx (hw_events, event) >=0 ;
drivers/perf/thunderx2_pmu.c +7 -23
@@ -519,19 +519,6 @@ static enum tx2_uncore_type get_tx2_pmu_type(struct acpi_device *adev)return (enum tx2_uncore_type )id->driver_data; } -static bool tx2_uncore_validate_event (struct pmu *pmu, -struct perf_event *event,int *counters) -{ -if (is_software_event (event)) -return true; -/* Reject groups spanning multiple HW PMUs. */ -if (event->pmu != pmu) -return false; - - *counters = *counters +1 ; -return true; -} -/* * Make sure the group of events can be scheduled at once * on the PMU.
@@ -539,23 +526,20 @@ static bool tx2_uncore_validate_event(struct pmu *pmu,static bool tx2_uncore_validate_event_group (struct perf_event *event,int max_counters) { -struct perf_event *sibling, *leader = event->group_leader; -int counters =0 ; +struct perf_event *sibling; +int counters =1 ;if (event->group_leader == event)return true; -if (!tx2_uncore_validate_event (event->pmu, leader, &counters)) -return false; +if (event->group_leader->pmu == event->pmu) + ++counters; -for_each_sibling_event (sibling, leader) { -if (!tx2_uncore_validate_event (event->pmu, sibling, &counters)) -return false; +for_each_sibling_event (sibling, event->group_leader) { +if (sibling->pmu == event->pmu) + ++counters; } -if (!tx2_uncore_validate_event (event->pmu, event, &counters)) -return false; -/* * If the group requires more counters than the HW has, * it cannot ever be scheduled.
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerPATCH 16/19 perf: Introduce positive capability for sampling
In reply to Robin MurphySampling is inherently a feature for CPU PMUs, given that the thing to be sampled is a CPU context. These days, we have many more uncore/system PMUs than CPU PMUs, so it no longer makes much sense to assume sampling support by default and force the ever-growing majority of drivers to opt out of it (or erroneously fail to). Instead, let's introduce a positive opt-in capability that's more obvious and easier to maintain.
--- arch/alpha/kernel/perf_event.c | 3 ++- arch/arc/kernel/perf_event.c | 2 ++ arch/csky/kernel/perf_event.c | 2 ++ arch/loongarch/kernel/perf_event.c | 1 + arch/mips/kernel/perf_event_mipsxx.c | 1 + arch/powerpc/perf/core-book3s.c | 1 + arch/powerpc/perf/core-fsl-emb.c | 1 + arch/powerpc/perf/imc-pmu.c | 1 + arch/s390/kernel/perf_cpum_cf.c | 1 + arch/s390/kernel/perf_cpum_sf.c | 2 ++ arch/s390/kernel/perf_pai_crypto.c | 1 + arch/s390/kernel/perf_pai_ext.c | 1 + arch/sparc/kernel/perf_event.c | 1 + arch/x86/events/amd/ibs.c | 2 ++ arch/x86/events/core.c | 4 +++- arch/xtensa/kernel/perf_event.c | 1 + drivers/perf/arm_pmu.c | 3 ++- drivers/perf/arm_pmu_platform.c | 1 + drivers/perf/arm_spe_pmu.c | 3 ++- drivers/perf/riscv_pmu_sbi.c | 2 ++ include/linux/perf_event.h | 3 ++- kernel/events/core.c | 20 +++++++++++--------- kernel/events/hw_breakpoint.c | 1 + 23 files changed, 44 insertions(+), 14 deletions(-)
arch/alpha/kernel/perf_event.c +2 -1
@@ -761,7 +761,8 @@ static struct pmu pmu = { .start = alpha_pmu_start, .stop = alpha_pmu_stop, .read = alpha_pmu_read, - .capabilities = PERF_PMU_CAP_NO_EXCLUDE, + .capabilities = PERF_PMU_CAP_SAMPLING | + PERF_PMU_CAP_NO_EXCLUDE, };
arch/arc/kernel/perf_event.c +2 -0
@@ -818,6 +818,8 @@ static int arc_pmu_device_probe(struct platform_device *pdev)if (irq ==-1 ) arc_pmu->pmu.capabilities |=PERF_PMU_CAP_NO_INTERRUPT ; +else + arc_pmu->pmu.capabilities |=PERF_PMU_CAP_SAMPLING ;/* * perf parser doesn't really like '-' symbol in events name, so let's
arch/csky/kernel/perf_event.c +2 -0
@@ -1204,6 +1204,7 @@ int init_hw_perf_events(void) } csky_pmu.pmu = (struct pmu ) { + .capabilities =PERF_PMU_CAP_SAMPLING , .pmu_enable = csky_pmu_enable, .pmu_disable = csky_pmu_disable, .event_init = csky_pmu_event_init,
@@ -1314,6 +1315,7 @@ int csky_pmu_device_probe(struct platform_device *pdev, ret =csky_pmu_request_irq (csky_pmu_handle_irq);if (ret) { + csky_pmu.pmu.capabilities &= ~PERF_PMU_CAP_SAMPLING ; csky_pmu.pmu.capabilities |=PERF_PMU_CAP_NO_INTERRUPT ;pr_notice ("[perf] PMU request irq fail!\n" ); }
arch/loongarch/kernel/perf_event.c +1 -0
@@ -571,6 +571,7 @@ static int loongarch_pmu_event_init(struct perf_event *event) }static struct pmu pmu = { + .capabilities =PERF_PMU_CAP_SAMPLING , .pmu_enable = loongarch_pmu_enable, .pmu_disable = loongarch_pmu_disable, .event_init = loongarch_pmu_event_init,
arch/mips/kernel/perf_event_mipsxx.c +1 -0
@@ -687,6 +687,7 @@ static int mipspmu_event_init(struct perf_event *event) }static struct pmu pmu = { + .capabilities =PERF_PMU_CAP_SAMPLING , .pmu_enable = mipspmu_enable, .pmu_disable = mipspmu_disable, .event_init = mipspmu_event_init,
arch/powerpc/perf/core-book3s.c +1 -0
@@ -2207,6 +2207,7 @@ ssize_t power_events_sysfs_show(struct device *dev, }static struct pmu power_pmu = { + .capabilities =PERF_PMU_CAP_SAMPLING , .pmu_enable = power_pmu_enable, .pmu_disable = power_pmu_disable, .event_init = power_pmu_event_init,
arch/powerpc/perf/core-fsl-emb.c +1 -0
@@ -570,6 +570,7 @@ static int fsl_emb_pmu_event_init(struct perf_event *event) }static struct pmu fsl_emb_pmu = { + .capabilities =PERF_PMU_CAP_SAMPLING , .pmu_enable = fsl_emb_pmu_enable, .pmu_disable = fsl_emb_pmu_disable, .event_init = fsl_emb_pmu_event_init,
arch/powerpc/perf/imc-pmu.c +1 -0
@@ -1507,6 +1507,7 @@ static int update_pmu_ops(struct imc_pmu *pmu) pmu->pmu.commit_txn = thread_imc_pmu_commit_txn;break ;case IMC_DOMAIN_TRACE : + pmu->pmu.capabilities |=PERF_PMU_CAP_SAMPLING ; pmu->pmu.event_init = trace_imc_event_init; pmu->pmu.add = trace_imc_event_add; pmu->pmu.del = trace_imc_event_del;
arch/s390/kernel/perf_cpum_cf.c +1 -0
@@ -1861,6 +1861,7 @@ static const struct attribute_group *cfdiag_attr_groups[] = {*/ static struct pmu cf_diag = { .task_ctx_nr = perf_sw_context, + .capabilities =PERF_PMU_CAP_SAMPLING , .event_init = cfdiag_event_init, .pmu_enable = cpumf_pmu_enable, .pmu_disable = cpumf_pmu_disable,
arch/s390/kernel/perf_cpum_sf.c +2 -0
@@ -1892,6 +1892,8 @@ static const struct attribute_group *cpumsf_pmu_attr_groups[] = { };static struct pmu cpumf_sampling = { + .capabilities =PERF_PMU_CAP_SAMPLING , + .pmu_enable = cpumsf_pmu_enable, .pmu_disable = cpumsf_pmu_disable,
arch/s390/kernel/perf_pai_crypto.c +1 -0
@@ -569,6 +569,7 @@ static const struct attribute_group *paicrypt_attr_groups[] = {/* Performance monitoring unit for mapped counters */ static struct pmu paicrypt = { .task_ctx_nr = perf_hw_context, + .capabilities =PERF_PMU_CAP_SAMPLING , .event_init = paicrypt_event_init, .add = paicrypt_add, .del = paicrypt_del,
arch/s390/kernel/perf_pai_ext.c +1 -0
@@ -595,6 +595,7 @@ static const struct attribute_group *paiext_attr_groups[] = {/* Performance monitoring unit for mapped counters */ static struct pmu paiext = { .task_ctx_nr = perf_hw_context, + .capabilities =PERF_PMU_CAP_SAMPLING , .event_init = paiext_event_init, .add = paiext_add, .del = paiext_del,
arch/sparc/kernel/perf_event.c +1 -0
@@ -1573,6 +1573,7 @@ static int sparc_pmu_commit_txn(struct pmu *pmu) }static struct pmu pmu = { + .capabilities =PERF_PMU_CAP_SAMPLING , .pmu_enable = sparc_pmu_enable, .pmu_disable = sparc_pmu_disable, .event_init = sparc_pmu_event_init,
arch/x86/events/amd/ibs.c +2 -0
@@ -768,6 +768,7 @@ static struct perf_ibs perf_ibs_fetch = { .pmu = { .task_ctx_nr = perf_hw_context, + .capabilities = PERF_PMU_CAP_SAMPLING, .event_init = perf_ibs_init, .add = perf_ibs_add, .del = perf_ibs_del,
@@ -793,6 +794,7 @@ static struct perf_ibs perf_ibs_op = { .pmu = { .task_ctx_nr = perf_hw_context, + .capabilities = PERF_PMU_CAP_SAMPLING, .event_init = perf_ibs_init, .add = perf_ibs_add, .del = perf_ibs_del,
arch/x86/events/core.c +3 -1
@@ -1837,7 +1837,7 @@ static void __init pmu_check_apic(void)* sample via a hrtimer based software event): */ pmu.capabilities |=PERF_PMU_CAP_NO_INTERRUPT ; - + pmu.capabilities &= ~PERF_PMU_CAP_SAMPLING ; }static struct attribute_group x86_pmu_format_group__ro_after_init = {
@@ -2698,6 +2698,8 @@ static bool x86_pmu_filter(struct pmu *pmu, int cpu) }static struct pmu pmu = { + .capabilities =PERF_PMU_CAP_SAMPLING , + .pmu_enable = x86_pmu_enable, .pmu_disable = x86_pmu_disable,
arch/xtensa/kernel/perf_event.c +1 -0
@@ -397,6 +397,7 @@ irqreturn_t xtensa_pmu_irq_handler(int irq, void *dev_id) }static struct pmu xtensa_pmu = { + .capabilities =PERF_PMU_CAP_SAMPLING , .pmu_enable = xtensa_pmu_enable, .pmu_disable = xtensa_pmu_disable, .event_init = xtensa_pmu_event_init,
drivers/perf/arm_pmu.c +2 -1
@@ -876,7 +876,8 @@ struct arm_pmu *armpmu_alloc(void)* PERF_TYPE_HARDWARE and PERF_TYPE_HW_CACHE events on a * specific PMU. */ - .capabilities = PERF_PMU_CAP_EXTENDED_REGS | + .capabilities = PERF_PMU_CAP_SAMPLING | + PERF_PMU_CAP_EXTENDED_REGS | PERF_PMU_CAP_EXTENDED_HW_TYPE, };
drivers/perf/arm_pmu_platform.c +1 -0
@@ -109,6 +109,7 @@ static int pmu_parse_irqs(struct arm_pmu *pmu)*/ if (num_irqs ==0 ) {dev_warn (dev,"no irqs for PMU, sampling events not supported\n" ); + pmu->pmu.capabilities &= ~PERF_PMU_CAP_SAMPLING ; pmu->pmu.capabilities |=PERF_PMU_CAP_NO_INTERRUPT ;cpumask_setall (&pmu->supported_cpus);return 0 ;
drivers/perf/arm_spe_pmu.c +2 -1
@@ -955,7 +955,8 @@ static int arm_spe_pmu_perf_init(struct arm_spe_pmu *spe_pmu) spe_pmu->pmu = (struct pmu ) { .module =THIS_MODULE , .parent = &spe_pmu->pdev->dev, - .capabilities =PERF_PMU_CAP_EXCLUSIVE |PERF_PMU_CAP_ITRACE , + .capabilities =PERF_PMU_CAP_SAMPLING | +PERF_PMU_CAP_EXCLUSIVE |PERF_PMU_CAP_ITRACE , .attr_groups = arm_spe_pmu_attr_groups,/* * We hitch a ride on the software context here, so that
drivers/perf/riscv_pmu_sbi.c +2 -0
@@ -1361,6 +1361,8 @@ static int pmu_sbi_device_probe(struct platform_device *pdev)pr_info ("Perf sampling/filtering is not supported as sscof extension is not available\n" ); pmu->pmu.capabilities |=PERF_PMU_CAP_NO_INTERRUPT ; pmu->pmu.capabilities |=PERF_PMU_CAP_NO_EXCLUDE ; + }else { + pmu->pmu.capabilities |=PERF_PMU_CAP_SAMPLING ; } pmu->pmu.attr_groups = riscv_pmu_attr_groups;
include/linux/perf_event.h +2 -1
@@ -294,7 +294,7 @@ struct perf_event_pmu_context;/** * pmu::capabilities flags */ -#define PERF_PMU_CAP_NO_INTERRUPT 0x0001 +#define PERF_PMU_CAP_SAMPLING 0x0001#define PERF_PMU_CAP_NO_NMI 0x0002#define PERF_PMU_CAP_AUX_NO_SG 0x0004#define PERF_PMU_CAP_EXTENDED_REGS 0x0008
@@ -305,6 +305,7 @@ struct perf_event_pmu_context;#define PERF_PMU_CAP_EXTENDED_HW_TYPE 0x0100#define PERF_PMU_CAP_AUX_PAUSE 0x0200#define PERF_PMU_CAP_AUX_PREFER_LARGE 0x0400 +#define PERF_PMU_CAP_NO_INTERRUPT 0x0800/** * pmu::scope
kernel/events/core.c +11 -9
@@ -4359,7 +4359,7 @@ perf_adjust_freq_unthr_context(struct perf_event_context *ctx, bool unthrottle)continue ;if (!perf_pmu_ctx_is_active (pmu_ctx))continue ; -if (pmu_ctx->pmu->capabilities &PERF_PMU_CAP_NO_INTERRUPT ) +if (!(pmu_ctx->pmu->capabilities &PERF_PMU_CAP_SAMPLING ))continue ;perf_pmu_disable (pmu_ctx->pmu);
@@ -10819,7 +10819,7 @@ static int perf_swevent_init(struct perf_event *event)static struct pmu perf_swevent = { .task_ctx_nr = perf_sw_context, - .capabilities =PERF_PMU_CAP_NO_NMI , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_NO_NMI , .event_init = perf_swevent_init, .add = perf_swevent_add,
@@ -10861,6 +10861,7 @@ static int perf_tp_event_init(struct perf_event *event)static struct pmu perf_tracepoint = { .task_ctx_nr = perf_sw_context, + .capabilities =PERF_PMU_CAP_SAMPLING , .event_init = perf_tp_event_init, .add = perf_trace_add, .del = perf_trace_del,
@@ -11066,6 +11067,7 @@ static struct pmu perf_kprobe = { .stop = perf_swevent_stop, .read = perf_swevent_read, .attr_groups = kprobe_attr_groups, + .capabilities = PERF_PMU_CAP_SAMPLING, };static int perf_kprobe_event_init (struct perf_event *event)
@@ -11125,6 +11127,7 @@ static struct pmu perf_uprobe = { .stop = perf_swevent_stop, .read = perf_swevent_read, .attr_groups = uprobe_attr_groups, + .capabilities = PERF_PMU_CAP_SAMPLING, };static int perf_uprobe_event_init (struct perf_event *event)
@@ -11899,7 +11902,7 @@ static int cpu_clock_event_init(struct perf_event *event)static struct pmu perf_cpu_clock = { .task_ctx_nr = perf_sw_context, - .capabilities =PERF_PMU_CAP_NO_NMI , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_NO_NMI , .dev =PMU_NULL_DEV , .event_init = cpu_clock_event_init,
@@ -11982,7 +11985,7 @@ static int task_clock_event_init(struct perf_event *event)static struct pmu perf_task_clock = { .task_ctx_nr = perf_sw_context, - .capabilities =PERF_PMU_CAP_NO_NMI , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_NO_NMI , .dev =PMU_NULL_DEV , .event_init = task_clock_event_init,
@@ -13476,11 +13479,10 @@ SYSCALL_DEFINE5(perf_event_open, goto err_task; } -if (is_sampling_event (event)) { -if (event->pmu->capabilities &PERF_PMU_CAP_NO_INTERRUPT ) { - err = -EOPNOTSUPP ; - goto err_alloc; - } +if (is_sampling_event (event) && + !(event->pmu->capabilities &PERF_PMU_CAP_SAMPLING )) { + err = -EOPNOTSUPP ; + goto err_alloc; }/*
kernel/events/hw_breakpoint.c +1 -0
@@ -996,6 +996,7 @@ static void hw_breakpoint_stop(struct perf_event *bp, int flags)static struct pmu perf_breakpoint = { .task_ctx_nr = perf_sw_context,/* could eventually get its own */ + .capabilities =PERF_PMU_CAP_SAMPLING , .event_init = hw_breakpoint_event_init, .add = hw_breakpoint_add, .del = hw_breakpoint_del,
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Peter Zijlstra
maintainerRe: [PATCH 16/19] perf: Introduce positive capability for sampling
Quoted 23 lines · Robin Murphy
Sampling is inherently a feature for CPU PMUs, given that the thing to be sampled is a CPU context. These days, we have many more uncore/system PMUs than CPU PMUs, so it no longer makes much sense to assume sampling support by default and force the ever-growing majority of drivers to opt out of it (or erroneously fail to). Instead, let's introduce a positive opt-in capability that's more obvious and easier to maintain.
include/linux/perf_event.h +1
-1@@ -294,7 +294,7 @@ struct perf_event_pmu_context;/** * pmu::capabilities flags */ -#define PERF_PMU_CAP_NO_INTERRUPT 0x0001 +#define PERF_PMU_CAP_SAMPLING 0x0001#define PERF_PMU_CAP_NO_NMI 0x0002#define PERF_PMU_CAP_AUX_NO_SG 0x0004#define PERF_PMU_CAP_EXTENDED_REGS 0x0008
include/linux/perf_event.h struct perf_event_pmu_context; · line 308
Quoted 4 lines
include/linux/perf_event.h +1
-0@@ -305,6 +305,7 @@ struct perf_event_pmu_context;#define PERF_PMU_CAP_EXTENDED_HW_TYPE 0x0100#define PERF_PMU_CAP_AUX_PAUSE 0x0200#define PERF_PMU_CAP_AUX_PREFER_LARGE 0x0400 +#define PERF_PMU_CAP_NO_INTERRUPT 0x0800
So NO_INTERRUPT was supposed to be the negative of your new SAMPLING (and I agree with your reasoning).
What I'm confused/curious about is why we retain NO_INTERRUPT?
Mark Rutland
maintainerRe: [PATCH 16/19] perf: Introduce positive capability for sampling
Quoted 31 lines · Peter Zijlstra
Quoted 22 lines · Robin Murphy
Sampling is inherently a feature for CPU PMUs, given that the thing to be sampled is a CPU context. These days, we have many more uncore/system PMUs than CPU PMUs, so it no longer makes much sense to assume sampling support by default and force the ever-growing majority of drivers to opt out of it (or erroneously fail to). Instead, let's introduce a positive opt-in capability that's more obvious and easier to maintain.
include/linux/perf_event.h +1
-1@@ -294,7 +294,7 @@ struct perf_event_pmu_context;/** * pmu::capabilities flags */ -#define PERF_PMU_CAP_NO_INTERRUPT 0x0001 +#define PERF_PMU_CAP_SAMPLING 0x0001#define PERF_PMU_CAP_NO_NMI 0x0002#define PERF_PMU_CAP_AUX_NO_SG 0x0004#define PERF_PMU_CAP_EXTENDED_REGS 0x0008include/linux/perf_event.h struct perf_event_pmu_context; · line 308
Quoted 4 lines
include/linux/perf_event.h +1
-0@@ -305,6 +305,7 @@ struct perf_event_pmu_context;#define PERF_PMU_CAP_EXTENDED_HW_TYPE 0x0100#define PERF_PMU_CAP_AUX_PAUSE 0x0200#define PERF_PMU_CAP_AUX_PREFER_LARGE 0x0400 +#define PERF_PMU_CAP_NO_INTERRUPT 0x0800So
NO_INTERRUPTwas supposed to be the negative of your new SAMPLING (and I agree with your reasoning).
Quoted 1 line
What I'm confused/curious about is why we retain
NO_INTERRUPT?
I see from your other reply that you spotted the next patch does that.
For the sake of other reviewers or anyone digging through the git history it's probably worth adding a line to this commit message to say:
| A subsequent patch will remove PERF_PMU_CAP_NO_INTERRUPT as this | requires some additional cleanup.
Mark.
Robin Murphy
maintainerRe: [PATCH 16/19] perf: Introduce positive capability for sampling
Quoted 34 lines · Mark Rutland
Quoted 31 lines · Peter Zijlstra
Quoted 22 lines · Robin Murphy
Sampling is inherently a feature for CPU PMUs, given that the thing to be sampled is a CPU context. These days, we have many more uncore/system PMUs than CPU PMUs, so it no longer makes much sense to assume sampling support by default and force the ever-growing majority of drivers to opt out of it (or erroneously fail to). Instead, let's introduce a positive opt-in capability that's more obvious and easier to maintain.
include/linux/perf_event.h +1
-1@@ -294,7 +294,7 @@ struct perf_event_pmu_context;/** * pmu::capabilities flags */ -#define PERF_PMU_CAP_NO_INTERRUPT 0x0001 +#define PERF_PMU_CAP_SAMPLING 0x0001#define PERF_PMU_CAP_NO_NMI 0x0002#define PERF_PMU_CAP_AUX_NO_SG 0x0004#define PERF_PMU_CAP_EXTENDED_REGS 0x0008include/linux/perf_event.h struct perf_event_pmu_context; · line 308
Quoted 4 lines
include/linux/perf_event.h +1
-0@@ -305,6 +305,7 @@ struct perf_event_pmu_context;#define PERF_PMU_CAP_EXTENDED_HW_TYPE 0x0100#define PERF_PMU_CAP_AUX_PAUSE 0x0200#define PERF_PMU_CAP_AUX_PREFER_LARGE 0x0400 +#define PERF_PMU_CAP_NO_INTERRUPT 0x0800So
NO_INTERRUPTwas supposed to be the negative of your new SAMPLING (and I agree with your reasoning).Quoted 1 line
What I'm confused/curious about is why we retain
NO_INTERRUPT?
Quoted 7 lines
I see from your other reply that you spotted the next patch does that.
For the sake of other reviewers or anyone digging through the git history it's probably worth adding a line to this commit message to say:
| A subsequent patch will remove
PERF_PMU_CAP_NO_INTERRUPTas this | requires some additional cleanup.
Yup, the main reason is the set of drivers getting the new cap is smaller than the set of drivers currently not rejecting sampling events, so I wanted it to be clearly visible in the patch. Indeed I shall clarify the relationship to NO_INTERRUPT in the commit message.
Thanks,
Robin.
Leo Yan
reviewerRe: [PATCH 16/19] perf: Introduce positive capability for sampling
In reply to Robin MurphyQuoted 7 lines · Robin Murphy
Sampling is inherently a feature for CPU PMUs, given that the thing to be sampled is a CPU context. These days, we have many more uncore/system PMUs than CPU PMUs, so it no longer makes much sense to assume sampling support by default and force the ever-growing majority of drivers to opt out of it (or erroneously fail to). Instead, let's introduce a positive opt-in capability that's more obvious and easier to maintain.
[...]
Quoted 5 lines
drivers/perf/arm_spe_pmu.c +0
-0
drivers/perf/arm_spe_pmu.c static int arm_spe_pmu_perf_init(struct arm_spe_pmu *spe_pmu) · line 962
Quoted 9 lines
drivers/perf/arm_spe_pmu.c +2
-1@@ -955,7 +955,8 @@ static int arm_spe_pmu_perf_init(struct arm_spe_pmu *spe_pmu) spe_pmu->pmu = (struct pmu ) { .module =THIS_MODULE , .parent = &spe_pmu->pdev->dev, - .capabilities =PERF_PMU_CAP_EXCLUSIVE |PERF_PMU_CAP_ITRACE , + .capabilities =PERF_PMU_CAP_SAMPLING | +PERF_PMU_CAP_EXCLUSIVE |PERF_PMU_CAP_ITRACE , .attr_groups = arm_spe_pmu_attr_groups,/* * We hitch a ride on the software context here, so that
The change in Arm SPE driver looks good to me.
I noticed you did not set the flag for other AUX events, like Arm CoreSight, Intel PT and bts. The drivers locate in:
drivers/hwtracing/coresight/coresight-etm-perf.c arch/x86/events/intel/bts.c arch/x86/events/intel/pt.c
Genearlly, AUX events generate interrupts based on AUX ring buffer watermark but not the period. Seems to me, it is correct to set the PERF_PMU_CAP_SAMPLING flag for them.
A special case is Arm CoreSight legacy sinks (like ETR/ETB, etc) don't has interrupt. We might need set or clear the flag on the fly based on sink type:
drivers/hwtracing/coresight/coresight-etm-perf.c +5 -0
@@ -433,6 +433,11 @@ static void *etm_setup_aux(struct perf_event *event, void **pages,if (!sink) goto err; +if (coresight_is_percpu_sink (sink)) + event->pmu.capabilities =PERF_PMU_CAP_SAMPLING ; +else + event->pmu.capabilities &= ~PERF_PMU_CAP_SAMPLING ; +
Thanks,
Leo
Robin Murphy
maintainerRe: [PATCH 16/19] perf: Introduce positive capability for sampling
Quoted 31 lines · Leo Yan
Quoted 7 lines · Robin Murphy
Sampling is inherently a feature for CPU PMUs, given that the thing to be sampled is a CPU context. These days, we have many more uncore/system PMUs than CPU PMUs, so it no longer makes much sense to assume sampling support by default and force the ever-growing majority of drivers to opt out of it (or erroneously fail to). Instead, let's introduce a positive opt-in capability that's more obvious and easier to maintain.
[...]
Quoted 5 lines
drivers/perf/arm_spe_pmu.c +0
-0drivers/perf/arm_spe_pmu.c static int arm_spe_pmu_perf_init(struct arm_spe_pmu *spe_pmu) · line 962
Quoted 9 lines
drivers/perf/arm_spe_pmu.c +2
-1@@ -955,7 +955,8 @@ static int arm_spe_pmu_perf_init(struct arm_spe_pmu *spe_pmu) spe_pmu->pmu = (struct pmu ) { .module =THIS_MODULE , .parent = &spe_pmu->pdev->dev, - .capabilities =PERF_PMU_CAP_EXCLUSIVE |PERF_PMU_CAP_ITRACE , + .capabilities =PERF_PMU_CAP_SAMPLING | +PERF_PMU_CAP_EXCLUSIVE |PERF_PMU_CAP_ITRACE , .attr_groups = arm_spe_pmu_attr_groups,/* * We hitch a ride on the software context here, so that The change in Arm SPE driver looks good to me.
I noticed you did not set the flag for other AUX events, like Arm CoreSight, Intel PT and bts. The drivers locate in:
Quoted 7 lines
drivers/hwtracing/coresight/coresight-etm-perf.c arch/x86/events/intel/bts.c arch/x86/events/intel/pt.cGenearlly, AUX events generate interrupts based on AUX ring buffer watermark but not the period. Seems to me, it is correct to set the
PERF_PMU_CAP_SAMPLINGflag for them.
This cap is given to drivers which handle event->attr.sample_period and call perf_event_overflow() - or in a few rare cases, perf_output_sample() directly - to do something meaningful with it, since the intent is to convey "I properly handle events for which is_sampling_event() is true". My understanding is that aux events are something else entirely, but I'm happy to be corrected.
Otherwise, perhaps this suggests it deserves to be named a little more specifically for clarity, maybe PERF_CAP_SAMPLING_EVENTS?
Thanks,
Robin.
Quoted 20 lines
A special case is Arm CoreSight legacy sinks (like ETR/ETB, etc) don't has interrupt. We might need set or clear the flag on the fly based on sink type:
drivers/hwtracing/coresight/coresight-etm-perf.c +5
-0@@ -433,6 +433,11 @@ static void *etm_setup_aux(struct perf_event *event, void **pages,if (!sink) goto err; +if (coresight_is_percpu_sink (sink)) + event->pmu.capabilities =PERF_PMU_CAP_SAMPLING ; +else + event->pmu.capabilities &= ~PERF_PMU_CAP_SAMPLING ; + Thanks,Leo
Leo Yan
reviewerRe: [PATCH 16/19] perf: Introduce positive capability for sampling
On Tue, Aug 26, 2025 at 04:53:51PM +0100, Robin Murphy wrote:
[...]
Quoted 10 lines
Quoted 3 lines
Genearlly, AUX events generate interrupts based on AUX ring buffer watermark but not the period. Seems to me, it is correct to set the
PERF_PMU_CAP_SAMPLINGflag for them.This cap is given to drivers which handle
event->attr.sample_periodand callperf_event_overflow()- or in a few rare cases,perf_output_sample()directly - to do something meaningful with it, since the intent is to convey "I properly handle events for whichis_sampling_event()is true". My understanding is that aux events are something else entirely, but I'm happy to be corrected.
If the discussion is based only on this patch, my understanding is that the PERF_PMU_CAP_SAMPLING flag replaces the PERF_PMU_CAP_NO_INTERRUPT flag for checking whether a PMU event needs to be re-enabled in perf_adjust_freq_unthr_context().
AUX events can trigger a large number of interrupts under certain conditions (e.g., if we set a very small watermark). This is why I conclude that we need to set the PERF_PMU_CAP_SAMPLING flag to ensure that AUX events are re-enabled properly after throttling (see perf_adjust_freq_unthr_events()).
Quoted 2 lines
Otherwise, perhaps this suggests it deserves to be named a little more specifically for clarity, maybe
PERF_CAP_SAMPLING_EVENTS?
Seems to me, the naming is not critical. If without setting the PERF_PMU_CAP_SAMPLING flag, AUX events might lose chance to be re-enabled after throttling.
Thanks,
Leo
Robin Murphy
maintainerPATCH 17/19 perf: Retire PERF_PMU_CAP_NO_INTERRUPT
In reply to Robin MurphyNow that we have a well-defined cap for sampling support, clean up the remains of the mildly unintuitive and inconsistently-applied PERF_PMU_CAP_NO_INTERRUPT. Not to mention the obvious redundancy of some of these drivers still checking for sampling in event_init too.
--- arch/arc/kernel/perf_event.c | 4 +--- arch/csky/kernel/perf_event.c | 1 - arch/powerpc/perf/8xx-pmu.c | 3 +-- arch/powerpc/perf/hv-24x7.c | 3 --- arch/powerpc/perf/hv-gpci.c | 3 --- arch/powerpc/perf/kvm-hv-pmu.c | 2 +- arch/powerpc/perf/vpa-pmu.c | 6 +----- arch/powerpc/platforms/pseries/papr_scm.c | 7 +------ arch/s390/kernel/perf_cpum_cf.c | 3 --- arch/sh/kernel/perf_event.c | 1 - arch/x86/events/amd/uncore.c | 6 +++--- arch/x86/events/core.c | 1 - arch/x86/events/intel/cstate.c | 9 +++------ arch/x86/events/msr.c | 5 +---- drivers/fpga/dfl-fme-perf.c | 6 ++---- drivers/perf/arm_cspmu/arm_cspmu.c | 14 ++------------ drivers/perf/arm_pmu_platform.c | 1 - drivers/perf/marvell_cn10k_tad_pmu.c | 3 +-- drivers/perf/riscv_pmu_legacy.c | 1 - drivers/perf/riscv_pmu_sbi.c | 1 - drivers/powercap/intel_rapl_common.c | 2 +- include/linux/perf_event.h | 1 - 22 files changed, 18 insertions(+), 65 deletions(-)
arch/arc/kernel/perf_event.c +1 -3
@@ -816,9 +816,7 @@ static int arc_pmu_device_probe(struct platform_device *pdev) } -if (irq ==-1 ) - arc_pmu->pmu.capabilities |=PERF_PMU_CAP_NO_INTERRUPT ; -else +if (irq !=-1 ) arc_pmu->pmu.capabilities |=PERF_PMU_CAP_SAMPLING ;/*
arch/csky/kernel/perf_event.c +0 -1
@@ -1316,7 +1316,6 @@ int csky_pmu_device_probe(struct platform_device *pdev, ret =csky_pmu_request_irq (csky_pmu_handle_irq);if (ret) { csky_pmu.pmu.capabilities &= ~PERF_PMU_CAP_SAMPLING ; - csky_pmu.pmu.capabilities |=PERF_PMU_CAP_NO_INTERRUPT ;pr_notice ("[perf] PMU request irq fail!\n" ); }
arch/powerpc/perf/8xx-pmu.c +1 -2
@@ -181,8 +181,7 @@ static struct pmu mpc8xx_pmu = { .add = mpc8xx_pmu_add, .del = mpc8xx_pmu_del, .read = mpc8xx_pmu_read, - .capabilities = PERF_PMU_CAP_NO_INTERRUPT | - PERF_PMU_CAP_NO_NMI, + .capabilities = PERF_PMU_CAP_NO_NMI, };static int init_mpc8xx_pmu (void )
arch/powerpc/perf/hv-24x7.c +0 -3
@@ -1726,9 +1726,6 @@ static int hv_24x7_init(void)if (!hv_page_cache)return -ENOMEM ; -/* sampling not supported */ - h_24x7_pmu.capabilities |=PERF_PMU_CAP_NO_INTERRUPT ; - r =create_events_from_catalog (&event_group.attrs, &event_desc_group.attrs, &event_long_desc_group.attrs);
arch/powerpc/perf/hv-gpci.c +0 -3
@@ -1008,9 +1008,6 @@ static int hv_gpci_init(void)if (r)return r; -/* sampling not supported */ - h_gpci_pmu.capabilities |=PERF_PMU_CAP_NO_INTERRUPT ; - arg = (void *)get_cpu_var (hv_gpci_reqb);memset (arg,0 ,HGPCI_REQ_BUFFER_SIZE );
arch/powerpc/perf/kvm-hv-pmu.c +1 -1
@@ -391,7 +391,7 @@ static struct pmu kvmppc_pmu = { .attr_groups = kvmppc_pmu_attr_groups, .type = -1, .scope = PERF_PMU_SCOPE_SYS_WIDE, - .capabilities = PERF_PMU_CAP_NO_EXCLUDE | PERF_PMU_CAP_NO_INTERRUPT, + .capabilities = PERF_PMU_CAP_NO_EXCLUDE, };static int __init kvmppc_register_pmu (void )
arch/powerpc/perf/vpa-pmu.c +1 -5
@@ -75,10 +75,6 @@ static int vpa_pmu_event_init(struct perf_event *event)if (event->attr.type != event->pmu->type)return -ENOENT ; -/* it does not support event sampling mode */ -if (is_sampling_event (event)) -return -EOPNOTSUPP ; -/* no branch sampling */ if (has_branch_stack (event))return -EOPNOTSUPP ;
@@ -164,7 +160,7 @@ static struct pmu vpa_pmu = { .del = vpa_pmu_del, .read = vpa_pmu_read, .attr_groups = vpa_pmu_attr_groups, - .capabilities = PERF_PMU_CAP_NO_EXCLUDE | PERF_PMU_CAP_NO_INTERRUPT, + .capabilities = PERF_PMU_CAP_NO_EXCLUDE, };static int __init pseries_vpa_pmu_init (void )
arch/powerpc/platforms/pseries/papr_scm.c +1 -6
@@ -379,10 +379,6 @@ static int papr_scm_pmu_event_init(struct perf_event *event)if (event->attr.type != event->pmu->type)return -ENOENT ; -/* it does not support event sampling mode */ -if (is_sampling_event (event)) -return -EOPNOTSUPP ; -/* no branch sampling */ if (has_branch_stack (event))return -EOPNOTSUPP ;
@@ -463,8 +459,7 @@ static void papr_scm_pmu_register(struct papr_scm_priv *p) nd_pmu->pmu.add = papr_scm_pmu_add; nd_pmu->pmu.del = papr_scm_pmu_del; - nd_pmu->pmu.capabilities =PERF_PMU_CAP_NO_INTERRUPT | -PERF_PMU_CAP_NO_EXCLUDE ; + nd_pmu->pmu.capabilities =PERF_PMU_CAP_NO_EXCLUDE ;/*updating the cpumask variable */ nodeid =numa_map_to_online_node (dev_to_node (&p->pdev->dev));
arch/s390/kernel/perf_cpum_cf.c +0 -3
@@ -760,8 +760,6 @@ static int __hw_perf_event_init(struct perf_event *event, unsigned int type)break ;case PERF_TYPE_HARDWARE : -if (is_sampling_event (event))/* No sampling support */ -return -ENOENT ; ev = attr->config;if (!attr->exclude_user && attr->exclude_kernel) {/*
@@ -1056,7 +1054,6 @@ static void cpumf_pmu_del(struct perf_event *event, int flags)/* Performance monitoring unit for s390x */ static struct pmu cpumf_pmu = { .task_ctx_nr = perf_sw_context, - .capabilities =PERF_PMU_CAP_NO_INTERRUPT , .pmu_enable = cpumf_pmu_enable, .pmu_disable = cpumf_pmu_disable, .event_init = cpumf_pmu_event_init,
arch/sh/kernel/perf_event.c +0 -1
@@ -352,7 +352,6 @@ int register_sh_pmu(struct sh_pmu *_pmu)* no interrupts, and are therefore unable to do sampling without * further work and timer assistance. */ - pmu.capabilities |=PERF_PMU_CAP_NO_INTERRUPT ;WARN_ON (_pmu->num_events >MAX_HWEVENTS );
arch/x86/events/amd/uncore.c +3 -3
@@ -767,7 +767,7 @@ int amd_uncore_df_ctx_init(struct amd_uncore *uncore, unsigned int cpu) .start = amd_uncore_start, .stop = amd_uncore_stop, .read = amd_uncore_read, - .capabilities = PERF_PMU_CAP_NO_EXCLUDE | PERF_PMU_CAP_NO_INTERRUPT, + .capabilities = PERF_PMU_CAP_NO_EXCLUDE, .module = THIS_MODULE, };
@@ -903,7 +903,7 @@ int amd_uncore_l3_ctx_init(struct amd_uncore *uncore, unsigned int cpu) .start = amd_uncore_start, .stop = amd_uncore_stop, .read = amd_uncore_read, - .capabilities = PERF_PMU_CAP_NO_EXCLUDE | PERF_PMU_CAP_NO_INTERRUPT, + .capabilities = PERF_PMU_CAP_NO_EXCLUDE, .module = THIS_MODULE, };
@@ -1068,7 +1068,7 @@ int amd_uncore_umc_ctx_init(struct amd_uncore *uncore, unsigned int cpu) .start = amd_uncore_umc_start, .stop = amd_uncore_stop, .read = amd_uncore_umc_read, - .capabilities = PERF_PMU_CAP_NO_EXCLUDE | PERF_PMU_CAP_NO_INTERRUPT, + .capabilities = PERF_PMU_CAP_NO_EXCLUDE, .module = THIS_MODULE, };
arch/x86/events/core.c +0 -1
@@ -1836,7 +1836,6 @@ static void __init pmu_check_apic(void)* events (user-space has to fall back and * sample via a hrtimer based software event): */ - pmu.capabilities |=PERF_PMU_CAP_NO_INTERRUPT ; pmu.capabilities &= ~PERF_PMU_CAP_SAMPLING ; }
arch/x86/events/intel/cstate.c +3 -6
@@ -281,9 +281,6 @@ static int cstate_pmu_event_init(struct perf_event *event)return -ENOENT ;/* unsupported modes and filters */ -if (event->attr.sample_period)/* no sampling */ -return -EINVAL ; -if (event->cpu <0 )return -EINVAL ;
@@ -397,7 +394,7 @@ static struct pmu cstate_core_pmu = { .start = cstate_pmu_event_start, .stop = cstate_pmu_event_stop, .read = cstate_pmu_event_update, - .capabilities = PERF_PMU_CAP_NO_INTERRUPT | PERF_PMU_CAP_NO_EXCLUDE, + .capabilities = PERF_PMU_CAP_NO_EXCLUDE, .scope = PERF_PMU_SCOPE_CORE, .module = THIS_MODULE, };
@@ -413,7 +410,7 @@ static struct pmu cstate_pkg_pmu = { .start = cstate_pmu_event_start, .stop = cstate_pmu_event_stop, .read = cstate_pmu_event_update, - .capabilities = PERF_PMU_CAP_NO_INTERRUPT | PERF_PMU_CAP_NO_EXCLUDE, + .capabilities = PERF_PMU_CAP_NO_EXCLUDE, .scope = PERF_PMU_SCOPE_PKG, .module = THIS_MODULE, };
@@ -429,7 +426,7 @@ static struct pmu cstate_module_pmu = { .start = cstate_pmu_event_start, .stop = cstate_pmu_event_stop, .read = cstate_pmu_event_update, - .capabilities = PERF_PMU_CAP_NO_INTERRUPT | PERF_PMU_CAP_NO_EXCLUDE, + .capabilities = PERF_PMU_CAP_NO_EXCLUDE, .scope = PERF_PMU_SCOPE_CLUSTER, .module = THIS_MODULE, };
arch/x86/events/msr.c +1 -4
@@ -210,9 +210,6 @@ static int msr_event_init(struct perf_event *event)return -ENOENT ;/* unsupported modes and filters */ -if (event->attr.sample_period)/* no sampling */ -return -EINVAL ; -if (cfg >=PERF_MSR_EVENT_MAX )return -EINVAL ;
@@ -298,7 +295,7 @@ static struct pmu pmu_msr = { .start = msr_event_start, .stop = msr_event_stop, .read = msr_event_update, - .capabilities = PERF_PMU_CAP_NO_INTERRUPT | PERF_PMU_CAP_NO_EXCLUDE, + .capabilities = PERF_PMU_CAP_NO_EXCLUDE, .attr_update = attr_update, };
drivers/fpga/dfl-fme-perf.c +2 -4
@@ -806,9 +806,8 @@ static int fme_perf_event_init(struct perf_event *event)/* * fme counters are shared across all cores. * Therefore, it does not support per-process mode. -* Also, it does not support event sampling mode. */ -if (is_sampling_event (event) || event->attach_state &PERF_ATTACH_TASK ) +if (event->attach_state &PERF_ATTACH_TASK )return -EINVAL ;if (event->cpu <0 )
@@ -921,8 +920,7 @@ static int fme_perf_pmu_register(struct platform_device *pdev, pmu->start = fme_perf_event_start; pmu->stop = fme_perf_event_stop; pmu->read = fme_perf_event_read; - pmu->capabilities =PERF_PMU_CAP_NO_INTERRUPT | -PERF_PMU_CAP_NO_EXCLUDE ; + pmu->capabilities =PERF_PMU_CAP_NO_EXCLUDE ; name =devm_kasprintf (priv->dev,GFP_KERNEL ,"dfl_fme%d" , pdev->id);
drivers/perf/arm_cspmu/arm_cspmu.c +2 -12
@@ -608,12 +608,6 @@ static int arm_cspmu_event_init(struct perf_event *event)* Following other "uncore" PMUs, we do not support sampling mode or * attach to a task (per-process mode). */ -if (is_sampling_event (event)) { -dev_dbg (cspmu->pmu.dev, -"Can't support sampling events\n" ); -return -EOPNOTSUPP ; - } -if (event->cpu <0 || event->attach_state &PERF_ATTACH_TASK ) {dev_dbg (cspmu->pmu.dev,"Can't support per-task counters\n" );
@@ -1128,7 +1122,7 @@ static int arm_cspmu_get_cpus(struct arm_cspmu *cspmu)static int arm_cspmu_register_pmu (struct arm_cspmu *cspmu) { -int ret, capabilities; +int ret; ret =arm_cspmu_alloc_attr_groups (cspmu);if (ret)
@@ -1139,10 +1133,6 @@ static int arm_cspmu_register_pmu(struct arm_cspmu *cspmu)if (ret)return ret; - capabilities =PERF_PMU_CAP_NO_EXCLUDE ; -if (cspmu->irq ==0 ) - capabilities |=PERF_PMU_CAP_NO_INTERRUPT ; - cspmu->pmu = (struct pmu ){ .task_ctx_nr = perf_invalid_context, .module = cspmu->impl.module,
@@ -1156,7 +1146,7 @@ static int arm_cspmu_register_pmu(struct arm_cspmu *cspmu) .stop = arm_cspmu_stop, .read = arm_cspmu_read, .attr_groups = cspmu->attr_groups, - .capabilities = capabilities, + .capabilities = PERF_PMU_CAP_NO_EXCLUDE, };/* Hardware counter init */
drivers/perf/arm_pmu_platform.c +0 -1
@@ -110,7 +110,6 @@ static int pmu_parse_irqs(struct arm_pmu *pmu)if (num_irqs ==0 ) {dev_warn (dev,"no irqs for PMU, sampling events not supported\n" ); pmu->pmu.capabilities &= ~PERF_PMU_CAP_SAMPLING ; - pmu->pmu.capabilities |=PERF_PMU_CAP_NO_INTERRUPT ;cpumask_setall (&pmu->supported_cpus);return 0 ; }
drivers/perf/marvell_cn10k_tad_pmu.c +1 -2
@@ -360,8 +360,7 @@ static int tad_pmu_probe(struct platform_device *pdev) tad_pmu->pmu = (struct pmu ) { .module =THIS_MODULE , - .capabilities =PERF_PMU_CAP_NO_EXCLUDE | -PERF_PMU_CAP_NO_INTERRUPT , + .capabilities =PERF_PMU_CAP_NO_EXCLUDE , .task_ctx_nr = perf_invalid_context, .event_init = tad_pmu_event_init,
drivers/perf/riscv_pmu_legacy.c +0 -1
@@ -123,7 +123,6 @@ static void pmu_legacy_init(struct riscv_pmu *pmu) pmu->event_mapped = pmu_legacy_event_mapped; pmu->event_unmapped = pmu_legacy_event_unmapped; pmu->csr_index = pmu_legacy_csr_index; - pmu->pmu.capabilities |=PERF_PMU_CAP_NO_INTERRUPT ; pmu->pmu.capabilities |=PERF_PMU_CAP_NO_EXCLUDE ;perf_pmu_register (&pmu->pmu,"cpu" ,PERF_TYPE_RAW );
drivers/perf/riscv_pmu_sbi.c +0 -1
@@ -1359,7 +1359,6 @@ static int pmu_sbi_device_probe(struct platform_device *pdev) ret =pmu_sbi_setup_irqs (pmu, pdev);if (ret <0 ) {pr_info ("Perf sampling/filtering is not supported as sscof extension is not available\n" ); - pmu->pmu.capabilities |=PERF_PMU_CAP_NO_INTERRUPT ; pmu->pmu.capabilities |=PERF_PMU_CAP_NO_EXCLUDE ; }else { pmu->pmu.capabilities |=PERF_PMU_CAP_SAMPLING ;
drivers/powercap/intel_rapl_common.c +1 -1
@@ -2014,7 +2014,7 @@ static int rapl_pmu_update(struct rapl_package *rp) rapl_pmu.pmu.stop = rapl_pmu_event_stop; rapl_pmu.pmu.read = rapl_pmu_event_read; rapl_pmu.pmu.module =THIS_MODULE ; - rapl_pmu.pmu.capabilities =PERF_PMU_CAP_NO_EXCLUDE |PERF_PMU_CAP_NO_INTERRUPT ; + rapl_pmu.pmu.capabilities =PERF_PMU_CAP_NO_EXCLUDE ; ret =perf_pmu_register (&rapl_pmu.pmu,"power" ,-1 );if (ret) {pr_info ("Failed to register PMU\n" );
include/linux/perf_event.h +0 -1
@@ -305,7 +305,6 @@ struct perf_event_pmu_context;#define PERF_PMU_CAP_EXTENDED_HW_TYPE 0x0100#define PERF_PMU_CAP_AUX_PAUSE 0x0200#define PERF_PMU_CAP_AUX_PREFER_LARGE 0x0400 -#define PERF_PMU_CAP_NO_INTERRUPT 0x0800/** * pmu::scope
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Peter Zijlstra
maintainerRe: [PATCH 17/19] perf: Retire PERF_PMU_CAP_NO_INTERRUPT
Quoted 4 lines · Robin Murphy
Now that we have a well-defined cap for sampling support, clean up the remains of the mildly unintuitive and inconsistently-applied
PERF_PMU_CAP_NO_INTERRUPT. Not to mention the obvious redundancy of some of these drivers still checking for sampling inevent_inittoo.
Ah, clearly I should've read the next patch... n/m.
Robin Murphy
maintainerPATCH 18/19 perf: Introduce positive capability for raw events
In reply to Robin MurphyOnly a handful of CPU PMUs accept PERF_TYPE_{RAW,HARDWARE,HW_CACHE} events without registering themselves as PERF_TYPE_RAW in the first place. Add an explicit opt-in for these special cases, so that we can make life easier for every other driver (and probably also speed up the slow-path search) by having perf_try_init_event() do the basic type checking to cover the majority of cases.
---
A further possibility is to automatically add the cap to PERF_TYPE_RAW PMUs in perf_pmu_register() to have a single point-of-use condition; I'm undecided...
--- arch/s390/kernel/perf_cpum_cf.c | 1 + arch/s390/kernel/perf_pai_crypto.c | 2 +- arch/s390/kernel/perf_pai_ext.c | 2 +- arch/x86/events/core.c | 2 +- drivers/perf/arm_pmu.c | 1 + include/linux/perf_event.h | 1 + kernel/events/core.c | 15 +++++++++++++++ 7 files changed, 21 insertions(+), 3 deletions(-)
arch/s390/kernel/perf_cpum_cf.c +1 -0
@@ -1054,6 +1054,7 @@ static void cpumf_pmu_del(struct perf_event *event, int flags)/* Performance monitoring unit for s390x */ static struct pmu cpumf_pmu = { .task_ctx_nr = perf_sw_context, + .capabilities =PERF_PMU_CAP_RAW_EVENTS , .pmu_enable = cpumf_pmu_enable, .pmu_disable = cpumf_pmu_disable, .event_init = cpumf_pmu_event_init,
arch/s390/kernel/perf_pai_crypto.c +1 -1
@@ -569,7 +569,7 @@ static const struct attribute_group *paicrypt_attr_groups[] = {/* Performance monitoring unit for mapped counters */ static struct pmu paicrypt = { .task_ctx_nr = perf_hw_context, - .capabilities =PERF_PMU_CAP_SAMPLING , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_RAW_EVENTS , .event_init = paicrypt_event_init, .add = paicrypt_add, .del = paicrypt_del,
arch/s390/kernel/perf_pai_ext.c +1 -1
@@ -595,7 +595,7 @@ static const struct attribute_group *paiext_attr_groups[] = {/* Performance monitoring unit for mapped counters */ static struct pmu paiext = { .task_ctx_nr = perf_hw_context, - .capabilities =PERF_PMU_CAP_SAMPLING , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_RAW_EVENTS , .event_init = paiext_event_init, .add = paiext_add, .del = paiext_del,
arch/x86/events/core.c +1 -1
@@ -2697,7 +2697,7 @@ static bool x86_pmu_filter(struct pmu *pmu, int cpu) }static struct pmu pmu = { - .capabilities =PERF_PMU_CAP_SAMPLING , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_RAW_EVENTS , .pmu_enable = x86_pmu_enable, .pmu_disable = x86_pmu_disable,
drivers/perf/arm_pmu.c +1 -0
@@ -877,6 +877,7 @@ struct arm_pmu *armpmu_alloc(void)* specific PMU. */ .capabilities = PERF_PMU_CAP_SAMPLING | +PERF_PMU_CAP_RAW_EVENTS |PERF_PMU_CAP_EXTENDED_REGS | PERF_PMU_CAP_EXTENDED_HW_TYPE, };
include/linux/perf_event.h +1 -0
@@ -305,6 +305,7 @@ struct perf_event_pmu_context;#define PERF_PMU_CAP_EXTENDED_HW_TYPE 0x0100#define PERF_PMU_CAP_AUX_PAUSE 0x0200#define PERF_PMU_CAP_AUX_PREFER_LARGE 0x0400 +#define PERF_PMU_CAP_RAW_EVENTS 0x0800/** * pmu::scope
kernel/events/core.c +15 -0
@@ -12556,11 +12556,26 @@ static inline bool has_extended_regs(struct perf_event *event) (event->attr.sample_regs_intr &PERF_REG_EXTENDED_MASK ); } +static bool is_raw_pmu (const struct pmu *pmu) +{ +return pmu->type ==PERF_TYPE_RAW || + pmu->capabilities &PERF_PMU_CAP_RAW_EVENTS ; +} +static int perf_try_init_event (struct pmu *pmu,struct perf_event *event) {struct perf_event_context *ctx =NULL ;int ret; +/* +* Before touching anything, we can safely skip: +* - any event for a specific PMU which is not this one +* - any common event if this PMU doesn't support them +*/ +if (event->attr.type != pmu->type && + (event->attr.type >=PERF_TYPE_MAX ||is_raw_pmu (pmu))) +return -ENOENT ; +if (!try_module_get (pmu->module))return -ENODEV ;
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerRe: [PATCH 18/19] perf: Introduce positive capability for raw events
Quoted 114 lines · Robin Murphy
Only a handful of CPU PMUs accept PERF_TYPE_{RAW,HARDWARE,HW_CACHE} events without registering themselves as
PERF_TYPE_RAWin the first place. Add an explicit opt-in for these special cases, so that we can make life easier for every other driver (and probably also speed up the slow-path search) by havingperf_try_init_event()do the basic type checking to cover the majority of cases.Signed-off-by Robin Murphy <[email protected]>---
A further possibility is to automatically add the cap to
PERF_TYPE_RAWPMUs inperf_pmu_register()to have a single point-of-use condition; I'm undecided...--- arch/s390/kernel/perf_cpum_cf.c | 1 + arch/s390/kernel/perf_pai_crypto.c | 2 +- arch/s390/kernel/perf_pai_ext.c | 2 +- arch/x86/events/core.c | 2 +- drivers/perf/arm_pmu.c | 1 + include/linux/perf_event.h | 1 + kernel/events/core.c | 15 +++++++++++++++ 7 files changed, 21 insertions(+), 3 deletions(-)arch/s390/kernel/perf_cpum_cf.c +1
-0@@ -1054,6 +1054,7 @@ static void cpumf_pmu_del(struct perf_event *event, int flags)/* Performance monitoring unit for s390x */ static struct pmu cpumf_pmu = { .task_ctx_nr = perf_sw_context, + .capabilities =PERF_PMU_CAP_RAW_EVENTS , .pmu_enable = cpumf_pmu_enable, .pmu_disable = cpumf_pmu_disable, .event_init = cpumf_pmu_event_init,arch/s390/kernel/perf_pai_crypto.c +1
-1@@ -569,7 +569,7 @@ static const struct attribute_group *paicrypt_attr_groups[] = {/* Performance monitoring unit for mapped counters */ static struct pmu paicrypt = { .task_ctx_nr = perf_hw_context, - .capabilities =PERF_PMU_CAP_SAMPLING , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_RAW_EVENTS , .event_init = paicrypt_event_init, .add = paicrypt_add, .del = paicrypt_del,arch/s390/kernel/perf_pai_ext.c +1
-1@@ -595,7 +595,7 @@ static const struct attribute_group *paiext_attr_groups[] = {/* Performance monitoring unit for mapped counters */ static struct pmu paiext = { .task_ctx_nr = perf_hw_context, - .capabilities =PERF_PMU_CAP_SAMPLING , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_RAW_EVENTS , .event_init = paiext_event_init, .add = paiext_add, .del = paiext_del,arch/x86/events/core.c +1
-1@@ -2697,7 +2697,7 @@ static bool x86_pmu_filter(struct pmu *pmu, int cpu) }static struct pmu pmu = { - .capabilities =PERF_PMU_CAP_SAMPLING , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_RAW_EVENTS , .pmu_enable = x86_pmu_enable, .pmu_disable = x86_pmu_disable,drivers/perf/arm_pmu.c +1
-0@@ -877,6 +877,7 @@ struct arm_pmu *armpmu_alloc(void)* specific PMU. */ .capabilities = PERF_PMU_CAP_SAMPLING | +PERF_PMU_CAP_RAW_EVENTS |PERF_PMU_CAP_EXTENDED_REGS | PERF_PMU_CAP_EXTENDED_HW_TYPE, };include/linux/perf_event.h +1
-0@@ -305,6 +305,7 @@ struct perf_event_pmu_context;#define PERF_PMU_CAP_EXTENDED_HW_TYPE 0x0100#define PERF_PMU_CAP_AUX_PAUSE 0x0200#define PERF_PMU_CAP_AUX_PREFER_LARGE 0x0400 +#define PERF_PMU_CAP_RAW_EVENTS 0x0800/** * pmu::scope kernel/events/core.c +6
-0@@ -12556,11 +12556,26 @@ static inline bool has_extended_regs(struct perf_event *event) (event->attr.sample_regs_intr &PERF_REG_EXTENDED_MASK ); } +static bool is_raw_pmu (const struct pmu *pmu) +{ +return pmu->type ==PERF_TYPE_RAW || + pmu->capabilities &PERF_PMU_CAP_RAW_EVENTS ; +} +static int perf_try_init_event (struct pmu *pmu,struct perf_event *event) {
kernel/events/core.c static inline bool has_extended_regs(struct perf_event *event) · line 12576
Quoted 10 lines
kernel/events/core.c +7
-0struct perf_event_context *ctx =NULL ;int ret; +/* +* Before touching anything, we can safely skip: +* - any event for a specific PMU which is not this one +* - any common event if this PMU doesn't support them +*/ +if (event->attr.type != pmu->type && + (event->attr.type >=PERF_TYPE_MAX ||is_raw_pmu (pmu)))
Ah, that should be "!is_raw_pmu(pmu)" there (although it's not entirely the cause of the LKP report on the final patch.)
Thanks,
Robin.
Quoted 5 lines
kernel/events/core.c +2
-0+return -ENOENT ; +if (!try_module_get (pmu->module))return -ENODEV ;
Re: [PATCH 18/19] perf: Introduce positive capability for raw events
Quoted 123 lines · Robin Murphy
Quoted 112 lines · Robin Murphy
Only a handful of CPU PMUs accept PERF_TYPE_{RAW,HARDWARE,HW_CACHE} events without registering themselves as
PERF_TYPE_RAWin the first place. Add an explicit opt-in for these special cases, so that we can make life easier for every other driver (and probably also speed up the slow-path search) by havingperf_try_init_event()do the basic type checking to cover the majority of cases.Signed-off-by Robin Murphy <[email protected]>---
A further possibility is to automatically add the cap to
PERF_TYPE_RAWPMUs inperf_pmu_register()to have a single point-of-use condition; I'm undecided...
---
arch/s390/kernel/perf_cpum_cf.c | 1 +arch/s390/kernel/perf_pai_crypto.c| 2 +- arch/s390/kernel/perf_pai_ext.c | 2 +- arch/x86/events/core.c | 2 +- drivers/perf/arm_pmu.c | 1 + include/linux/perf_event.h | 1 + kernel/events/core.c | 15 +++++++++++++++7 files changed, 21 insertions(+), 3 deletions(-)arch/s390/kernel/perf_cpum_cf.c +1
-0@@ -1054,6 +1054,7 @@ static void cpumf_pmu_del(struct perf_event *event, int flags) /* Performance monitoring unit for s390x */ static struct pmu cpumf_pmu = { .task_ctx_nr = perf_sw_context, + .capabilities = PERF_PMU_CAP_RAW_EVENTS, .pmu_enable = cpumf_pmu_enable, .pmu_disable = cpumf_pmu_disable, .event_init = cpumf_pmu_event_init,arch/s390/kernel/perf_pai_crypto.c +1
-1@@ -569,7 +569,7 @@ static const struct attribute_group *paicrypt_attr_groups[] = { /* Performance monitoring unit for mapped counters */ static struct pmu paicrypt = { .task_ctx_nr = perf_hw_context, - .capabilities = PERF_PMU_CAP_SAMPLING, + .capabilities = PERF_PMU_CAP_SAMPLING | PERF_PMU_CAP_RAW_EVENTS, .event_init = paicrypt_event_init, .add = paicrypt_add, .del = paicrypt_del,arch/s390/kernel/perf_pai_ext.c +1
-1@@ -595,7 +595,7 @@ static const struct attribute_group *paiext_attr_groups[] = { /* Performance monitoring unit for mapped counters */ static struct pmu paiext = { .task_ctx_nr = perf_hw_context, - .capabilities = PERF_PMU_CAP_SAMPLING, + .capabilities = PERF_PMU_CAP_SAMPLING | PERF_PMU_CAP_RAW_EVENTS, .event_init = paiext_event_init, .add = paiext_add, .del = paiext_del,arch/x86/events/core.c +1
-1@@ -2697,7 +2697,7 @@ static bool x86_pmu_filter(struct pmu *pmu, int cpu) } static struct pmu pmu = { - .capabilities = PERF_PMU_CAP_SAMPLING, + .capabilities = PERF_PMU_CAP_SAMPLING | PERF_PMU_CAP_RAW_EVENTS, .pmu_enable = x86_pmu_enable, .pmu_disable = x86_pmu_disable,drivers/perf/arm_pmu.c +0
-0@@ -877,6 +877,7 @@ struct arm_pmu *armpmu_alloc(void)* specific PMU. */ .capabilities =
PERF_PMU_CAP_SAMPLING| +PERF_PMU_CAP_RAW_EVENTS|PERF_PMU_CAP_EXTENDED_REGS|PERF_PMU_CAP_EXTENDED_HW_TYPE, };include/linux/perf_event.h +1
-0@@ -305,6 +305,7 @@ struct perf_event_pmu_context; #define PERF_PMU_CAP_EXTENDED_HW_TYPE 0x0100 #define PERF_PMU_CAP_AUX_PAUSE 0x0200 #define PERF_PMU_CAP_AUX_PREFER_LARGE 0x0400 +#define PERF_PMU_CAP_RAW_EVENTS 0x0800 /*** pmu::scope kernel/events/core.c +5
-0@@ -12556,11 +12556,26 @@ static inline bool has_extended_regs(struct perf_event *event) (event->attr.sample_regs_intr & PERF_REG_EXTENDED_MASK); } +static bool is_raw_pmu(const struct pmu *pmu) +{ + return pmu->type == PERF_TYPE_RAW || + pmu->capabilities & PERF_PMU_CAP_RAW_EVENTS; +} + static int perf_try_init_event(struct pmu *pmu, struct perf_event *event) { struct perf_event_context *ctx = NULL; int ret;Quoted 7 lines
+ /*
+ * Before touching anything, we can safely skip:
+ * - any event for a specific PMU which is not this one + * - any common event if this PMU doesn't support them + */
+ if (event->attr.type!=pmu->type&&
+ (event->attr.type>=PERF_TYPE_MAX||is_raw_pmu(pmu)))Ah, that should be "!is_raw_pmu(pmu)" there (although it's not entirely the cause of the LKP report on the final patch.)
Quoted 10 lines
Thanks,
Robin.Quoted 5 lines
+ return
-ENOENT;
+
if (!try_module_get(pmu->module))
return-ENODEV;
Hi Robin,
what is the intention of that patch?
Can you explain that a bit more.
Thanks.
Signature · 9 lines
Thomas Richter, Dept 3303, IBM s390 Linux Development, Boeblingen, Germany -- IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Wolfgang Wendt Geschäftsführung: David Faller Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294
Robin Murphy
maintainerRe: [PATCH 18/19] perf: Introduce positive capability for raw events
Hi Thomas,
Quoted 135 lines · Thomas Richter
Quoted 123 lines · Robin Murphy
Quoted 109 lines · Robin Murphy
Only a handful of CPU PMUs accept PERF_TYPE_{RAW,HARDWARE,HW_CACHE} events without registering themselves as
PERF_TYPE_RAWin the first place. Add an explicit opt-in for these special cases, so that we can make life easier for every other driver (and probably also speed up the slow-path search) by havingperf_try_init_event()do the basic type checking to cover the majority of cases.Signed-off-by Robin Murphy <[email protected]>---
A further possibility is to automatically add the cap to
PERF_TYPE_RAWPMUs inperf_pmu_register()to have a single point-of-use condition; I'm undecided...--- arch/s390/kernel/perf_cpum_cf.c | 1 + arch/s390/kernel/perf_pai_crypto.c | 2 +- arch/s390/kernel/perf_pai_ext.c | 2 +- arch/x86/events/core.c | 2 +- drivers/perf/arm_pmu.c | 1 + include/linux/perf_event.h | 1 + kernel/events/core.c | 15 +++++++++++++++ 7 files changed, 21 insertions(+), 3 deletions(-)arch/s390/kernel/perf_cpum_cf.c +1
-0@@ -1054,6 +1054,7 @@ static void cpumf_pmu_del(struct perf_event *event, int flags) /* Performance monitoring unit for s390x */ static struct pmu cpumf_pmu = { .task_ctx_nr = perf_sw_context, + .capabilities = PERF_PMU_CAP_RAW_EVENTS, .pmu_enable = cpumf_pmu_enable, .pmu_disable = cpumf_pmu_disable, .event_init = cpumf_pmu_event_init,arch/s390/kernel/perf_pai_crypto.c +1
-1@@ -569,7 +569,7 @@ static const struct attribute_group *paicrypt_attr_groups[] = { /* Performance monitoring unit for mapped counters */ static struct pmu paicrypt = { .task_ctx_nr = perf_hw_context, - .capabilities = PERF_PMU_CAP_SAMPLING, + .capabilities = PERF_PMU_CAP_SAMPLING | PERF_PMU_CAP_RAW_EVENTS, .event_init = paicrypt_event_init, .add = paicrypt_add, .del = paicrypt_del,arch/s390/kernel/perf_pai_ext.c +1
-1@@ -595,7 +595,7 @@ static const struct attribute_group *paiext_attr_groups[] = { /* Performance monitoring unit for mapped counters */ static struct pmu paiext = { .task_ctx_nr = perf_hw_context, - .capabilities = PERF_PMU_CAP_SAMPLING, + .capabilities = PERF_PMU_CAP_SAMPLING | PERF_PMU_CAP_RAW_EVENTS, .event_init = paiext_event_init, .add = paiext_add, .del = paiext_del,arch/x86/events/core.c +1
-1@@ -2697,7 +2697,7 @@ static bool x86_pmu_filter(struct pmu *pmu, int cpu) } static struct pmu pmu = { - .capabilities = PERF_PMU_CAP_SAMPLING, + .capabilities = PERF_PMU_CAP_SAMPLING | PERF_PMU_CAP_RAW_EVENTS, .pmu_enable = x86_pmu_enable, .pmu_disable = x86_pmu_disable,drivers/perf/arm_pmu.c +1
-0@@ -877,6 +877,7 @@ struct arm_pmu *armpmu_alloc(void)* specific PMU. */ .capabilities = PERF_PMU_CAP_SAMPLING | + PERF_PMU_CAP_RAW_EVENTS | PERF_PMU_CAP_EXTENDED_REGS | PERF_PMU_CAP_EXTENDED_HW_TYPE, };include/linux/perf_event.h +1
-0@@ -305,6 +305,7 @@ struct perf_event_pmu_context; #define PERF_PMU_CAP_EXTENDED_HW_TYPE 0x0100 #define PERF_PMU_CAP_AUX_PAUSE 0x0200 #define PERF_PMU_CAP_AUX_PREFER_LARGE 0x0400 +#define PERF_PMU_CAP_RAW_EVENTS 0x0800 /*** pmu::scope kernel/events/core.c +5
-0@@ -12556,11 +12556,26 @@ static inline bool has_extended_regs(struct perf_event *event) (event->attr.sample_regs_intr & PERF_REG_EXTENDED_MASK); } +static bool is_raw_pmu(const struct pmu *pmu) +{ + return pmu->type == PERF_TYPE_RAW || + pmu->capabilities & PERF_PMU_CAP_RAW_EVENTS; +} + static int perf_try_init_event(struct pmu *pmu, struct perf_event *event)kernel/events/core.c static inline bool has_extended_regs(struct perf_event *event) · line 12574
Quoted 10 lines
kernel/events/core.c +6
-0{ struct perf_event_context *ctx = NULL; int ret; + /* + * Before touching anything, we can safely skip: + * - any event for a specific PMU which is not this one + * - any common event if this PMU doesn't support them + */ + if (event->attr.type != pmu->type && + (event->attr.type >= PERF_TYPE_MAX || is_raw_pmu(pmu)))Ah, that should be "!is_raw_pmu(pmu)" there (although it's not entirely the cause of the LKP report on the final patch.)
Quoted 10 lines
Thanks,
Robin.Quoted 5 lines
kernel/events/core.c +2
-0+ return -ENOENT; + if (!try_module_get(pmu->module)) return -ENODEV;
Quoted 4 lines
Hi Robin,
what is the intention of that patch?
Can you explain that a bit more.
The background here is that, in this context, we essentially have 3 distinct categories of PMU driver:
- Older/simpler CPU PMUs which register as PERF_TYPE_RAW and accept raw/hardware events
- Newer/heterogeneous CPU PMUs which register as a dynamic type, and accept both raw/hardware events and events of their own type
- Other (mostly uncore) PMUs which only accept events of their own type
These days that third one is by far the majority, so it seems increasingly unreasonable and inefficient to always offer every kind of event to every driver, and so force nearly all of them to have the same boilerplate code to refuse events they don't want. The core code is already in a position to be able to assume that a PERF_TYPE_RAW PMU wants "raw" events and a typed PMU wants its own events, so the only actual new thing we need is a way to discern the 5 drivers in the middle category - where s390 dominates :) - from the rest in the third.
The way the check itself ends up structured is that the only time we'll now offer an event to a driver of a different type is if it's a "raw" event and the driver has asked to be offered them (either by registering as PERF_TYPE_RAW or with the new cap). Otherwise we can safely assume that this PMU won't want this event, and so skip straight to trying the next one. We can get away with the single PERF_TYPE_MAX check for all "raw" events, since the drivers which do handle them already have to consider the exact type to discern between RAW/HARDWARE/HW_CACHE, and thus must reject SOFTWARE/TRACEPOINT/BREAKPOINT events anyway, but I could of course make that more specific if people prefer. Conversely, since the actual software/tracepoint/breakpoint PMUs won't pass the is_raw_pmu() check either, and thus will only be given their own events, I could remove the type checking from their event_init routines as well, but I thought that might be perhaps a little too subtle as-is.
BTW if the s390 drivers are intended to coexist then I'm not sure they actually handle sharing PERF_TYPE_RAW events very well - what happens to any particular event seems ultimately largely dependent on the order in which the drivers happen to register - but that's a pre-existing issue and this series shouldn't change anything in that respect. (As it similarly shouldn't affect the trick of the first matching driver rewriting the event type to "forward" it to another driver later in the list.)
Thanks,
Robin.
kernel test robot
build botRe: [PATCH 18/19] perf: Introduce positive capability for raw events
In reply to Robin Murphykernel test robot noticed "perf-sanity-tests.Event_groups.fail" on:
Hello,
kernel test robot noticed "perf-sanity-tests.Event_groups.fail" on:
commit: a704f7a13544a408baee6fa78f0f24fa05bfa406 ("[PATCH 18/19] perf: Introduce positive capability for raw events")
url: https://github.com/intel-lab-lkp/linux/commits/Robin-Murphy/perf-arm-cmn-Fix-event-validation/20250814-010626
base: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git 91325f31afc1026de28665cf1a7b6e157fa4d39d patch link: https://lore.kernel.org/all/542787fd188ea15ef41c53d557989c962ed44771.1755096883.git.robin.murphy@arm.com/
patch subject: [PATCH 18/19] perf: Introduce positive capability for raw events
in testcase: perf-sanity-tests version:
with following parameters:
perf_compiler: gcc group: group-01
config: x86_64-rhel-9.4-bpf
compiler: gcc-12
test machine: 224 threads 4 sockets Intel(R) Xeon(R) Platinum 8380H CPU @ 2.90GHz (Cooper Lake) with 192G memory
(please refer to attached dmesg/kmsg for entire log/backtrace)
If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-lkp/[email protected]
besides Event_groups, we also noticed perf_stat_JSON_output_linter and perf_stat_STD_output_linter become failed upon this commit but pass on parent.
0129bbf0ee6f109a a704f7a13544a408baee6fa78f0 ---------------- ---------------------------
fail:runs %reproduction fail:runs
| | |
:38 16% 6:6 perf-sanity-tests.Event_groups.fail
:38 16% 6:6 perf-sanity-tests.perf_stat_JSON_output_linter.fail
:38 16% 6:6 perf-sanity-tests.perf_stat_STD_output_linter.fail
2025-08-18 13:20:21 sudo /usr/src/linux-perf-x86_64-rhel-9.4-bpf-a704f7a13544a408baee6fa78f0f24fa05bfa406/tools/perf/perf test 66 -v 66: Event groups : Running (1 active)
--- start ---
test child forked, pid 9619
Using CPUID GenuineIntel-6-55-B Using uncore_imc_0 for uncore pmu event 0x0 0x0, 0x0 0x0, 0x0 0x1: Fail0x0 0x0, 0x0 0x0, 0x1 0x3: Fail0x0 0x0, 0x0 0x0, 0xf 0x1: Fail0x0 0x0, 0x1 0x3, 0x0 0x0: Fail0x0 0x0, 0x1 0x3, 0x1 0x3: Fail0x0 0x0, 0x1 0x3, 0xf 0x1: Fail0x0 0x0, 0xf 0x1, 0x0 0x0: Fail0x0 0x0, 0xf 0x1, 0x1 0x3: Fail0x0 0x0, 0xf 0x1, 0xf 0x1: Fail0x1 0x3, 0x0 0x0, 0x0 0x0: Fail0x1 0x3, 0x0 0x0, 0x1 0x3: Fail0x1 0x3, 0x0 0x0, 0xf 0x1: Pass0x1 0x3, 0x1 0x3, 0x0 0x0: Fail0x1 0x3, 0x1 0x3, 0x1 0x3: Pass0x1 0x3, 0x1 0x3, 0xf 0x1: Pass0x1 0x3, 0xf 0x1, 0x0 0x0: Pass0x1 0x3, 0xf 0x1, 0x1 0x3: Pass0x1 0x3, 0xf 0x1, 0xf 0x1: Pass0xf 0x1, 0x0 0x0, 0x0 0x0: Pass0xf 0x1, 0x0 0x0, 0x1 0x3: Pass0xf 0x1, 0x0 0x0, 0xf 0x1: Pass0xf 0x1, 0x1 0x3, 0x0 0x0: Pass0xf 0x1, 0x1 0x3, 0x1 0x3: Pass0xf 0x1, 0x1 0x3, 0xf 0x1: Pass0xf 0x1, 0xf 0x1, 0x0 0x0: Pass0xf 0x1, 0xf 0x1, 0x1 0x3: Pass0xf 0x1, 0xf 0x1, 0xf 0x1: Pass ---- end(-1) ----
66: Event groups : FAILED!
...
2025-08-18 13:29:36 sudo /usr/src/linux-perf-x86_64-rhel-9.4-bpf-a704f7a13544a408baee6fa78f0f24fa05bfa406/tools/perf/perf test 97 -v 97: perf stat JSON output linter : Running (1 active)
--- start ---
test child forked, pid 20715
Checking json output: no args [Success] Checking json output: system wide [Success] Checking json output: interval [Success] Checking json output: event [Success]
Checking json output: per thread [Success] Checking json output: per node [Success] Checking json output: metric only Test failed for input:
{"metric-value" : "none"}
Traceback (most recent call last):
File "/usr/src/perf_selftests-x86_64-rhel-9.4-bpf-a704f7a13544a408baee6fa78f0f24fa05bfa406/tools/perf/tests/shell/lib/perf_json_output_lint.py", line 108, in <module>
check_json_output(expected_items)
File "/usr/src/perf_selftests-x86_64-rhel-9.4-bpf-a704f7a13544a408baee6fa78f0f24fa05bfa406/tools/perf/tests/shell/lib/perf_json_output_lint.py", line 93, in check_json_output
raise RuntimeError(f'Check failed for: key={key} value={value}')
RuntimeError: Check failed for: key=metric-value value=none
---- end(-1) ----
97: perf stat JSON output linter : FAILED!
...
2025-08-18 13:29:46 sudo /usr/src/linux-perf-x86_64-rhel-9.4-bpf-a704f7a13544a408baee6fa78f0f24fa05bfa406/tools/perf/perf test 99 -v 99: perf stat STD output linter : Running (1 active)
--- start ---
test child forked, pid 20818
Checking STD output: no args [Success] Checking STD output: system wide [Success] Checking STD output: interval [Success] Checking STD output: per thread [Success] Checking STD output: per node [Success] Checking STD output: metric only ---- end(-1) ----
99: perf stat STD output linter : FAILED!
The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20250821/[email protected]
Signature · 2 lines
0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
Mark Rutland
maintainerRe: [PATCH 18/19] perf: Introduce positive capability for raw events
In reply to Robin MurphyQuoted 8 lines · Robin Murphy
Only a handful of CPU PMUs accept PERF_TYPE_{RAW,HARDWARE,HW_CACHE} events without registering themselves as
PERF_TYPE_RAWin the first place. Add an explicit opt-in for these special cases, so that we can make life easier for every other driver (and probably also speed up the slow-path search) by havingperf_try_init_event()do the basic type checking to cover the majority of cases.Signed-off-by Robin Murphy <[email protected]>
To bikeshed a little here, I'm not keen on the PERF_PMU_CAP_RAW_EVENTS name, because it's not clear what "RAW" really means, and people will definitely read that to mean something else.
Could we go with something like PERF_PMU_CAP_COMMON_CPU_EVENTS, to make it clear that this is about opting into CPU-PMU specific event types (of which PERF_TYPE_RAW is one of)?
Likewise, s/is_raw_pmu()/pmu_supports_common_cpu_events()/.
Quoted 5 lines
---
A further possibility is to automatically add the cap to
PERF_TYPE_RAWPMUs inperf_pmu_register()to have a single point-of-use condition; I'm undecided...
I reckon we don't need to automagically do that, but I reckon that is_raw_pmu()/pmu_supports_common_cpu_events() should only check the cap, and we don't read anything special into any of PERF_TYPE_{RAW,HARDWARE,HW_CACHE}.
Quoted 15 lines
--- arch/s390/kernel/perf_cpum_cf.c | 1 + arch/s390/kernel/perf_pai_crypto.c | 2 +- arch/s390/kernel/perf_pai_ext.c | 2 +- arch/x86/events/core.c | 2 +- drivers/perf/arm_pmu.c | 1 + include/linux/perf_event.h | 1 + kernel/events/core.c | 15 +++++++++++++++ 7 files changed, 21 insertions(+), 3 deletions(-)arch/s390/kernel/perf_cpum_cf.c +0
-0
arch/s390/kernel/perf_cpum_cf.c static void cpumf_pmu_del(struct perf_event *event, int flags) · line 1060
Quoted 7 lines
arch/s390/kernel/perf_cpum_cf.c +1
-0@@ -1054,6 +1054,7 @@ static void cpumf_pmu_del(struct perf_event *event, int flags)/* Performance monitoring unit for s390x */ static struct pmu cpumf_pmu = { .task_ctx_nr = perf_sw_context, + .capabilities =PERF_PMU_CAP_RAW_EVENTS , .pmu_enable = cpumf_pmu_enable, .pmu_disable = cpumf_pmu_disable, .event_init = cpumf_pmu_event_init,
Tangential, but use of perf_sw_context here looks bogus.
Quoted 68 lines
arch/s390/kernel/perf_pai_crypto.c +1
-1@@ -569,7 +569,7 @@ static const struct attribute_group *paicrypt_attr_groups[] = {/* Performance monitoring unit for mapped counters */ static struct pmu paicrypt = { .task_ctx_nr = perf_hw_context, - .capabilities =PERF_PMU_CAP_SAMPLING , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_RAW_EVENTS , .event_init = paicrypt_event_init, .add = paicrypt_add, .del = paicrypt_del,arch/s390/kernel/perf_pai_ext.c +1
-1@@ -595,7 +595,7 @@ static const struct attribute_group *paiext_attr_groups[] = {/* Performance monitoring unit for mapped counters */ static struct pmu paiext = { .task_ctx_nr = perf_hw_context, - .capabilities =PERF_PMU_CAP_SAMPLING , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_RAW_EVENTS , .event_init = paiext_event_init, .add = paiext_add, .del = paiext_del,arch/x86/events/core.c +1
-1@@ -2697,7 +2697,7 @@ static bool x86_pmu_filter(struct pmu *pmu, int cpu) }static struct pmu pmu = { - .capabilities =PERF_PMU_CAP_SAMPLING , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_RAW_EVENTS , .pmu_enable = x86_pmu_enable, .pmu_disable = x86_pmu_disable,drivers/perf/arm_pmu.c +1
-0@@ -877,6 +877,7 @@ struct arm_pmu *armpmu_alloc(void)* specific PMU. */ .capabilities = PERF_PMU_CAP_SAMPLING | +PERF_PMU_CAP_RAW_EVENTS |PERF_PMU_CAP_EXTENDED_REGS | PERF_PMU_CAP_EXTENDED_HW_TYPE, };include/linux/perf_event.h +1
-0@@ -305,6 +305,7 @@ struct perf_event_pmu_context;#define PERF_PMU_CAP_EXTENDED_HW_TYPE 0x0100#define PERF_PMU_CAP_AUX_PAUSE 0x0200#define PERF_PMU_CAP_AUX_PREFER_LARGE 0x0400 +#define PERF_PMU_CAP_RAW_EVENTS 0x0800/** * pmu::scope kernel/events/core.c +0
-0
kernel/events/core.c static inline bool has_extended_regs(struct perf_event *event) · line 12563
Quoted 8 lines
kernel/events/core.c +5
-0@@ -12556,11 +12556,26 @@ static inline bool has_extended_regs(struct perf_event *event) (event->attr.sample_regs_intr &PERF_REG_EXTENDED_MASK ); } +static bool is_raw_pmu (const struct pmu *pmu) +{ +return pmu->type ==PERF_TYPE_RAW || + pmu->capabilities &PERF_PMU_CAP_RAW_EVENTS ; +}
As above, I reckon we should make this:
static bool pmu_supports_common_cpu_events(const struct pmu *pmu)
{
return pmu->capabilities & PERF_PMU_CAP_RAW_EVENTS;
}Other than the above, this looks good to me.
Mark.
Quoted 21 lines
kernel/events/core.c +10
-0+static int perf_try_init_event (struct pmu *pmu,struct perf_event *event) {struct perf_event_context *ctx =NULL ;int ret; +/* +* Before touching anything, we can safely skip: +* - any event for a specific PMU which is not this one +* - any common event if this PMU doesn't support them +*/ +if (event->attr.type != pmu->type && + (event->attr.type >=PERF_TYPE_MAX ||is_raw_pmu (pmu))) +return -ENOENT ; +if (!try_module_get (pmu->module))return -ENODEV ;Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Robin Murphy
maintainerRe: [PATCH 18/19] perf: Introduce positive capability for raw events
Quoted 11 lines · Mark Rutland
Quoted 8 lines · Robin Murphy
Only a handful of CPU PMUs accept PERF_TYPE_{RAW,HARDWARE,HW_CACHE} events without registering themselves as
PERF_TYPE_RAWin the first place. Add an explicit opt-in for these special cases, so that we can make life easier for every other driver (and probably also speed up the slow-path search) by havingperf_try_init_event()do the basic type checking to cover the majority of cases.Signed-off-by Robin Murphy <[email protected]>
Quoted 7 lines
To bikeshed a little here, I'm not keen on the
PERF_PMU_CAP_RAW_EVENTSname, because it's not clear what "RAW" really means, and people will definitely read that to mean something else.Could we go with something like
PERF_PMU_CAP_COMMON_CPU_EVENTS, to make it clear that this is about opting into CPU-PMU specific event types (of whichPERF_TYPE_RAWis one of)?
Indeed I started with that very intention after our previous discussion, but soon realised that in fact nowhere in the code is there any definition or even established notion of what "common" means in this context, so it's hardly immune to misinterpretation either. Furthermore the semantics of the cap as it ended up are specifically that the PMU wants the same behaviour as if it had registered as PERF_TYPE_RAW, so having "raw" in the name started to look like the more intuitive option after all (plus being nice and short helps.)
If anything, it's "events" that carries the implication that's proving hard to capture precisely and concisely here, so maybe the answer to avoid ambiguity is to lean further away from a "what it represents" to a "what it actually does" naming - PERF_PMU_CAP_TYPE_RAW, anyone?
Quoted 1 line
Likewise, s/is_raw_pmu()/pmu_supports_common_cpu_events()/.
Case in point: is it any more logical and expected that supporting common CPU events implies a PMU should be offered software or breakpoint events as well? Because that's what such a mere rename would currently mean :/
Quoted 10 lines
Quoted 5 lines
---
A further possibility is to automatically add the cap to
PERF_TYPE_RAWPMUs inperf_pmu_register()to have a single point-of-use condition; I'm undecided...I reckon we don't need to automagically do that, but I reckon that is_raw_pmu()/pmu_supports_common_cpu_events() should only check the cap, and we don't read anything special into any of PERF_TYPE_{RAW,HARDWARE,HW_CACHE}.
OK, but that would then necessitate having to explicitly add the cap to all 15-odd other drivers which register as PERF_TYPE_RAW as well, at which point it starts to look like a more general "I am a CPU PMU in terms of most typical assumptions you might want to make about that" flag...
To clarify (and perhaps something for a v2 commit message), we currently have 3 categories of PMU driver:
1: (Older/simpler CPUs) Registers as PERF_TYPE_RAW, wants PERF_TYPE_RAW/HARDWARE/HW_CACHE events
2: (Heterogeneous CPUs) Registers as dynamic type, wants PERF_TYPE_RAW/HARDWARE/HW_CACHE events plus events of its own type 3: (Mostly uncore) Registers as dynamic type, only wants events of its own type
My vested interest is in making category 3 the default behaviour, given that the growing majority of new drivers are uncore (and I keep having to write them...) However unclear the type overlaps in category 1 might be, it's been like that for 15 years, so I didn't feel compelled to churn fossils like Alpha more than reasonably necessary. Category 2 is only these 5 drivers, so a relatively small tweak to distinguish them from category 3 and let them retain the effective category 1 behaviour (which remains the current one of potentially still being offered software etc. events too) seemed like the neatest way to make progress.
I'm not saying I'm necessarily against a general overhaul of CPU PMUs being attempted too, just that it seems more like a whole other side-quest, and I'd really like to slay the uncore-boilerplate dragon first.
Quoted 10 lines
Quoted 10 lines
--- arch/s390/kernel/perf_cpum_cf.c | 1 + arch/s390/kernel/perf_pai_crypto.c | 2 +- arch/s390/kernel/perf_pai_ext.c | 2 +- arch/x86/events/core.c | 2 +- drivers/perf/arm_pmu.c | 1 + include/linux/perf_event.h | 1 + kernel/events/core.c | 15 +++++++++++++++ 7 files changed, 21 insertions(+), 3 deletions(-)
Quoted 14 lines
arch/s390/kernel/perf_cpum_cf.c static void cpumf_pmu_del(struct perf_event *event, int flags) · line 1060
Quoted 12 lines
arch/s390/kernel/perf_cpum_cf.c +1
-0@@ -1054,6 +1054,7 @@ static void cpumf_pmu_del(struct perf_event *event, int flags)/* Performance monitoring unit for s390x */ static struct pmu cpumf_pmu = { .task_ctx_nr = perf_sw_context, + .capabilities =PERF_PMU_CAP_RAW_EVENTS , .pmu_enable = cpumf_pmu_enable, .pmu_disable = cpumf_pmu_disable, .event_init = cpumf_pmu_event_init,Tangential, but use of
perf_sw_contexthere looks bogus.
Indeed, according to the history it was intentional, but perhaps that no longer applies since the big context redesign? FWIW there seem to be a fair few instances of this, including Arm SPE.
Thanks,
Robin.
Quoted 109 lines
Quoted 68 lines
arch/s390/kernel/perf_pai_crypto.c +1
-1@@ -569,7 +569,7 @@ static const struct attribute_group *paicrypt_attr_groups[] = {/* Performance monitoring unit for mapped counters */ static struct pmu paicrypt = { .task_ctx_nr = perf_hw_context, - .capabilities =PERF_PMU_CAP_SAMPLING , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_RAW_EVENTS , .event_init = paicrypt_event_init, .add = paicrypt_add, .del = paicrypt_del,arch/s390/kernel/perf_pai_ext.c +1
-1@@ -595,7 +595,7 @@ static const struct attribute_group *paiext_attr_groups[] = {/* Performance monitoring unit for mapped counters */ static struct pmu paiext = { .task_ctx_nr = perf_hw_context, - .capabilities =PERF_PMU_CAP_SAMPLING , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_RAW_EVENTS , .event_init = paiext_event_init, .add = paiext_add, .del = paiext_del,arch/x86/events/core.c +1
-1@@ -2697,7 +2697,7 @@ static bool x86_pmu_filter(struct pmu *pmu, int cpu) }static struct pmu pmu = { - .capabilities =PERF_PMU_CAP_SAMPLING , + .capabilities =PERF_PMU_CAP_SAMPLING |PERF_PMU_CAP_RAW_EVENTS , .pmu_enable = x86_pmu_enable, .pmu_disable = x86_pmu_disable,drivers/perf/arm_pmu.c +1
-0@@ -877,6 +877,7 @@ struct arm_pmu *armpmu_alloc(void)* specific PMU. */ .capabilities = PERF_PMU_CAP_SAMPLING | +PERF_PMU_CAP_RAW_EVENTS |PERF_PMU_CAP_EXTENDED_REGS | PERF_PMU_CAP_EXTENDED_HW_TYPE, };include/linux/perf_event.h +1
-0@@ -305,6 +305,7 @@ struct perf_event_pmu_context;#define PERF_PMU_CAP_EXTENDED_HW_TYPE 0x0100#define PERF_PMU_CAP_AUX_PAUSE 0x0200#define PERF_PMU_CAP_AUX_PREFER_LARGE 0x0400 +#define PERF_PMU_CAP_RAW_EVENTS 0x0800/** * pmu::scope kernel/events/core.c +0
-0kernel/events/core.c static inline bool has_extended_regs(struct perf_event *event) · line 12563
Quoted 8 lines
kernel/events/core.c +5
-0@@ -12556,11 +12556,26 @@ static inline bool has_extended_regs(struct perf_event *event) (event->attr.sample_regs_intr &PERF_REG_EXTENDED_MASK ); } +static bool is_raw_pmu (const struct pmu *pmu) +{ +return pmu->type ==PERF_TYPE_RAW || + pmu->capabilities &PERF_PMU_CAP_RAW_EVENTS ; +}As above, I reckon we should make this:
static bool
pmu_supports_common_cpu_events(const struct pmu *pmu){ return pmu->capabilities & PERF_PMU_CAP_RAW_EVENTS; }Other than the above, this looks good to me.
Mark.
Quoted 21 lines
kernel/events/core.c +10
-0+static int perf_try_init_event (struct pmu *pmu,struct perf_event *event) {struct perf_event_context *ctx =NULL ;int ret; +/* +* Before touching anything, we can safely skip: +* - any event for a specific PMU which is not this one +* - any common event if this PMU doesn't support them +*/ +if (event->attr.type != pmu->type && + (event->attr.type >=PERF_TYPE_MAX ||is_raw_pmu (pmu))) +return -ENOENT ; +if (!try_module_get (pmu->module))return -ENODEV ;Signature · 1 line
2.39.2.101.g768bb238c484.dirty
Mark Rutland
maintainerRe: [PATCH 18/19] perf: Introduce positive capability for raw events
Quoted 6 lines · Robin Murphy
Quoted 5 lines · Mark Rutland
On Wed, Aug 13, 2025 at 06:01:10PM +0100, Robin Murphy wrote:
To bikeshed a little here, I'm not keen on thePERF_PMU_CAP_RAW_EVENTSname, because it's not clear what "RAW" really means, and people will definitely read that to mean something else.
Quoted 8 lines
Quoted 3 lines
Could we go with something like
PERF_PMU_CAP_COMMON_CPU_EVENTS, to make it clear that this is about opting into CPU-PMU specific event types (of whichPERF_TYPE_RAWis one of)?Indeed I started with that very intention after our previous discussion, but soon realised that in fact nowhere in the code is there any definition or even established notion of what "common" means in this context, so it's hardly immune to misinterpretation either.
We can document that; it's everything less than PERF_TYPE_MAX:
enum perf_type_id {
PERF_TYPE_HARDWARE = 0,
PERF_TYPE_SOFTWARE = 1,
PERF_TYPE_TRACEPOINT = 2,
PERF_TYPE_HW_CACHE = 3,
PERF_TYPE_RAW = 4,
PERF_TYPE_BREAKPOINT = 5,
PERF_TYPE_MAX, /* non-ABI */
};
... and maybe you could use "PERF_PMU_CAP_ABI_TYPES" to align with that comment?
Quoted 4 lines
Furthermore the semantics of the cap as it ended up are specifically that the PMU wants the same behaviour as if it had registered as
PERF_TYPE_RAW, so having "raw" in the name started to look like the more intuitive option after all (plus being nice and short helps.)
I appreciate the shortness, but I think it's misleading to tie this to "RAW" specifically, when really this is a capabiltiy to say "please let me try to init any events for non-dynamic types, in addition to whatever specific type I am registered with".
Quoted 4 lines
If anything, it's "events" that carries the implication that's proving hard to capture precisely and concisely here, so maybe the answer to avoid ambiguity is to lean further away from a "what it represents" to a "what it actually does" naming -
PERF_PMU_CAP_TYPE_RAW, anyone?
I'm happy with TYPE in the name; it's just RAW specifically that I'm objecting to.
Quoted 5 lines
Quoted 1 line
Likewise, s/is_raw_pmu()/pmu_supports_common_cpu_events()/.
Case in point: is it any more logical and expected that supporting common CPU events implies a PMU should be offered software or breakpoint events as well? Because that's what such a mere rename would currently mean :/
Yes, I think it is.
Quoted 19 lines
Quoted 10 lines
Quoted 5 lines
---
A further possibility is to automatically add the cap to
PERF_TYPE_RAWPMUs inperf_pmu_register()to have a single point-of-use condition; I'm undecided...I reckon we don't need to automagically do that, but I reckon that is_raw_pmu()/pmu_supports_common_cpu_events() should only check the cap, and we don't read anything special into any of PERF_TYPE_{RAW,HARDWARE,HW_CACHE}.
OK, but that would then necessitate having to explicitly add the cap to all 15-odd other drivers which register as
PERF_TYPE_RAWas well, at which point it starts to look like a more general "I am a CPU PMU in terms of most typical assumptions you might want to make about that" flag...To clarify (and perhaps something for a v2 commit message), we currently have 3 categories of PMU driver:
Quoted 6 lines
1: (Older/simpler CPUs) Registers as
PERF_TYPE_RAW, wants PERF_TYPE_RAW/HARDWARE/HW_CACHE events
2: (Heterogeneous CPUs) Registers as dynamic type, wants PERF_TYPE_RAW/HARDWARE/HW_CACHE events plus events of its own type 3: (Mostly uncore) Registers as dynamic type, only wants events of its own type
Sure, but I think that separating 1 and 2 is an artificial distinction, and what we really have is:
(a) Wants to handle (some of) the non-dynamic/common/ABI types (in addition to whatever specific type it was registered with). Needs to have a switch statement somewhere in pmu::event_init().
(b) Only wants to handle the specific type the PMU was registered with.
Quoted 3 lines
My vested interest is in making category 3 the default behaviour, given that the growing majority of new drivers are uncore (and I keep having to write them...)
Yes, we're aligned on that.
Quoted 7 lines
However unclear the type overlaps in category 1 might be, it's been like that for 15 years, so I didn't feel compelled to churn fossils like Alpha more than reasonably necessary. Category 2 is only these 5 drivers, so a relatively small tweak to distinguish them from category 3 and let them retain the effective category 1 behaviour (which remains the current one of potentially still being offered software etc. events too) seemed like the neatest way to make progress.
I just think we should combine 1 and 2 (into categroy a as above), since that removes the need to treat RAW specially going forwards.
Quoted 3 lines
I'm not saying I'm necessarily against a general overhaul of CPU PMUs being attempted too, just that it seems more like a whole other side-quest, and I'd really like to slay the uncore-boilerplate dragon first.
I think that adding the cap to those 15 PMUs would take less time than it has taken me to write this email, so I do not understand the objection.
Mark.
Re: [PATCH 18/19] perf: Introduce positive capability for raw events
In reply to Mark RutlandQuoted 42 lines · Mark Rutland
Quoted 8 lines · Robin Murphy
Only a handful of CPU PMUs accept PERF_TYPE_{RAW,HARDWARE,HW_CACHE} events without registering themselves as
PERF_TYPE_RAWin the first place. Add an explicit opt-in for these special cases, so that we can make life easier for every other driver (and probably also speed up the slow-path search) by havingperf_try_init_event()do the basic type checking to cover the majority of cases.Signed-off-by Robin Murphy <[email protected]>To bikeshed a little here, I'm not keen on the
PERF_PMU_CAP_RAW_EVENTSname, because it's not clear what "RAW" really means, and people will definitely read that to mean something else.Could we go with something like
PERF_PMU_CAP_COMMON_CPU_EVENTS, to make it clear that this is about opting into CPU-PMU specific event types (of whichPERF_TYPE_RAWis one of)?Likewise, s/is_raw_pmu()/pmu_supports_common_cpu_events()/.
Quoted 5 lines
---
A further possibility is to automatically add the cap to
PERF_TYPE_RAWPMUs inperf_pmu_register()to have a single point-of-use condition; I'm undecided...I reckon we don't need to automagically do that, but I reckon that is_raw_pmu()/pmu_supports_common_cpu_events() should only check the cap, and we don't read anything special into any of PERF_TYPE_{RAW,HARDWARE,HW_CACHE}.
Quoted 10 lines
--- arch/s390/kernel/perf_cpum_cf.c | 1 + arch/s390/kernel/perf_pai_crypto.c | 2 +- arch/s390/kernel/perf_pai_ext.c | 2 +- arch/x86/events/core.c | 2 +- drivers/perf/arm_pmu.c | 1 + include/linux/perf_event.h | 1 + kernel/events/core.c | 15 +++++++++++++++ 7 files changed, 21 insertions(+), 3 deletions(-)
Quoted 15 lines
arch/s390/kernel/perf_cpum_cf.c static void cpumf_pmu_del(struct perf_event *event, int flags) · line 1060
Quoted 12 lines
arch/s390/kernel/perf_cpum_cf.c +1
-0@@ -1054,6 +1054,7 @@ static void cpumf_pmu_del(struct perf_event *event, int flags)/* Performance monitoring unit for s390x */ static struct pmu cpumf_pmu = { .task_ctx_nr = perf_sw_context, + .capabilities =PERF_PMU_CAP_RAW_EVENTS , .pmu_enable = cpumf_pmu_enable, .pmu_disable = cpumf_pmu_disable, .event_init = cpumf_pmu_event_init,Tangential, but use of
perf_sw_contexthere looks bogus.
It might look strange, but it was done on purpose. For details see commit 9254e70c4ef1 ("s390/cpum_cf: use perf software context for hardware counters")
Background was a WARN_ON() statement which fired, because several PMU device drivers existed in parallel on s390x platform.
Not sure if this condition is still true after all these years...
Signature · 9 lines
Thomas Richter, Dept 3303, IBM s390 Linux Development, Boeblingen, Germany -- IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Wolfgang Wendt Geschäftsführung: David Faller Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294
Robin Murphy
maintainerPATCH 19/19 perf: Garbage-collect event_init checks
In reply to Robin MurphyAll these boilerplate event_init checks are now redundant. Of course many of them were already redundant, or done in the wrong order so as to be pointless, and what we don't see here is all the ones which were missing, but have now been implicitly gained thanks to some of these new core code behaviours. In summary:
- event->attr.type
Now only relevant to PERF_TYPE_RAW PMUs or those advertising PERF_PMU_CAP_RAW_EVENTS.
- event->cpu < 0
Already rejected by perf_event_alloc() unless a task is passed, wherein that will also set PERF_ATTACH_TASK prior to reaching perf_init_event(), so is always redundant with...
- PERF_ATTACH_TASK
Since at least commit bd2756811766 ("perf: Rewrite core context handling"), only relevant to PMUs using perf_hw_context or perf_sw_context; for uncore PMUs this is covered by perf_event_alloc() again, right after perf_init_event() returns, by virtue of the same non-NULL task which caused attach_state to be set in the first place.
- is_sampling_event() (and variations)
Now only relevant to PMUs advertising PERF_PMU_CAP_SAMPLING.
- has_branch_stack()
Now doubly-illogical for PMUs which never supported sampling anyway.
--- arch/arm/mach-imx/mmdc.c | 14 --------- arch/arm/mm/cache-l2x0-pmu.c | 10 ------- arch/powerpc/perf/hv-24x7.c | 8 ----- arch/powerpc/perf/hv-gpci.c | 8 ----- arch/powerpc/perf/imc-pmu.c | 30 ------------------- arch/powerpc/perf/kvm-hv-pmu.c | 3 -- arch/powerpc/perf/vpa-pmu.c | 7 ----- arch/powerpc/platforms/pseries/papr_scm.c | 11 ------- arch/s390/kernel/perf_cpum_cf.c | 3 +- arch/x86/events/amd/iommu.c | 15 ---------- arch/x86/events/amd/power.c | 7 ----- arch/x86/events/amd/uncore.c | 6 ---- arch/x86/events/intel/bts.c | 3 -- arch/x86/events/intel/cstate.c | 7 ----- arch/x86/events/intel/pt.c | 3 -- arch/x86/events/intel/uncore.c | 13 -------- arch/x86/events/intel/uncore_snb.c | 18 ----------- arch/x86/events/msr.c | 3 -- arch/x86/events/rapl.c | 11 ------- drivers/devfreq/event/rockchip-dfi.c | 12 -------- drivers/dma/idxd/perfmon.c | 14 --------- drivers/fpga/dfl-fme-perf.c | 14 --------- drivers/gpu/drm/amd/amdgpu/amdgpu_pmu.c | 4 --- drivers/gpu/drm/i915/i915_pmu.c | 13 -------- drivers/gpu/drm/xe/xe_pmu.c | 13 -------- .../hwtracing/coresight/coresight-etm-perf.c | 5 ---- drivers/hwtracing/ptt/hisi_ptt.c | 8 ----- drivers/iommu/intel/perfmon.c | 10 ------- drivers/perf/alibaba_uncore_drw_pmu.c | 17 ----------- drivers/perf/amlogic/meson_ddr_pmu_core.c | 9 ------ drivers/perf/arm-cci.c | 9 ------ drivers/perf/arm-ccn.c | 18 ----------- drivers/perf/arm-cmn.c | 10 ------- drivers/perf/arm-ni.c | 6 ---- drivers/perf/arm_cspmu/arm_cspmu.c | 13 -------- drivers/perf/arm_dmc620_pmu.c | 16 ---------- drivers/perf/arm_dsu_pmu.c | 20 ------------- drivers/perf/arm_smmuv3_pmu.c | 13 -------- drivers/perf/arm_spe_pmu.c | 4 --- drivers/perf/cxl_pmu.c | 6 ---- drivers/perf/dwc_pcie_pmu.c | 11 ------- drivers/perf/fsl_imx8_ddr_perf.c | 11 ------- drivers/perf/fsl_imx9_ddr_perf.c | 11 ------- drivers/perf/hisilicon/hisi_pcie_pmu.c | 8 ----- drivers/perf/hisilicon/hisi_uncore_pmu.c | 18 ----------- drivers/perf/hisilicon/hns3_pmu.c | 7 ----- drivers/perf/marvell_cn10k_ddr_pmu.c | 13 -------- drivers/perf/marvell_cn10k_tad_pmu.c | 3 -- drivers/perf/marvell_pem_pmu.c | 11 ------- drivers/perf/qcom_l2_pmu.c | 15 ---------- drivers/perf/qcom_l3_pmu.c | 19 ------------ drivers/perf/starfive_starlink_pmu.c | 14 --------- drivers/perf/thunderx2_pmu.c | 15 ---------- drivers/perf/xgene_pmu.c | 14 --------- drivers/powercap/intel_rapl_common.c | 7 ----- 55 files changed, 1 insertion(+), 590 deletions(-)
arch/arm/mach-imx/mmdc.c +0 -14
@@ -277,20 +277,6 @@ static int mmdc_pmu_event_init(struct perf_event *event)struct mmdc_pmu *pmu_mmdc =to_mmdc_pmu (event->pmu);int cfg = event->attr.config; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -if (is_sampling_event (event) || event->attach_state &PERF_ATTACH_TASK ) -return -EOPNOTSUPP ; - -if (event->cpu <0 ) { -dev_warn (pmu_mmdc->dev,"Can't provide per-task data!\n" ); -return -EOPNOTSUPP ; - } - -if (event->attr.sample_period) -return -EINVAL ; -if (cfg <0 || cfg >=MMDC_NUM_COUNTERS )return -EINVAL ;
arch/arm/mm/cache-l2x0-pmu.c +0 -10
@@ -294,16 +294,6 @@ static int l2x0_pmu_event_init(struct perf_event *event) {struct hw_perf_event *hw = &event->hw; -if (event->attr.type != l2x0_pmu->type) -return -ENOENT ; - -if (is_sampling_event (event) || - event->attach_state &PERF_ATTACH_TASK ) -return -EINVAL ; - -if (event->cpu <0 ) -return -EINVAL ; -if (event->attr.config & ~L2X0_EVENT_CNT_CFG_SRC_MASK )return -EINVAL ;
arch/powerpc/perf/hv-24x7.c +0 -8
@@ -1379,10 +1379,6 @@ static int h_24x7_event_init(struct perf_event *event)unsigned long hret;u64 ct; -/* Not our event */ -if (event->attr.type != event->pmu->type) -return -ENOENT ; -/* Unused areas must be 0 */ if (event_get_reserved1(event) || event_get_reserved2(event) ||
@@ -1397,10 +1393,6 @@ static int h_24x7_event_init(struct perf_event *event)return -EINVAL ; } -/* no branch sampling */ -if (has_branch_stack (event)) -return -EOPNOTSUPP ; -/* offset must be 8 byte aligned */ if (event_get_offset (event) %8 ) {pr_devel ("bad alignment\n" );
arch/powerpc/perf/hv-gpci.c +0 -8
@@ -775,20 +775,12 @@ static int h_gpci_event_init(struct perf_event *event)u8 length;unsigned long ret; -/* Not our event */ -if (event->attr.type != event->pmu->type) -return -ENOENT ; -/* config2 is unused */ if (event->attr.config2) {pr_devel ("config2 set when reserved\n" );return -EINVAL ; } -/* no branch sampling */ -if (has_branch_stack (event)) -return -EOPNOTSUPP ; - length =event_get_length (event);if (length <1 || length >8 ) {pr_devel ("length invalid\n" );
arch/powerpc/perf/imc-pmu.c +0 -30
@@ -517,16 +517,6 @@ static int nest_imc_event_init(struct perf_event *event)struct imc_pmu_ref *ref;bool flag = false; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* Sampling not supported */ -if (event->hw.sample_period) -return -EINVAL ; - -if (event->cpu <0 ) -return -EINVAL ; - pmu =imc_event_to_pmu (event);/* Sanity check for config (event offset) */
@@ -819,16 +809,6 @@ static int core_imc_event_init(struct perf_event *event)struct imc_pmu *pmu;struct imc_pmu_ref *ref; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* Sampling not supported */ -if (event->hw.sample_period) -return -EINVAL ; - -if (event->cpu <0 ) -return -EINVAL ; - event->hw.idx =-1 ; pmu =imc_event_to_pmu (event);
@@ -983,16 +963,9 @@ static int thread_imc_event_init(struct perf_event *event)struct task_struct *target;struct imc_pmu *pmu; -if (event->attr.type != event->pmu->type) -return -ENOENT ; -if (!perfmon_capable ())return -EACCES ; -/* Sampling not supported */ -if (event->hw.sample_period) -return -EINVAL ; - event->hw.idx =-1 ; pmu =imc_event_to_pmu (event);
@@ -1436,9 +1409,6 @@ static void trace_imc_event_del(struct perf_event *event, int flags)static int trace_imc_event_init (struct perf_event *event) { -if (event->attr.type != event->pmu->type) -return -ENOENT ; -if (!perfmon_capable ())return -EACCES ;
arch/powerpc/perf/kvm-hv-pmu.c +0 -3
@@ -180,9 +180,6 @@ static int kvmppc_pmu_event_init(struct perf_event *event) __func__, event, event->id, event->cpu, event->oncpu, config); -if (event->attr.type != event->pmu->type) -return -ENOENT ; -if (config >=KVMPPC_EVENT_MAX )return -EINVAL ;
arch/powerpc/perf/vpa-pmu.c +0 -7
@@ -72,13 +72,6 @@ static const struct attribute_group *vpa_pmu_attr_groups[] = {static int vpa_pmu_event_init (struct perf_event *event) { -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* no branch sampling */ -if (has_branch_stack (event)) -return -EOPNOTSUPP ; -/* Invalid event code */ if ((event->attr.config <=0 ) || (event->attr.config >3 ))return -EINVAL ;
arch/powerpc/platforms/pseries/papr_scm.c +0 -11
@@ -372,17 +372,6 @@ static int papr_scm_pmu_event_init(struct perf_event *event)struct nvdimm_pmu *nd_pmu =to_nvdimm_pmu (event->pmu);struct papr_scm_priv *p; -if (!nd_pmu) -return -EINVAL ; - -/* test the event attr type for PMU enumeration */ -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* no branch sampling */ -if (has_branch_stack (event)) -return -EOPNOTSUPP ; - p = (struct papr_scm_priv *)nd_pmu->dev->driver_data;if (!p)return -EINVAL ;
arch/s390/kernel/perf_cpum_cf.c +1 -2
@@ -1788,8 +1788,7 @@ static int cfdiag_event_init(struct perf_event *event)struct perf_event_attr *attr = &event->attr;int err = -ENOENT ; -if (event->attr.config !=PERF_EVENT_CPUM_CF_DIAG || - event->attr.type != event->pmu->type) +if (event->attr.config !=PERF_EVENT_CPUM_CF_DIAG ) goto out;/* Raw events are used to access counters directly,
arch/x86/events/amd/iommu.c +0 -15
@@ -209,21 +209,6 @@ static int perf_iommu_event_init(struct perf_event *event) {struct hw_perf_event *hwc = &event->hw; -/* test the event attr type check for PMU enumeration */ -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* -* IOMMU counters are shared across all cores. -* Therefore, it does not support per-process mode. -* Also, it does not support event sampling mode. -*/ -if (is_sampling_event (event) || event->attach_state &PERF_ATTACH_TASK ) -return -EINVAL ; - -if (event->cpu <0 ) -return -EINVAL ; -/* update the hw_perf_event struct with the iommu config data */ hwc->conf = event->attr.config; hwc->conf1 = event->attr.config1;
arch/x86/events/amd/power.c +0 -7
@@ -125,14 +125,7 @@ static int pmu_event_init(struct perf_event *event) {u64 cfg = event->attr.config &AMD_POWER_EVENT_MASK ; -/* Only look at AMD power events. */ -if (event->attr.type != pmu_class.type) -return -ENOENT ; -/* Unsupported modes and filters. */ -if (event->attr.sample_period) -return -EINVAL ; -if (cfg !=AMD_POWER_EVENTSEL_PKG )return -EINVAL ;
arch/x86/events/amd/uncore.c +0 -6
@@ -270,12 +270,6 @@ static int amd_uncore_event_init(struct perf_event *event)struct amd_uncore_ctx *ctx;struct hw_perf_event *hwc = &event->hw; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -if (event->cpu <0 ) -return -EINVAL ; - pmu =event_to_amd_uncore_pmu (event); ctx = *per_cpu_ptr (pmu->ctx, event->cpu);if (!ctx)
arch/x86/events/intel/bts.c +0 -3
@@ -565,9 +565,6 @@ static int bts_event_init(struct perf_event *event) {int ret; -if (event->attr.type != bts_pmu.type) -return -ENOENT ; -/* * BTS leaks kernel addresses even when CPL0 tracing is * disabled, so disallow intel_bts driver for unprivileged
arch/x86/events/intel/cstate.c +0 -7
@@ -277,13 +277,6 @@ static int cstate_pmu_event_init(struct perf_event *event) {u64 cfg = event->attr.config; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* unsupported modes and filters */ -if (event->cpu <0 ) -return -EINVAL ; -if (event->pmu == &cstate_core_pmu) {if (cfg >=PERF_CSTATE_CORE_EVENT_MAX )return -EINVAL ;
arch/x86/events/intel/pt.c +0 -3
@@ -1795,9 +1795,6 @@ static void pt_event_destroy(struct perf_event *event)static int pt_event_init (struct perf_event *event) { -if (event->attr.type != pt_pmu.pmu.type) -return -ENOENT ; -if (!pt_event_valid (event))return -EINVAL ;
arch/x86/events/intel/uncore.c +0 -13
@@ -731,24 +731,11 @@ static int uncore_pmu_event_init(struct perf_event *event)struct hw_perf_event *hwc = &event->hw;int ret; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - pmu =uncore_event_to_pmu (event);/* no device found for this pmu */ if (!pmu->registered)return -ENOENT ; -/* Sampling not supported yet */ -if (hwc->sample_period) -return -EINVAL ; - -/* -* Place all uncore events for a particular physical package -* onto a single cpu -*/ -if (event->cpu <0 ) -return -EINVAL ; box =uncore_pmu_to_box (pmu, event->cpu);if (!box || box->cpu <0 )return -EINVAL ;
arch/x86/events/intel/uncore_snb.c +0 -18
@@ -906,29 +906,11 @@ static int snb_uncore_imc_event_init(struct perf_event *event)u64 cfg = event->attr.config &SNB_UNCORE_PCI_IMC_EVENT_MASK ;int idx, base; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - pmu =uncore_event_to_pmu (event);/* no device found for this pmu */ if (!pmu->registered)return -ENOENT ; -/* Sampling not supported yet */ -if (hwc->sample_period) -return -EINVAL ; - -/* unsupported modes and filters */ -if (event->attr.sample_period)/* no sampling */ -return -EINVAL ; - -/* -* Place all uncore events for a particular physical package -* onto a single cpu -*/ -if (event->cpu <0 ) -return -EINVAL ; -/* check only supported bits are set */ if (event->attr.config & ~SNB_UNCORE_PCI_IMC_EVENT_MASK )return -EINVAL ;
arch/x86/events/msr.c +0 -3
@@ -206,9 +206,6 @@ static int msr_event_init(struct perf_event *event) {u64 cfg = event->attr.config; -if (event->attr.type != event->pmu->type) -return -ENOENT ; -/* unsupported modes and filters */ if (cfg >=PERF_MSR_EVENT_MAX )return -EINVAL ;
arch/x86/events/rapl.c +0 -11
@@ -370,21 +370,10 @@ static int rapl_pmu_event_init(struct perf_event *event)unsigned int rapl_pmu_idx;struct rapl_pmus *rapl_pmus; -/* only look at RAPL events */ -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* unsupported modes and filters */ -if (event->attr.sample_period)/* no sampling */ -return -EINVAL ; -/* check only supported bits are set */ if (event->attr.config & ~RAPL_EVENT_MASK )return -EINVAL ; -if (event->cpu <0 ) -return -EINVAL ; - rapl_pmus = container_of(event->pmu, struct rapl_pmus, pmu);if (!rapl_pmus)return -EINVAL ;
drivers/devfreq/event/rockchip-dfi.c +0 -12
@@ -401,18 +401,6 @@ static const struct attribute_group *attr_groups[] = {static int rockchip_ddr_perf_event_init (struct perf_event *event) { - struct rockchip_dfi *dfi = container_of(event->pmu, struct rockchip_dfi, pmu); - -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -if (event->attach_state &PERF_ATTACH_TASK ) -return -EINVAL ; - -if (event->cpu <0 ) { -dev_warn (dfi->dev,"Can't provide per-task data!\n" ); -return -EINVAL ; - }/* Disallow groups since we can't start/stop/read multiple counters at once */ if (in_hardware_group (event))return -EINVAL ;
drivers/dma/idxd/perfmon.c +0 -14
@@ -171,20 +171,6 @@ static int perfmon_pmu_event_init(struct perf_event *event) idxd =event_to_idxd (event); event->hw.idx =-1 ; - -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* sampling not supported */ -if (event->attr.sample_period) -return -EINVAL ; - -if (event->cpu <0 ) -return -EINVAL ; - -if (event->pmu != &idxd->idxd_pmu->pmu) -return -EINVAL ; - event->hw.event_base =ioread64 (PERFMON_TABLE_OFFSET (idxd)); event->hw.config = event->attr.config;
drivers/fpga/dfl-fme-perf.c +0 -14
@@ -799,20 +799,6 @@ static int fme_perf_event_init(struct perf_event *event)struct fme_perf_event_ops *ops;u32 eventid, evtype, portid; -/* test the event attr type check for PMU enumeration */ -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* -* fme counters are shared across all cores. -* Therefore, it does not support per-process mode. -*/ -if (event->attach_state &PERF_ATTACH_TASK ) -return -EINVAL ; - -if (event->cpu <0 ) -return -EINVAL ; -if (event->cpu != priv->cpu)return -EINVAL ;
drivers/gpu/drm/amd/amdgpu/amdgpu_pmu.c +0 -4
@@ -210,10 +210,6 @@ static int amdgpu_perf_event_init(struct perf_event *event) {struct hw_perf_event *hwc = &event->hw; -/* test the event attr type check for PMU enumeration */ -if (event->attr.type != event->pmu->type) -return -ENOENT ; -/* update the hw_perf_event struct with config data */ hwc->config = event->attr.config; hwc->config_base =AMDGPU_PMU_PERF_TYPE_NONE ;
drivers/gpu/drm/i915/i915_pmu.c +0 -13
@@ -626,19 +626,6 @@ static int i915_pmu_event_init(struct perf_event *event)if (!pmu->registered)return -ENODEV ; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* unsupported modes and filters */ -if (event->attr.sample_period)/* no sampling */ -return -EINVAL ; - -if (has_branch_stack (event)) -return -EOPNOTSUPP ; - -if (event->cpu <0 ) -return -EINVAL ; -if (is_engine_event (event)) ret =engine_event_init (event);else
drivers/gpu/drm/xe/xe_pmu.c +0 -13
@@ -238,24 +238,11 @@ static int xe_pmu_event_init(struct perf_event *event)if (!pmu->registered)return -ENODEV ; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* unsupported modes and filters */ -if (event->attr.sample_period)/* no sampling */ -return -EINVAL ; - -if (event->cpu <0 ) -return -EINVAL ; - gt =config_to_gt_id (event->attr.config); id =config_to_event_id (event->attr.config);if (!event_supported (pmu, gt, id))return -ENOENT ; -if (has_branch_stack (event)) -return -EOPNOTSUPP ; -if (!event_param_valid (event))return -ENOENT ;
drivers/hwtracing/coresight/coresight-etm-perf.c +0 -5
@@ -178,11 +178,6 @@ static int etm_event_init(struct perf_event *event) {int ret =0 ; -if (event->attr.type != etm_pmu.type) { - ret = -ENOENT ; - goto out; - } - ret =etm_addr_filters_alloc (event);if (ret) goto out;
drivers/hwtracing/ptt/hisi_ptt.c +0 -8
@@ -998,14 +998,6 @@ static int hisi_ptt_pmu_event_init(struct perf_event *event)int ret;u32 val; -if (event->attr.type != hisi_ptt->hisi_ptt_pmu.type) -return -ENOENT ; - -if (event->cpu <0 ) { -dev_dbg (event->pmu->dev,"Per-task mode not supported\n" ); -return -EOPNOTSUPP ; - } -if (event->attach_state &PERF_ATTACH_TASK )return -EOPNOTSUPP ;
drivers/iommu/intel/perfmon.c +0 -10
@@ -284,16 +284,6 @@ static int iommu_pmu_event_init(struct perf_event *event) {struct hw_perf_event *hwc = &event->hw; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* sampling not supported */ -if (event->attr.sample_period) -return -EINVAL ; - -if (event->cpu <0 ) -return -EINVAL ; -if (iommu_pmu_validate_event (event))return -EINVAL ;
drivers/perf/alibaba_uncore_drw_pmu.c +0 -17
@@ -528,24 +528,7 @@ static int ali_drw_pmu_event_init(struct perf_event *event)struct hw_perf_event *hwc = &event->hw;struct device *dev = drw_pmu->pmu.dev; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -if (is_sampling_event (event)) { -dev_err (dev,"Sampling not supported!\n" ); -return -EOPNOTSUPP ; - } - -if (event->attach_state &PERF_ATTACH_TASK ) { -dev_err (dev,"Per-task counter cannot allocate!\n" ); -return -EOPNOTSUPP ; - } - event->cpu = drw_pmu->cpu; -if (event->cpu <0 ) { -dev_err (dev,"Per-task mode not supported!\n" ); -return -EOPNOTSUPP ; - }if (in_hardware_group (event)) {dev_err (dev,"driveway only allow one event!\n" );
drivers/perf/amlogic/meson_ddr_pmu_core.c +0 -9
@@ -121,15 +121,6 @@ static int meson_ddr_perf_event_init(struct perf_event *event)u64 config1 = event->attr.config1;u64 config2 = event->attr.config2; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -if (is_sampling_event (event) || event->attach_state &PERF_ATTACH_TASK ) -return -EOPNOTSUPP ; - -if (event->cpu <0 ) -return -EOPNOTSUPP ; -/* check if the number of parameters is too much */ if (event->attr.config !=ALL_CHAN_COUNTER_ID &&hweight64 (config1) +hweight64 (config2) >MAX_AXI_PORTS_OF_CHANNEL )
drivers/perf/arm-cci.c +0 -9
@@ -1283,13 +1283,6 @@ static int cci_pmu_event_init(struct perf_event *event)atomic_t *active_events = &cci_pmu->active_events;int err =0 ; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* Shared by all CPUs, no meaningful state to sample */ -if (is_sampling_event (event) || event->attach_state &PERF_ATTACH_TASK ) -return -EOPNOTSUPP ; -/* * Following the example set by other "uncore" PMUs, we accept any CPU * and rewrite its affinity dynamically rather than having perf core
@@ -1299,8 +1292,6 @@ static int cci_pmu_event_init(struct perf_event *event)* the event being installed into its context, so the PMU's CPU can't * change under our feet. */ -if (event->cpu <0 ) -return -EINVAL ; event->cpu = cci_pmu->cpu; event->destroy = hw_perf_event_destroy;
drivers/perf/arm-ccn.c +0 -18
@@ -704,30 +704,12 @@ static void arm_ccn_pmu_event_release(struct perf_event *event)static int arm_ccn_pmu_event_init (struct perf_event *event) {struct arm_ccn *ccn; -struct hw_perf_event *hw = &event->hw;u32 node_xp, type, event_id;int valid;int i; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - ccn =pmu_to_arm_ccn (event->pmu); -if (hw->sample_period) { -dev_dbg (ccn->dev,"Sampling not supported!\n" ); -return -EOPNOTSUPP ; - } - -if (has_branch_stack (event)) { -dev_dbg (ccn->dev,"Can't exclude execution levels!\n" ); -return -EINVAL ; - } - -if (event->cpu <0 ) { -dev_dbg (ccn->dev,"Can't provide per-task data!\n" ); -return -EOPNOTSUPP ; - }/* * Many perf core operations (eg. events rotation) operate on a * single CPU context. This is obvious for CPU PMUs, where one
drivers/perf/arm-cmn.c +0 -10
@@ -1765,16 +1765,6 @@ static int arm_cmn_event_init(struct perf_event *event)bool bynodeid;u16 nodeid, eventid; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -if (is_sampling_event (event) || event->attach_state &PERF_ATTACH_TASK ) -return -EINVAL ; - - event->cpu = cmn->cpu; -if (event->cpu <0 ) -return -EINVAL ; - type =CMN_EVENT_TYPE (event);/* DTC events (i.e. cycles) already have everything they need */ if (type ==CMN_TYPE_DTC )
drivers/perf/arm-ni.c +0 -6
@@ -309,12 +309,6 @@ static int arm_ni_event_init(struct perf_event *event) {struct arm_ni_cd *cd =pmu_to_cd (event->pmu); -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -if (is_sampling_event (event)) -return -EINVAL ; - event->cpu =cd_to_ni (cd)->cpu;if (NI_EVENT_TYPE (event) ==NI_PMU )return arm_ni_validate_group (event);
drivers/perf/arm_cspmu/arm_cspmu.c +0 -13
@@ -601,19 +601,6 @@ static int arm_cspmu_event_init(struct perf_event *event) cspmu =to_arm_cspmu (event->pmu); -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* -* Following other "uncore" PMUs, we do not support sampling mode or -* attach to a task (per-process mode). -*/ -if (event->cpu <0 || event->attach_state &PERF_ATTACH_TASK ) { -dev_dbg (cspmu->pmu.dev, -"Can't support per-task counters\n" ); -return -EINVAL ; - } -/* * Make sure the CPU assignment is on one of the CPUs associated with * this PMU.
drivers/perf/arm_dmc620_pmu.c +0 -16
@@ -514,20 +514,6 @@ static int dmc620_pmu_event_init(struct perf_event *event)struct dmc620_pmu *dmc620_pmu =to_dmc620_pmu (event->pmu);struct hw_perf_event *hwc = &event->hw; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* -* DMC 620 PMUs are shared across all cpus and cannot -* support task bound and sampling events. -*/ -if (is_sampling_event (event) || - event->attach_state &PERF_ATTACH_TASK ) { -dev_dbg (dmc620_pmu->pmu.dev, -"Can't support per-task counters\n" ); -return -EOPNOTSUPP ; - } -/* * Many perf core operations (eg. events rotation) operate on a * single CPU context. This is obvious for CPU PMUs, where one
@@ -538,8 +524,6 @@ static int dmc620_pmu_event_init(struct perf_event *event)* processor. */ event->cpu = dmc620_pmu->irq->cpu; -if (event->cpu <0 ) -return -EINVAL ; hwc->idx =-1 ;
drivers/perf/arm_dsu_pmu.c +0 -20
@@ -524,26 +524,6 @@ static int dsu_pmu_event_init(struct perf_event *event) {struct dsu_pmu *dsu_pmu =to_dsu_pmu (event->pmu); -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* We don't support sampling */ -if (is_sampling_event (event)) { -dev_dbg (dsu_pmu->pmu.dev,"Can't support sampling events\n" ); -return -EOPNOTSUPP ; - } - -/* We cannot support task bound events */ -if (event->cpu <0 || event->attach_state &PERF_ATTACH_TASK ) { -dev_dbg (dsu_pmu->pmu.dev,"Can't support per-task counters\n" ); -return -EINVAL ; - } - -if (has_branch_stack (event)) { -dev_dbg (dsu_pmu->pmu.dev,"Can't support filtering\n" ); -return -EINVAL ; - } -if (!cpumask_test_cpu (event->cpu, &dsu_pmu->associated_cpus)) {dev_dbg (dsu_pmu->pmu.dev,"Requested cpu is not associated with the DSU\n" );
drivers/perf/arm_smmuv3_pmu.c +0 -13
@@ -398,19 +398,6 @@ static int smmu_pmu_event_init(struct perf_event *event)int group_num_events =1 ;u16 event_id; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -if (hwc->sample_period) { -dev_dbg (dev,"Sampling not supported\n" ); -return -EOPNOTSUPP ; - } - -if (event->cpu <0 ) { -dev_dbg (dev,"Per-task mode not supported\n" ); -return -EOPNOTSUPP ; - } -/* Verify specified event is supported on this PMU */ event_id =get_event (event); if (event_id < SMMU_PMCG_ARCH_MAX_EVENTS &&
drivers/perf/arm_spe_pmu.c +0 -4
@@ -718,10 +718,6 @@ static int arm_spe_pmu_event_init(struct perf_event *event)struct perf_event_attr *attr = &event->attr;struct arm_spe_pmu *spe_pmu =to_spe_pmu (event->pmu); -/* This is, of course, deeply driver-specific */ -if (attr->type != event->pmu->type) -return -ENOENT ; -if (event->cpu >=0 && !cpumask_test_cpu (event->cpu, &spe_pmu->supported_cpus))return -ENOENT ;
drivers/perf/cxl_pmu.c +0 -6
@@ -563,12 +563,6 @@ static int cxl_pmu_event_init(struct perf_event *event)struct cxl_pmu_info *info =pmu_to_cxl_pmu_info (event->pmu);int rc; -/* Top level type sanity check - is this a Hardware Event being requested */ -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -if (is_sampling_event (event) || event->attach_state &PERF_ATTACH_TASK ) -return -EOPNOTSUPP ;/* TODO: Validation of any filter */ /*
drivers/perf/dwc_pcie_pmu.c +0 -11
@@ -355,17 +355,6 @@ static int dwc_pcie_pmu_event_init(struct perf_event *event)enum dwc_pcie_event_type type =DWC_PCIE_EVENT_TYPE (event);u32 lane; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* We don't support sampling */ -if (is_sampling_event (event)) -return -EINVAL ; - -/* We cannot support task bound events */ -if (event->cpu <0 || event->attach_state &PERF_ATTACH_TASK ) -return -EINVAL ; -/* Disallow groups since we can't start/stop/read multiple counters at once */ if (in_hardware_group (event))return -EINVAL ;
drivers/perf/fsl_imx8_ddr_perf.c +0 -11
@@ -401,17 +401,6 @@ static int ddr_perf_event_init(struct perf_event *event)struct hw_perf_event *hwc = &event->hw;struct perf_event *sibling; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -if (is_sampling_event (event) || event->attach_state &PERF_ATTACH_TASK ) -return -EOPNOTSUPP ; - -if (event->cpu <0 ) { -dev_warn (pmu->dev,"Can't provide per-task data!\n" ); -return -EOPNOTSUPP ; - } -if (event != event->group_leader && pmu->devtype_data->quirks &DDR_CAP_AXI_ID_FILTER ) {if (!ddr_perf_filters_compatible (event, event->group_leader))
drivers/perf/fsl_imx9_ddr_perf.c +0 -11
@@ -553,17 +553,6 @@ static int ddr_perf_event_init(struct perf_event *event)struct ddr_pmu *pmu =to_ddr_pmu (event->pmu);struct hw_perf_event *hwc = &event->hw; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -if (is_sampling_event (event) || event->attach_state &PERF_ATTACH_TASK ) -return -EOPNOTSUPP ; - -if (event->cpu <0 ) { -dev_warn (pmu->dev,"Can't provide per-task data!\n" ); -return -EOPNOTSUPP ; - } - event->cpu = pmu->cpu; hwc->idx =-1 ;
drivers/perf/hisilicon/hisi_pcie_pmu.c +0 -8
@@ -378,19 +378,11 @@ static int hisi_pcie_pmu_event_init(struct perf_event *event)struct hisi_pcie_pmu *pcie_pmu =to_pcie_pmu (event->pmu);struct hw_perf_event *hwc = &event->hw; -/* Check the type first before going on, otherwise it's not our event */ -if (event->attr.type != event->pmu->type) -return -ENOENT ; -if (EXT_COUNTER_IS_USED (hisi_pcie_get_event (event))) hwc->event_base =HISI_PCIE_EXT_CNT ;else hwc->event_base =HISI_PCIE_CNT ; -/* Sampling is not supported. */ -if (is_sampling_event (event) || event->attach_state &PERF_ATTACH_TASK ) -return -EOPNOTSUPP ; -if (!hisi_pcie_pmu_valid_filter (event, pcie_pmu))return -EINVAL ;
drivers/perf/hisilicon/hisi_uncore_pmu.c +0 -18
@@ -199,24 +199,6 @@ int hisi_uncore_pmu_event_init(struct perf_event *event)struct hw_perf_event *hwc = &event->hw;struct hisi_pmu *hisi_pmu; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* -* We do not support sampling as the counters are all -* shared by all CPU cores in a CPU die(SCCL). Also we -* do not support attach to a task(per-process mode) -*/ -if (is_sampling_event (event) || event->attach_state &PERF_ATTACH_TASK ) -return -EOPNOTSUPP ; - -/* -* The uncore counters not specific to any CPU, so cannot -* support per-task -*/ -if (event->cpu <0 ) -return -EINVAL ; -/* * Validate if the events in group does not exceed the * available counters in hardware.
drivers/perf/hisilicon/hns3_pmu.c +0 -7
@@ -1233,13 +1233,6 @@ static int hns3_pmu_event_init(struct perf_event *event)int idx;int ret; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* Sampling is not supported */ -if (is_sampling_event (event) || event->attach_state &PERF_ATTACH_TASK ) -return -EOPNOTSUPP ; - event->cpu = hns3_pmu->on_cpu; idx =hns3_pmu_get_event_idx (hns3_pmu);
drivers/perf/marvell_cn10k_ddr_pmu.c +0 -13
@@ -474,19 +474,6 @@ static int cn10k_ddr_perf_event_init(struct perf_event *event)struct cn10k_ddr_pmu *pmu =to_cn10k_ddr_pmu (event->pmu);struct hw_perf_event *hwc = &event->hw; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -if (is_sampling_event (event)) { -dev_info (pmu->dev,"Sampling not supported!\n" ); -return -EOPNOTSUPP ; - } - -if (event->cpu <0 ) { -dev_warn (pmu->dev,"Can't provide per-task data!\n" ); -return -EOPNOTSUPP ; - } -/* Set ownership of event to one CPU, same event can not be observed * on multiple cpus at same time. */
drivers/perf/marvell_cn10k_tad_pmu.c +0 -3
@@ -149,9 +149,6 @@ static int tad_pmu_event_init(struct perf_event *event) {struct tad_pmu *tad_pmu =to_tad_pmu (event->pmu); -if (event->attr.type != event->pmu->type) -return -ENOENT ; -/* Disallow groups since we can't start/stop/read multiple counters at once */ if (in_hardware_group (event))return -EINVAL ;
drivers/perf/marvell_pem_pmu.c +0 -11
@@ -191,20 +191,9 @@ static int pem_perf_event_init(struct perf_event *event)struct pem_pmu *pmu =to_pem_pmu (event->pmu);struct hw_perf_event *hwc = &event->hw; -if (event->attr.type != event->pmu->type) -return -ENOENT ; -if (event->attr.config >=PEM_EVENTIDS_MAX )return -EINVAL ; -if (is_sampling_event (event) || - event->attach_state &PERF_ATTACH_TASK ) { -return -EOPNOTSUPP ; - } - -if (event->cpu <0 ) -return -EOPNOTSUPP ; -/* Disallow groups since we can't start/stop/read multiple counters at once */ if (in_hardware_group (event))return -EINVAL ;
drivers/perf/qcom_l2_pmu.c +0 -15
@@ -442,23 +442,8 @@ static int l2_cache_event_init(struct perf_event *event)struct perf_event *sibling;struct l2cache_pmu *l2cache_pmu; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - l2cache_pmu =to_l2cache_pmu (event->pmu); -if (hwc->sample_period) { -dev_dbg_ratelimited (&l2cache_pmu->pdev->dev, -"Sampling not supported\n" ); -return -EOPNOTSUPP ; - } - -if (event->cpu <0 ) { -dev_dbg_ratelimited (&l2cache_pmu->pdev->dev, -"Per-task mode not supported\n" ); -return -EOPNOTSUPP ; - } -if (((L2_EVT_GROUP (event->attr.config) >L2_EVT_GROUP_MAX ) || ((event->attr.config & ~L2_EVT_MASK ) !=0 )) && (event->attr.config !=L2CYCLE_CTR_RAW_CODE )) {
drivers/perf/qcom_l3_pmu.c +0 -19
@@ -478,25 +478,6 @@ static int qcom_l3_cache__event_init(struct perf_event *event)struct l3cache_pmu *l3pmu =to_l3cache_pmu (event->pmu);struct hw_perf_event *hwc = &event->hw; -/* -* Is the event for this PMU? -*/ -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* -* Sampling not supported since these events are not core-attributable. -*/ -if (hwc->sample_period) -return -EINVAL ; - -/* -* Task mode not available, we run the counters as socket counters, -* not attributable to any CPU and therefore cannot attribute per-task. -*/ -if (event->cpu <0 ) -return -EINVAL ; -/* Validate the group */ if (!qcom_l3_cache__validate_event_group (event))return -EINVAL ;
drivers/perf/starfive_starlink_pmu.c +0 -14
@@ -366,20 +366,6 @@ static int starlink_pmu_event_init(struct perf_event *event)struct starlink_pmu *starlink_pmu =to_starlink_pmu (event->pmu);struct hw_perf_event *hwc = &event->hw; -/* -* Sampling is not supported, as counters are shared -* by all CPU. -*/ -if (hwc->sample_period) -return -EOPNOTSUPP ; - -/* -* Per-task and attach to a task are not supported, -* as uncore events are not specific to any CPU. -*/ -if (event->cpu <0 || event->attach_state &PERF_ATTACH_TASK ) -return -EOPNOTSUPP ; -if (!starlink_pmu_validate_event_group (event))return -EINVAL ;
drivers/perf/thunderx2_pmu.c +0 -15
@@ -553,21 +553,6 @@ static int tx2_uncore_event_init(struct perf_event *event)struct hw_perf_event *hwc = &event->hw;struct tx2_uncore_pmu *tx2_pmu; -/* Test the event attr type check for PMU enumeration */ -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* -* SOC PMU counters are shared across all cores. -* Therefore, it does not support per-process mode. -* Also, it does not support event sampling mode. -*/ -if (is_sampling_event (event) || event->attach_state &PERF_ATTACH_TASK ) -return -EINVAL ; - -if (event->cpu <0 ) -return -EINVAL ; - tx2_pmu =pmu_to_tx2_pmu (event->pmu);if (tx2_pmu->cpu >= nr_cpu_ids)return -EINVAL ;
drivers/perf/xgene_pmu.c +0 -14
@@ -878,20 +878,6 @@ static int xgene_perf_event_init(struct perf_event *event)struct xgene_pmu_dev *pmu_dev =to_pmu_dev (event->pmu);struct hw_perf_event *hw = &event->hw; -/* Test the event attr type check for PMU enumeration */ -if (event->attr.type != event->pmu->type) -return -ENOENT ; - -/* -* SOC PMU counters are shared across all cores. -* Therefore, it does not support per-process mode. -* Also, it does not support event sampling mode. -*/ -if (is_sampling_event (event) || event->attach_state &PERF_ATTACH_TASK ) -return -EINVAL ; - -if (event->cpu <0 ) -return -EINVAL ;/* * Many perf core operations (eg. events rotation) operate on a * single CPU context. This is obvious for CPU PMUs, where one
drivers/powercap/intel_rapl_common.c +0 -7
@@ -1791,17 +1791,10 @@ static int rapl_pmu_event_init(struct perf_event *event)u64 cfg = event->attr.config &RAPL_EVENT_MASK ;int domain, idx; -/* Only look at RAPL events */ -if (event->attr.type != event->pmu->type) -return -ENOENT ; -/* Check for supported events only */ if (!cfg || cfg >=PERF_RAPL_MAX )return -EINVAL ; -if (event->cpu <0 ) -return -EINVAL ; -/* Find out which Package the event belongs to */ list_for_each_entry (pos, &rapl_packages, plist) {if (is_rp_pmu_cpu (pos, event->cpu)) {
Signature · 1 line
2.39.2.101.g768bb238c484.dirty
kernel test robot
build botRe: [PATCH 19/19] perf: Garbage-collect event_init checks
kernel test robot noticed the following build warnings:
Hi Robin,
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on v6.17-rc1 next-20250814]
[cannot apply to perf-tools-next/perf-tools-next tip/perf/core perf-tools/perf-tools acme/perf/core] [If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Robin-Murphy/perf-arm-cmn-Fix-event-validation/20250814-010626 base: linus/master patch link: https://lore.kernel.org/r/ace3532a8a438a96338bf349a27636d8294c7111.1755096883.git.robin.murphy%40arm.com patch subject: [PATCH 19/19] perf: Garbage-collect event_init checks config: i386-randconfig-003-20250814 (https://download.01.org/0day-ci/archive/20250814/[email protected]/config) compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250814/[email protected]/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
All warnings (new ones prefixed by >>):
>> arch/x86/events/intel/uncore_snb.c:905:24: warning: unused variable 'hwc' [-Wunused-variable]
905 | struct hw_perf_event *hwc = &event->hw;
| ^~~1 warning generated.
vim +/hwc +905 arch/x86/events/intel/uncore_snb.c
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 896
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 897 /*
9aae1780e7e81e arch/x86/events/intel/uncore_snb.c Kan Liang 2018-05-03 898 * Keep the custom event_init() function compatible with old event
9aae1780e7e81e arch/x86/events/intel/uncore_snb.c Kan Liang 2018-05-03 899 * encoding for free running counters.
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 900 */
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 901 static int snb_uncore_imc_event_init(struct perf_event *event)
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 902 {
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 903 struct intel_uncore_pmu *pmu;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 904 struct intel_uncore_box *box;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 @905 struct hw_perf_event *hwc = &event->hw;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 906 u64 cfg = event->attr.config & SNB_UNCORE_PCI_IMC_EVENT_MASK;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 907 int idx, base;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 908
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 909 pmu = uncore_event_to_pmu(event);
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 910 /* no device found for this pmu */
3f710be02ea648 arch/x86/events/intel/uncore_snb.c Kan Liang 2025-01-08 911 if (!pmu->registered)
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 912 return -ENOENT;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 913
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 914 /* check only supported bits are set */
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 915 if (event->attr.config & ~SNB_UNCORE_PCI_IMC_EVENT_MASK)
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 916 return -EINVAL;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 917
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 918 box = uncore_pmu_to_box(pmu, event->cpu);
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 919 if (!box || box->cpu < 0)
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 920 return -EINVAL;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 921
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 922 event->cpu = box->cpu;
1f2569fac6c6dd arch/x86/events/intel/uncore_snb.c Thomas Gleixner 2016-02-22 923 event->pmu_private = box;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 924
e64cd6f73ff5a7 arch/x86/events/intel/uncore_snb.c David Carrillo-Cisneros 2016-08-17 925 event->event_caps |= PERF_EV_CAP_READ_ACTIVE_PKG;
e64cd6f73ff5a7 arch/x86/events/intel/uncore_snb.c David Carrillo-Cisneros 2016-08-17 926
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 927 event->hw.idx = -1;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 928 event->hw.last_tag = ~0ULL;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 929 event->hw.extra_reg.idx = EXTRA_REG_NONE;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 930 event->hw.branch_reg.idx = EXTRA_REG_NONE;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 931 /*
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 932 * check event is known (whitelist, determines counter)
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 933 */
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 934 switch (cfg) {
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 935 case SNB_UNCORE_PCI_IMC_DATA_READS:
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 936 base = SNB_UNCORE_PCI_IMC_DATA_READS_BASE;
9aae1780e7e81e arch/x86/events/intel/uncore_snb.c Kan Liang 2018-05-03 937 idx = UNCORE_PMC_IDX_FREERUNNING;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 938 break;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 939 case SNB_UNCORE_PCI_IMC_DATA_WRITES:
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 940 base = SNB_UNCORE_PCI_IMC_DATA_WRITES_BASE;
9aae1780e7e81e arch/x86/events/intel/uncore_snb.c Kan Liang 2018-05-03 941 idx = UNCORE_PMC_IDX_FREERUNNING;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 942 break;
24633d901ea44f arch/x86/events/intel/uncore_snb.c Vaibhav Shankar 2020-08-13 943 case SNB_UNCORE_PCI_IMC_GT_REQUESTS:
24633d901ea44f arch/x86/events/intel/uncore_snb.c Vaibhav Shankar 2020-08-13 944 base = SNB_UNCORE_PCI_IMC_GT_REQUESTS_BASE;
24633d901ea44f arch/x86/events/intel/uncore_snb.c Vaibhav Shankar 2020-08-13 945 idx = UNCORE_PMC_IDX_FREERUNNING;
24633d901ea44f arch/x86/events/intel/uncore_snb.c Vaibhav Shankar 2020-08-13 946 break;
24633d901ea44f arch/x86/events/intel/uncore_snb.c Vaibhav Shankar 2020-08-13 947 case SNB_UNCORE_PCI_IMC_IA_REQUESTS:
24633d901ea44f arch/x86/events/intel/uncore_snb.c Vaibhav Shankar 2020-08-13 948 base = SNB_UNCORE_PCI_IMC_IA_REQUESTS_BASE;
24633d901ea44f arch/x86/events/intel/uncore_snb.c Vaibhav Shankar 2020-08-13 949 idx = UNCORE_PMC_IDX_FREERUNNING;
24633d901ea44f arch/x86/events/intel/uncore_snb.c Vaibhav Shankar 2020-08-13 950 break;
24633d901ea44f arch/x86/events/intel/uncore_snb.c Vaibhav Shankar 2020-08-13 951 case SNB_UNCORE_PCI_IMC_IO_REQUESTS:
24633d901ea44f arch/x86/events/intel/uncore_snb.c Vaibhav Shankar 2020-08-13 952 base = SNB_UNCORE_PCI_IMC_IO_REQUESTS_BASE;
24633d901ea44f arch/x86/events/intel/uncore_snb.c Vaibhav Shankar 2020-08-13 953 idx = UNCORE_PMC_IDX_FREERUNNING;
24633d901ea44f arch/x86/events/intel/uncore_snb.c Vaibhav Shankar 2020-08-13 954 break;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 955 default:
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 956 return -EINVAL;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 957 }
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 958
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 959 /* must be done before validate_group */
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 960 event->hw.event_base = base;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 961 event->hw.idx = idx;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 962
8041ffd36f42d8 arch/x86/events/intel/uncore_snb.c Kan Liang 2019-02-27 963 /* Convert to standard encoding format for freerunning counters */
8041ffd36f42d8 arch/x86/events/intel/uncore_snb.c Kan Liang 2019-02-27 964 event->hw.config = ((cfg - 1) << 8) | 0x10ff;
8041ffd36f42d8 arch/x86/events/intel/uncore_snb.c Kan Liang 2019-02-27 965
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 966 /* no group validation needed, we have free running counters */
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 967
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 968 return 0;
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 969 }
92807ffdf32c38 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c Yan, Zheng 2014-07-30 970 Signature · 2 lines
0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
kernel test robot
build botRe: [PATCH 19/19] perf: Garbage-collect event_init checks
In reply to Robin Murphykernel test robot noticed "BUG:unable_to_handle_page_fault_for_address" on:
Hello,
kernel test robot noticed "BUG:unable_to_handle_page_fault_for_address" on:
commit: 1ba20479196e5af3ebbedf9321de6b26f2a0cdd3 ("[PATCH 19/19] perf: Garbage-collect event_init checks")
url: https://github.com/intel-lab-lkp/linux/commits/Robin-Murphy/perf-arm-cmn-Fix-event-validation/20250814-010626
base: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git 91325f31afc1026de28665cf1a7b6e157fa4d39d patch link: https://lore.kernel.org/all/ace3532a8a438a96338bf349a27636d8294c7111.1755096883.git.robin.murphy@arm.com/
patch subject: [PATCH 19/19] perf: Garbage-collect event_init checks
in testcase: perf-sanity-tests
version:
with following parameters:
perf_compiler: clang group: group-02
config: x86_64-rhel-9.4-bpf
compiler: gcc-12
test machine: 8 threads 1 sockets Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz (Kaby Lake) with 32G memory
(please refer to attached dmesg/kmsg for entire log/backtrace)
If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-lkp/[email protected]
[ 307.132412][ T7614] BUG: unable to handle page fault for address: ffffffff8674015c [ 307.140048][ T7614] #PF: supervisor read access in kernel mode [ 307.145926][ T7614] #PF: error_code(0x0000) - not-present page [ 307.151801][ T7614] PGD 819477067 P4D 819477067 PUD 819478063 PMD 1002c3063 PTE 800ffff7e48bf062 [ 307.160663][ T7614] Oops: Oops: 0000 [#1] SMP KASAN PTI [ 307.165931][ T7614] CPU: 0 UID: 0 PID: 7614 Comm: perf Tainted: G I 6.17.0-rc1-00048-g1ba20479196e #1 PREEMPT(voluntary) [ 307.178456][ T7614] Tainted: [I]=FIRMWARE_WORKAROUND [ 307.183459][ T7614] Hardware name: Dell Inc. OptiPlex 7050/062KRH, BIOS 1.2.0 12/22/2016 [ 307.191609][ T7614] RIP: 0010:uncore_pmu_event_init (arch/x86/events/intel/uncore.c:141 arch/x86/events/intel/uncore.c:739) intel_uncore [ 307.198867][ T7614] Code: c1 4c 63 ab 0c 03 00 00 4a 8d 3c ed a0 3e c8 83 e8 17 de 3a c1 4e 03 24 ed a0 3e c8 83 49 8d bc 24 fc 00 00 00 e8 a2 dc 3a c1 <45> 8b a4 24 fc 00 00 00 44 3b 25 03 3d 35 00 0f 83 5b 04 00 00 48 All code ======== 0: c1 4c 63 ab 0c rorl $0xc,-0x55(%rbx,%riz,2) 5: 03 00 add (%rax),%eax 7: 00 4a 8d add %cl,-0x73(%rdx) a: 3c ed cmp $0xed,%al
c: a0 3e c8 83 e8 17 de movabs 0xc13ade17e883c83e,%al
13: 3a c1
15: 4e 03 24 ed a0 3e c8 add -0x7c37c160(,%r13,8),%r12
1c: 83
1d: 49 8d bc 24 fc 00 00 lea 0xfc(%r12),%rdi
24: 00
25: e8 a2 dc 3a c1 call 0xffffffffc13adccc
2a:* 45 8b a4 24 fc 00 00 mov 0xfc(%r12),%r12d <-- trapping instruction
31: 00
32: 44 3b 25 03 3d 35 00 cmp 0x353d03(%rip),%r12d # 0x353d3c
39: 0f 83 5b 04 00 00 jae 0x49a
3f: 48 rex.W
Code starting with the faulting instruction
===========================================
0: 45 8b a4 24 fc 00 00 mov 0xfc(%r12),%r12d
7: 00
8: 44 3b 25 03 3d 35 00 cmp 0x353d03(%rip),%r12d # 0x353d12
f: 0f 83 5b 04 00 00 jae 0x470
15: 48 rex.W
[ 307.218475][ T7614] RSP: 0018:ffff8881b30ef8d8 EFLAGS: 00010246 [ 307.224450][ T7614] RAX: 0000000000000000 RBX: ffff8881193547b8 RCX: dffffc0000000000 [ 307.232353][ T7614] RDX: 0000000000000007 RSI: ffffffffc05230ae RDI: ffffffff8674015c [ 307.240255][ T7614] RBP: ffff88810468d000 R08: 0000000000000000 R09: fffffbfff0ae31b4 [ 307.248151][ T7614] R10: ffffffff85718da7 R11: 0000000067e9e64c R12: ffffffff86740060 [ 307.256042][ T7614] R13: ffffffffffffffff R14: ffff888119354890 R15: ffffffff81727da9 [ 307.263933][ T7614] FS: 00007f54bdb88880(0000) GS:ffff8887a24e8000(0000) knlGS:0000000000000000 [ 307.272787][ T7614] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 307.279279][ T7614] CR2: ffffffff8674015c CR3: 00000002e3e06003 CR4: 00000000003726f0 [ 307.287168][ T7614] Call Trace: [ 307.290337][ T7614] <TASK> [ 307.293157][ T7614] ? perf_init_event (include/linux/rcupdate.h:331 include/linux/rcupdate.h:841 include/linux/rcupdate.h:1155 kernel/events/core.c:12690) [ 307.298005][ T7614] perf_try_init_event (kernel/events/core.c:12579) [ 307.303538][ T7614] ? perf_init_event (include/linux/rcupdate.h:331 include/linux/rcupdate.h:841 include/linux/rcupdate.h:1155 kernel/events/core.c:12690) [ 307.308370][ T7614] perf_init_event (kernel/events/core.c:12697) [ 307.313031][ T7614] perf_event_alloc (kernel/events/core.c:12972) [ 307.317862][ T7614] ? __pfx_perf_event_output_forward (kernel/events/core.c:8496) [ 307.323919][ T7614] ? __lock_release+0x5d/0x160 [ 307.329194][ T7614] __do_sys_perf_event_open (kernel/events/core.c:13492) [ 307.334732][ T7614] ? __pfx___do_sys_perf_event_open (kernel/events/core.c:13374) [ 307.340702][ T7614] ? trace_contention_end (include/trace/events/lock.h:122 (discriminator 21)) [ 307.345808][ T7614] ? lock_acquire (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5870 kernel/locking/lockdep.c:5825) [ 307.350379][ T7614] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 307.354947][ T7614] ? rcu_is_watching (arch/x86/include/asm/atomic.h:23 include/linux/atomic/atomic-arch-fallback.h:457 include/linux/context_tracking.h:128 kernel/rcu/tree.c:751) [ 307.359623][ T7614] do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) [ 307.364020][ T7614] ? __do_sys_perf_event_open (include/linux/srcu.h:167 include/linux/srcu.h:375 include/linux/srcu.h:479 kernel/events/core.c:13454) [ 307.369726][ T7614] ? __lock_release+0x5d/0x160 [ 307.375006][ T7614] ? __do_sys_perf_event_open (include/linux/srcu.h:167 include/linux/srcu.h:375 include/linux/srcu.h:479 kernel/events/core.c:13454) [ 307.380713][ T7614] ? lock_release (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5891) [ 307.385194][ T7614] ? __srcu_read_unlock (kernel/rcu/srcutree.c:770) [ 307.390112][ T7614] ? __do_sys_perf_event_open (include/linux/srcu.h:377 include/linux/srcu.h:479 kernel/events/core.c:13454) [ 307.395823][ T7614] ? __pfx___do_sys_perf_event_open (kernel/events/core.c:13374) [ 307.401798][ T7614] ? rcu_is_watching (arch/x86/include/asm/atomic.h:23 include/linux/atomic/atomic-arch-fallback.h:457 include/linux/context_tracking.h:128 kernel/rcu/tree.c:751) [ 307.406455][ T7614] ? trace_irq_enable+0xac/0xe0 [ 307.412248][ T7614] ? rcu_is_watching (arch/x86/include/asm/atomic.h:23 include/linux/atomic/atomic-arch-fallback.h:457 include/linux/context_tracking.h:128 kernel/rcu/tree.c:751) [ 307.416904][ T7614] ? trace_irq_enable+0xac/0xe0 [ 307.422698][ T7614] ? rcu_is_watching (arch/x86/include/asm/atomic.h:23 include/linux/atomic/atomic-arch-fallback.h:457 include/linux/context_tracking.h:128 kernel/rcu/tree.c:751) [ 307.427355][ T7614] ? trace_irq_enable+0xac/0xe0 [ 307.433149][ T7614] ? do_syscall_64 (arch/x86/entry/syscall_64.c:113) [ 307.437808][ T7614] ? handle_mm_fault (include/linux/rcupdate.h:341 include/linux/rcupdate.h:871 include/linux/memcontrol.h:981 include/linux/memcontrol.h:987 mm/memory.c:6229 mm/memory.c:6390) [ 307.442652][ T7614] ? __lock_release+0x5d/0x160 [ 307.447923][ T7614] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 307.452491][ T7614] ? rcu_is_watching (arch/x86/include/asm/atomic.h:23 include/linux/atomic/atomic-arch-fallback.h:457 include/linux/context_tracking.h:128 kernel/rcu/tree.c:751) [ 307.457151][ T7614] ? trace_irq_enable+0xac/0xe0 [ 307.462954][ T7614] ? do_syscall_64 (arch/x86/entry/syscall_64.c:113) [ 307.467631][ T7614] ? lock_release (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5891) [ 307.472122][ T7614] ? do_user_addr_fault (arch/x86/include/asm/atomic.h:93 include/linux/atomic/atomic-arch-fallback.h:949 include/linux/atomic/atomic-instrumented.h:401 include/linux/refcount.h:389 include/linux/refcount.h:432 include/linux/mmap_lock.h:143 include/linux/mmap_lock.h:267 arch/x86/mm/fault.c:1338) [ 307.477225][ T7614] ? rcu_is_watching (arch/x86/include/asm/atomic.h:23 include/linux/atomic/atomic-arch-fallback.h:457 include/linux/context_tracking.h:128 kernel/rcu/tree.c:751) [ 307.481892][ T7614] ? trace_irq_enable+0xac/0xe0 [ 307.487692][ T7614] ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4351 kernel/locking/lockdep.c:4410) [ 307.493487][ T7614] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) [ 307.499281][ T7614] RIP: 0033:0x7f54c9b4d719 [ 307.503585][ T7614] Code: 08 89 e8 5b 5d c3 66 2e 0f 1f 84 00 00 00 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d b7 06 0d 00 f7 d8 64 89 01 48
All code
========
0: 08 89 e8 5b 5d c3 or %cl,-0x3ca2a418(%rcx)
6: 66 2e 0f 1f 84 00 00 cs nopw 0x0(%rax,%rax,1)
d: 00 00 00
10: 90 nop 11: 48 89 f8 mov %rdi,%rax 14: 48 89 f7 mov %rsi,%rdi 17: 48 89 d6 mov %rdx,%rsi 1a: 48 89 ca mov %rcx,%rdx 1d: 4d 89 c2 mov %r8,%r10 20: 4d 89 c8 mov %r9,%r8 23: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 28: 0f 05 syscall 2a:* 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax <-- trapping instruction 30: 73 01 jae 0x33 32: c3 ret 33: 48 8b 0d b7 06 0d 00 mov 0xd06b7(%rip),%rcx # 0xd06f1 3a: f7 d8 neg %eax 3c: 64 89 01 mov %eax,%fs:(%rcx)
3f: 48 rex.W
Code starting with the faulting instruction
===========================================
0: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax 6: 73 01 jae 0x9 8: c3 ret 9: 48 8b 0d b7 06 0d 00 mov 0xd06b7(%rip),%rcx # 0xd06c7 10: f7 d8 neg %eax 12: 64 89 01 mov %eax,%fs:(%rcx)
15: 48 rex.W
The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20250819/[email protected]
Signature · 2 lines
0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
Robin Murphy
maintainerRe: [PATCH 19/19] perf: Garbage-collect event_init checks
Quoted 11 lines · kernel test robot
Hello,
kernel test robot noticed "BUG:unable_to_handle_page_fault_for_address" on:
commit:
1ba20479196e5af3ebbedf9321de6b26f2a0cdd3("[PATCH 19/19] perf: Garbage-collectevent_initchecks")
url: https://github.com/intel-lab-lkp/linux/commits/Robin-Murphy/perf-arm-cmn-Fix-event-validation/20250814-010626
base: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git91325f31afc1026de28665cf1a7b6e157fa4d39dpatch link: https://lore.kernel.org/all/ace3532a8a438a96338bf349a27636d8294c7111.1755096883.git.robin.murphy@arm.com/
patch subject: [PATCH 19/19] perf: Garbage-collectevent_initchecks
OK, after looking a bit more deeply at x86 and PowerPC, I think it probably is nicest to solve this commonly too. Below is what I've cooked up for a v2 (I'll save reposting the whole series this soon...)
Thanks,
Robin.
----->8-----
Subject: [PATCH 18.5/19] perf: Add common uncore-CPU check
Many uncore drivers depend on event->cpu being valid in order to look up various data in their event_init call. Since we've now factored out common PMU identification, we can factor out this check in the correct order too. While it might technically be possible to hoist the general task/cgroup check up here now, that would be horribly messy, so for clarity let's keep these as distinct (albeit related) concerns.
--- kernel/events/core.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)
kernel/events/core.c +11 -1
@@ -12562,6 +12562,11 @@ static bool is_raw_pmu(const struct pmu *pmu) pmu->capabilities &PERF_PMU_CAP_RAW_EVENTS ; } +static bool is_uncore_pmu (const struct pmu *pmu) +{ +return pmu->task_ctx_nr == perf_invalid_context; +} +static int perf_try_init_event (struct pmu *pmu,struct perf_event *event) {struct perf_event_context *ctx =NULL ;
@@ -12571,11 +12576,16 @@ static int perf_try_init_event(struct pmu *pmu, struct perf_event *event)* Before touching anything, we can safely skip: * - any event for a specific PMU which is not this one * - any common event if this PMU doesn't support them +* - non-CPU-bound uncore events (so drivers can assume event->cpu is +* valid; we'll check the actual task/cgroup attach state later) */ if (event->attr.type != pmu->type && (event->attr.type >=PERF_TYPE_MAX || !is_raw_pmu (pmu)))return -ENOENT ; +if (is_uncore_pmu (pmu) && event->cpu <0 ) +return -EINVAL ; +if (!try_module_get (pmu->module))return -ENODEV ;
@@ -12990,7 +13000,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,* events (they don't make sense as the cgroup will be different * on other CPUs in the uncore mask). */ -if (pmu->task_ctx_nr == perf_invalid_context && (task || cgroup_fd !=-1 )) +if (is_uncore_pmu (pmu) && (task || cgroup_fd !=-1 ))return ERR_PTR (-EINVAL ); if (event->attr.aux_output &&
Robin Murphy
maintainerRe: [PATCH 19/19] perf: Garbage-collect event_init checks
In reply to Robin MurphyOn 13/08/2025 6:01 pm, Robin Murphy wrote:
[...]
Quoted 16 lines
arch/x86/events/intel/uncore.c +0
-3@@ -731,24 +731,11 @@ static int uncore_pmu_event_init(struct perf_event *event)struct hw_perf_event *hwc = &event->hw;int ret; -if (event->attr.type != event->pmu->type) -return -ENOENT ; - pmu =uncore_event_to_pmu (event);/* no device found for this pmu */ if (!pmu->registered)return -ENOENT ;
arch/x86/events/intel/uncore.c static int uncore_pmu_event_init(struct perf_event *event) · line 751
Quoted 10 lines
arch/x86/events/intel/uncore.c +0
-10-/* Sampling not supported yet */ -if (hwc->sample_period) -return -EINVAL ; - -/* -* Place all uncore events for a particular physical package -* onto a single cpu -*/ -if (event->cpu <0 ) -return -EINVAL ;
Oopsie, I missed that this isn't just the usual boilerplate as the comment kind of implies, but is also necessary to prevent the uncore_pmu_to_box() lookup going wrong (since the core code won't reject a task-bound event until later). I'll put this back with an updated comment for v2 (and double-check everything else again...), thanks LKP!
Robin.
Quoted 3 lines
arch/x86/events/intel/uncore.c +0
-0box =uncore_pmu_to_box (pmu, event->cpu);if (!box || box->cpu <0 )return -EINVAL ;
Patchwork
CI✗ CI.checkpatch: warning for perf: Rework event_init checks
In reply to Robin Murphy== Series Details ==
== Series Details ==
Series: perf: Rework event_init checks
URL : https://patchwork.freedesktop.org/series/152905/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master 6f9293a391ff3c575bc021f454be5d0a0c076f57
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 201dab03ecbb775fefedeeb4ed1ebda1f60ae05e
Author: Robin Murphy <[email protected]> Date: Wed Aug 13 18:01:11 2025 +0100
perf: Garbage-collect event_init checks
All these boilerplate event_init checks are now redundant. Of course many of them were already redundant, or done in the wrong order so as to be pointless, and what we don't see here is all the ones which were missing, but have now been implicitly gained thanks to some of these new core code behaviours. In summary:
- event->attr.type
Now only relevant to PERF_TYPE_RAW PMUs or those advertising PERF_PMU_CAP_RAW_EVENTS.
- event->cpu < 0
Already rejected by perf_event_alloc() unless a task is passed, wherein that will also set PERF_ATTACH_TASK prior to reaching perf_init_event(), so is always redundant with...
- PERF_ATTACH_TASK
Since at least commit bd2756811766 ("perf: Rewrite core context handling"), only relevant to PMUs using perf_hw_context or perf_sw_context; for uncore PMUs this is covered by perf_event_alloc() again, right after perf_init_event() returns, by virtue of the same non-NULL task which caused attach_state to be set in the first place.
- is_sampling_event() (and variations)
Now only relevant to PMUs advertising PERF_PMU_CAP_SAMPLING.
- has_branch_stack()
Now doubly-illogical for PMUs which never supported sampling anyway.
+ /mt/dim checkpatch b6d374ca303d7b9f6456bc6db0cfe6e4d30bf472 drm-intelf2510528d114 perf/arm-cmn: Fix event validationa8b32cbc44fb perf/hisilicon: Fix group validation46c68a589f98 perf/imx8_ddr: Fix group validation00b38ea06851 perf/starfive: Fix group validation059c36130466 iommu/vt-d: Fix perfmon group validationb0a3f6c5c0c7 ARM: l2x0: Fix group validation468d1a0405e3 ARM: imx: Fix MMDC PMU group validation3bc63977115b perf/arm_smmu_v3: Improve group validation3e9ca1d977ac perf/qcom: Improve group validation
-:74: CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around 'event->group_leader->pmu == event->pmu' #74: FILE: drivers/perf/qcom_l2_pmu.c:497:
+ if ((event->group_leader->pmu == event->pmu) &&
(L2_EVT_GROUP(event->group_leader->attr.config) ==
L2_EVT_GROUP(event->attr.config))) {
-:84: CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around 'sibling->pmu == event->pmu' #84: FILE: drivers/perf/qcom_l2_pmu.c:508:
+ if ((sibling->pmu == event->pmu) &&
(L2_EVT_GROUP(sibling->attr.config) ==
L2_EVT_GROUP(event->attr.config))) {
total: 0 errors, 0 warnings, 2 checks, 101 lines checked 73ed423dfebe perf/arm-ni: Improve event validation fc684823da8b perf/arm-cci: Tidy up event validation a8ce748ce2b0 perf: Ignore event state for group validation a84d3f1d9bec perf: Add helper for checking grouped events 20d0bcc872bb perf: Clean up redundant group validation dd6dae6fc884 perf: Simplify group validation b96da25d1084 perf: Introduce positive capability for sampling a6cea8900044 perf: Retire PERF_PMU_CAP_NO_INTERRUPT e3388d0671f5 perf: Introduce positive capability for raw events 201dab03ecbb perf: Garbage-collect event_init checks
Patchwork
CI✓ CI.KUnit: success for perf: Rework event_init checks
In reply to Robin Murphy== Series Details ==
== Series Details ==
Series: perf: Rework event_init checks
URL : https://patchwork.freedesktop.org/series/152905/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig [17:09:06] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig [17:09:10] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48 [17:09:39] Starting KUnit Kernel (1/1)... [17:09:39] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [17:09:39] ================== guc_buf (11 subtests) =================== [17:09:39] [PASSED] test_smallest [17:09:39] [PASSED] test_largest [17:09:39] [PASSED] test_granular [17:09:39] [PASSED] test_unique [17:09:39] [PASSED] test_overlap [17:09:39] [PASSED] test_reusable [17:09:39] [PASSED] test_too_big [17:09:39] [PASSED] test_flush [17:09:39] [PASSED] test_lookup [17:09:39] [PASSED] test_data [17:09:39] [PASSED] test_class [17:09:39] ===================== [PASSED] guc_buf ===================== [17:09:39] =================== guc_dbm (7 subtests) =================== [17:09:39] [PASSED] test_empty [17:09:39] [PASSED] test_default [17:09:39] ======================== test_size ======================== [17:09:39] [PASSED] 4 [17:09:39] [PASSED] 8 [17:09:39] [PASSED] 32 [17:09:39] [PASSED] 256 [17:09:39] ==================== [PASSED] test_size ==================== [17:09:39] ======================= test_reuse ======================== [17:09:39] [PASSED] 4 [17:09:39] [PASSED] 8 [17:09:39] [PASSED] 32 [17:09:39] [PASSED] 256 [17:09:39] =================== [PASSED] test_reuse ==================== [17:09:39] =================== test_range_overlap ==================== [17:09:39] [PASSED] 4 [17:09:39] [PASSED] 8 [17:09:39] [PASSED] 32 [17:09:39] [PASSED] 256 [17:09:39] =============== [PASSED] test_range_overlap ================ [17:09:39] =================== test_range_compact ==================== [17:09:39] [PASSED] 4 [17:09:39] [PASSED] 8 [17:09:39] [PASSED] 32 [17:09:39] [PASSED] 256 [17:09:39] =============== [PASSED] test_range_compact ================ [17:09:39] ==================== test_range_spare ===================== [17:09:39] [PASSED] 4 [17:09:39] [PASSED] 8 [17:09:39] [PASSED] 32 [17:09:39] [PASSED] 256 [17:09:39] ================ [PASSED] test_range_spare ================= [17:09:39] ===================== [PASSED] guc_dbm ===================== [17:09:39] =================== guc_idm (6 subtests) =================== [17:09:39] [PASSED] bad_init [17:09:39] [PASSED] no_init [17:09:39] [PASSED] init_fini [17:09:39] [PASSED] check_used [17:09:39] [PASSED] check_quota [17:09:39] [PASSED] check_all [17:09:39] ===================== [PASSED] guc_idm ===================== [17:09:39] ================== no_relay (3 subtests) =================== [17:09:39] [PASSED] xe_drops_guc2pf_if_not_ready [17:09:39] [PASSED] xe_drops_guc2vf_if_not_ready [17:09:39] [PASSED] xe_rejects_send_if_not_ready [17:09:39] ==================== [PASSED] no_relay ===================== [17:09:39] ================== pf_relay (14 subtests) ================== [17:09:39] [PASSED] pf_rejects_guc2pf_too_short [17:09:39] [PASSED] pf_rejects_guc2pf_too_long [17:09:39] [PASSED] pf_rejects_guc2pf_no_payload [17:09:39] [PASSED] pf_fails_no_payload [17:09:39] [PASSED] pf_fails_bad_origin [17:09:39] [PASSED] pf_fails_bad_type [17:09:39] [PASSED] pf_txn_reports_error [17:09:39] [PASSED] pf_txn_sends_pf2guc [17:09:39] [PASSED] pf_sends_pf2guc [17:09:39] [SKIPPED] pf_loopback_nop [17:09:39] [SKIPPED] pf_loopback_echo [17:09:39] [SKIPPED] pf_loopback_fail [17:09:39] [SKIPPED] pf_loopback_busy [17:09:39] [SKIPPED] pf_loopback_retry [17:09:39] ==================== [PASSED] pf_relay ===================== [17:09:39] ================== vf_relay (3 subtests) =================== [17:09:39] [PASSED] vf_rejects_guc2vf_too_short [17:09:39] [PASSED] vf_rejects_guc2vf_too_long [17:09:39] [PASSED] vf_rejects_guc2vf_no_payload [17:09:39] ==================== [PASSED] vf_relay ===================== [17:09:39] ===================== lmtt (1 subtest) ===================== [17:09:39] ======================== test_ops ========================= [17:09:39] [PASSED] 2-level [17:09:39] [PASSED] multi-level [17:09:39] ==================== [PASSED] test_ops ===================== [17:09:39] ====================== [PASSED] lmtt ======================= [17:09:39] ================= pf_service (11 subtests) ================= [17:09:39] [PASSED] pf_negotiate_any [17:09:39] [PASSED] pf_negotiate_base_match [17:09:39] [PASSED] pf_negotiate_base_newer [17:09:39] [PASSED] pf_negotiate_base_next [17:09:39] [SKIPPED] pf_negotiate_base_older [17:09:39] [PASSED] pf_negotiate_base_prev [17:09:39] [PASSED] pf_negotiate_latest_match [17:09:39] [PASSED] pf_negotiate_latest_newer [17:09:39] [PASSED] pf_negotiate_latest_next [17:09:39] [SKIPPED] pf_negotiate_latest_older [17:09:39] [SKIPPED] pf_negotiate_latest_prev [17:09:39] =================== [PASSED] pf_service ==================== [17:09:39] =================== xe_mocs (2 subtests) =================== [17:09:39] ================ xe_live_mocs_kernel_kunit ================ [17:09:39] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============ [17:09:39] ================ xe_live_mocs_reset_kunit ================= [17:09:39] ============ [SKIPPED] xe_live_mocs_reset_kunit ============ [17:09:39] ==================== [SKIPPED] xe_mocs ===================== [17:09:39] ================= xe_migrate (2 subtests) ================== [17:09:39] ================= xe_migrate_sanity_kunit ================= [17:09:39] ============ [SKIPPED] xe_migrate_sanity_kunit ============= [17:09:39] ================== xe_validate_ccs_kunit ================== [17:09:39] ============= [SKIPPED] xe_validate_ccs_kunit ============== [17:09:39] =================== [SKIPPED] xe_migrate =================== [17:09:39] ================== xe_dma_buf (1 subtest) ================== [17:09:39] ==================== xe_dma_buf_kunit ===================== [17:09:39] ================ [SKIPPED] xe_dma_buf_kunit ================ [17:09:39] =================== [SKIPPED] xe_dma_buf =================== [17:09:39] ================= xe_bo_shrink (1 subtest) ================= [17:09:39] =================== xe_bo_shrink_kunit ==================== [17:09:39] =============== [SKIPPED] xe_bo_shrink_kunit =============== [17:09:39] ================== [SKIPPED] xe_bo_shrink ================== [17:09:39] ==================== xe_bo (2 subtests) ==================== [17:09:39] ================== xe_ccs_migrate_kunit =================== [17:09:39] ============== [SKIPPED] xe_ccs_migrate_kunit ============== [17:09:39] ==================== xe_bo_evict_kunit ==================== [17:09:39] =============== [SKIPPED] xe_bo_evict_kunit ================ [17:09:39] ===================== [SKIPPED] xe_bo ====================== [17:09:39] ==================== args (11 subtests) ==================== [17:09:39] [PASSED] count_args_test [17:09:39] [PASSED] call_args_example [17:09:39] [PASSED] call_args_test [17:09:39] [PASSED] drop_first_arg_example [17:09:39] [PASSED] drop_first_arg_test [17:09:39] [PASSED] first_arg_example [17:09:39] [PASSED] first_arg_test [17:09:39] [PASSED] last_arg_example [17:09:39] [PASSED] last_arg_test [17:09:39] [PASSED] pick_arg_example [17:09:39] [PASSED] sep_comma_example [17:09:39] ====================== [PASSED] args ======================= [17:09:39] =================== xe_pci (3 subtests) ==================== [17:09:39] ==================== check_graphics_ip ==================== [17:09:39] [PASSED] 12.70 Xe_LPG [17:09:39] [PASSED] 12.71 Xe_LPG [17:09:39] [PASSED] 12.74 Xe_LPG+ [17:09:39] [PASSED] 20.01 Xe2_HPG [17:09:39] [PASSED] 20.02 Xe2_HPG [17:09:39] [PASSED] 20.04 Xe2_LPG [17:09:39] [PASSED] 30.00 Xe3_LPG [17:09:39] [PASSED] 30.01 Xe3_LPG [17:09:39] [PASSED] 30.03 Xe3_LPG [17:09:39] ================ [PASSED] check_graphics_ip ================ [17:09:39] ===================== check_media_ip ====================== [17:09:39] [PASSED] 13.00 Xe_LPM+ [17:09:39] [PASSED] 13.01 Xe2_HPM [17:09:39] [PASSED] 20.00 Xe2_LPM [17:09:39] [PASSED] 30.00 Xe3_LPM [17:09:39] [PASSED] 30.02 Xe3_LPM [17:09:39] ================= [PASSED] check_media_ip ================== [17:09:39] ================= check_platform_gt_count ================= [17:09:39] [PASSED] 0x9A60 (TIGERLAKE) [17:09:39] [PASSED] 0x9A68 (TIGERLAKE) [17:09:39] [PASSED] 0x9A70 (TIGERLAKE) [17:09:39] [PASSED] 0x9A40 (TIGERLAKE) [17:09:39] [PASSED] 0x9A49 (TIGERLAKE) [17:09:39] [PASSED] 0x9A59 (TIGERLAKE) [17:09:39] [PASSED] 0x9A78 (TIGERLAKE) [17:09:39] [PASSED] 0x9AC0 (TIGERLAKE) [17:09:39] [PASSED] 0x9AC9 (TIGERLAKE) [17:09:39] [PASSED] 0x9AD9 (TIGERLAKE) [17:09:39] [PASSED] 0x9AF8 (TIGERLAKE) [17:09:39] [PASSED] 0x4C80 (ROCKETLAKE) [17:09:39] [PASSED] 0x4C8A (ROCKETLAKE) [17:09:39] [PASSED] 0x4C8B (ROCKETLAKE) [17:09:39] [PASSED] 0x4C8C (ROCKETLAKE) [17:09:39] [PASSED] 0x4C90 (ROCKETLAKE) [17:09:39] [PASSED] 0x4C9A (ROCKETLAKE) [17:09:39] [PASSED] 0x4680 (ALDERLAKE_S) [17:09:39] [PASSED] 0x4682 (ALDERLAKE_S) [17:09:39] [PASSED] 0x4688 (ALDERLAKE_S) [17:09:39] [PASSED] 0x468A (ALDERLAKE_S) [17:09:39] [PASSED] 0x468B (ALDERLAKE_S) [17:09:39] [PASSED] 0x4690 (ALDERLAKE_S) [17:09:39] [PASSED] 0x4692 (ALDERLAKE_S) [17:09:39] [PASSED] 0x4693 (ALDERLAKE_S) [17:09:39] [PASSED] 0x46A0 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46A1 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46A2 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46A3 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46A6 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46A8 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46AA (ALDERLAKE_P) [17:09:39] [PASSED] 0x462A (ALDERLAKE_P) [17:09:39] [PASSED] 0x4626 (ALDERLAKE_P) [17:09:39] [PASSED] 0x4628 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46B0 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46B1 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46B2 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46B3 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46C0 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46C1 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46C2 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46C3 (ALDERLAKE_P) [17:09:39] [PASSED] 0x46D0 (ALDERLAKE_N) [17:09:39] [PASSED] 0x46D1 (ALDERLAKE_N) [17:09:39] [PASSED] 0x46D2 (ALDERLAKE_N) [17:09:39] [PASSED] 0x46D3 (ALDERLAKE_N) [17:09:39] [PASSED] 0x46D4 (ALDERLAKE_N) [17:09:39] [PASSED] 0xA721 (ALDERLAKE_P) [17:09:39] [PASSED] 0xA7A1 (ALDERLAKE_P) [17:09:39] [PASSED] 0xA7A9 (ALDERLAKE_P) [17:09:39] [PASSED] 0xA7AC (ALDERLAKE_P) [17:09:39] [PASSED] 0xA7AD (ALDERLAKE_P) [17:09:39] [PASSED] 0xA720 (ALDERLAKE_P) [17:09:39] [PASSED] 0xA7A0 (ALDERLAKE_P) [17:09:39] [PASSED] 0xA7A8 (ALDERLAKE_P) [17:09:39] [PASSED] 0xA7AA (ALDERLAKE_P) [17:09:39] [PASSED] 0xA7AB (ALDERLAKE_P) [17:09:39] [PASSED] 0xA780 (ALDERLAKE_S) [17:09:39] [PASSED] 0xA781 (ALDERLAKE_S) [17:09:39] [PASSED] 0xA782 (ALDERLAKE_S) [17:09:39] [PASSED] 0xA783 (ALDERLAKE_S) [17:09:39] [PASSED] 0xA788 (ALDERLAKE_S) [17:09:39] [PASSED] 0xA789 (ALDERLAKE_S) [17:09:39] [PASSED] 0xA78A (ALDERLAKE_S) [17:09:39] [PASSED] 0xA78B (ALDERLAKE_S) [17:09:39] [PASSED] 0x4905 (DG1) [17:09:39] [PASSED] 0x4906 (DG1) [17:09:39] [PASSED] 0x4907 (DG1) [17:09:39] [PASSED] 0x4908 (DG1) [17:09:39] [PASSED] 0x4909 (DG1) [17:09:39] [PASSED] 0x56C0 (DG2) [17:09:39] [PASSED] 0x56C2 (DG2) [17:09:39] [PASSED] 0x56C1 (DG2) [17:09:39] [PASSED] 0x7D51 (METEORLAKE) [17:09:39] [PASSED] 0x7DD1 (METEORLAKE) [17:09:39] [PASSED] 0x7D41 (METEORLAKE) [17:09:39] [PASSED] 0x7D67 (METEORLAKE) [17:09:39] [PASSED] 0xB640 (METEORLAKE) [17:09:39] [PASSED] 0x56A0 (DG2) [17:09:39] [PASSED] 0x56A1 (DG2) [17:09:39] [PASSED] 0x56A2 (DG2) [17:09:39] [PASSED] 0x56BE (DG2) [17:09:39] [PASSED] 0x56BF (DG2) [17:09:39] [PASSED] 0x5690 (DG2) [17:09:39] [PASSED] 0x5691 (DG2) [17:09:39] [PASSED] 0x5692 (DG2) [17:09:39] [PASSED] 0x56A5 (DG2) [17:09:39] [PASSED] 0x56A6 (DG2) [17:09:39] [PASSED] 0x56B0 (DG2) [17:09:39] [PASSED] 0x56B1 (DG2) [17:09:39] [PASSED] 0x56BA (DG2) [17:09:39] [PASSED] 0x56BB (DG2) [17:09:39] [PASSED] 0x56BC (DG2) [17:09:39] [PASSED] 0x56BD (DG2) [17:09:39] [PASSED] 0x5693 (DG2) [17:09:39] [PASSED] 0x5694 (DG2) [17:09:39] [PASSED] 0x5695 (DG2) [17:09:39] [PASSED] 0x56A3 (DG2) [17:09:39] [PASSED] 0x56A4 (DG2) [17:09:39] [PASSED] 0x56B2 (DG2) [17:09:39] [PASSED] 0x56B3 (DG2) [17:09:39] [PASSED] 0x5696 (DG2) [17:09:39] [PASSED] 0x5697 (DG2) [17:09:39] [PASSED] 0xB69 (PVC) [17:09:39] [PASSED] 0xB6E (PVC) [17:09:39] [PASSED] 0xBD4 (PVC) [17:09:39] [PASSED] 0xBD5 (PVC) [17:09:39] [PASSED] 0xBD6 (PVC) [17:09:39] [PASSED] 0xBD7 (PVC) [17:09:39] [PASSED] 0xBD8 (PVC) [17:09:39] [PASSED] 0xBD9 (PVC) [17:09:39] [PASSED] 0xBDA (PVC) [17:09:39] [PASSED] 0xBDB (PVC) [17:09:39] [PASSED] 0xBE0 (PVC) [17:09:39] [PASSED] 0xBE1 (PVC) [17:09:39] [PASSED] 0xBE5 (PVC) [17:09:39] [PASSED] 0x7D40 (METEORLAKE) [17:09:39] [PASSED] 0x7D45 (METEORLAKE) [17:09:39] [PASSED] 0x7D55 (METEORLAKE) [17:09:39] [PASSED] 0x7D60 (METEORLAKE) [17:09:39] [PASSED] 0x7DD5 (METEORLAKE) [17:09:39] [PASSED] 0x6420 (LUNARLAKE) [17:09:39] [PASSED] 0x64A0 (LUNARLAKE) [17:09:39] [PASSED] 0x64B0 (LUNARLAKE) [17:09:39] [PASSED] 0xE202 (BATTLEMAGE) [17:09:39] [PASSED] 0xE209 (BATTLEMAGE) [17:09:39] [PASSED] 0xE20B (BATTLEMAGE) [17:09:39] [PASSED] 0xE20C (BATTLEMAGE) [17:09:39] [PASSED] 0xE20D (BATTLEMAGE) [17:09:39] [PASSED] 0xE210 (BATTLEMAGE) [17:09:39] [PASSED] 0xE211 (BATTLEMAGE) [17:09:39] [PASSED] 0xE212 (BATTLEMAGE) [17:09:39] [PASSED] 0xE216 (BATTLEMAGE) [17:09:39] [PASSED] 0xE220 (BATTLEMAGE) [17:09:39] [PASSED] 0xE221 (BATTLEMAGE) [17:09:39] [PASSED] 0xE222 (BATTLEMAGE) [17:09:39] [PASSED] 0xE223 (BATTLEMAGE) [17:09:39] [PASSED] 0xB080 (PANTHERLAKE) [17:09:39] [PASSED] 0xB081 (PANTHERLAKE) [17:09:39] [PASSED] 0xB082 (PANTHERLAKE) [17:09:39] [PASSED] 0xB083 (PANTHERLAKE) [17:09:39] [PASSED] 0xB084 (PANTHERLAKE) [17:09:39] [PASSED] 0xB085 (PANTHERLAKE) [17:09:39] [PASSED] 0xB086 (PANTHERLAKE) [17:09:39] [PASSED] 0xB087 (PANTHERLAKE) [17:09:39] [PASSED] 0xB08F (PANTHERLAKE) [17:09:39] [PASSED] 0xB090 (PANTHERLAKE) [17:09:39] [PASSED] 0xB0A0 (PANTHERLAKE) [17:09:39] [PASSED] 0xB0B0 (PANTHERLAKE) [17:09:39] [PASSED] 0xFD80 (PANTHERLAKE) [17:09:39] [PASSED] 0xFD81 (PANTHERLAKE) [17:09:39] ============= [PASSED] check_platform_gt_count ============= [17:09:39] ===================== [PASSED] xe_pci ====================== [17:09:39] =================== xe_rtp (2 subtests) ==================== [17:09:39] =============== xe_rtp_process_to_sr_tests ================ [17:09:39] [PASSED] coalesce-same-reg [17:09:39] [PASSED] no-match-no-add [17:09:39] [PASSED] match-or [17:09:39] [PASSED] match-or-xfail [17:09:39] [PASSED] no-match-no-add-multiple-rules [17:09:39] [PASSED] two-regs-two-entries [17:09:39] [PASSED] clr-one-set-other [17:09:39] [PASSED] set-field [17:09:39] [PASSED] conflict-duplicate [17:09:39] [PASSED] conflict-not-disjoint [17:09:39] [PASSED] conflict-reg-type [17:09:39] =========== [PASSED] xe_rtp_process_to_sr_tests ============ [17:09:39] ================== xe_rtp_process_tests =================== [17:09:39] [PASSED] active1 [17:09:39] [PASSED] active2 [17:09:39] [PASSED] active-inactive [17:09:39] [PASSED] inactive-active [17:09:39] [PASSED] inactive-1st_or_active-inactive [17:09:39] [PASSED] inactive-2nd_or_active-inactive [17:09:39] [PASSED] inactive-last_or_active-inactive [17:09:39] [PASSED] inactive-no_or_active-inactive [17:09:39] ============== [PASSED] xe_rtp_process_tests =============== [17:09:39] ===================== [PASSED] xe_rtp ====================== [17:09:39] ==================== xe_wa (1 subtest) ===================== [17:09:39] ======================== xe_wa_gt ========================= [17:09:39] [PASSED] TIGERLAKE (B0) [17:09:39] [PASSED] DG1 (A0) [17:09:39] [PASSED] DG1 (B0) [17:09:39] [PASSED] ALDERLAKE_S (A0) [17:09:39] [PASSED] ALDERLAKE_S (B0) [17:09:39] [PASSED] ALDERLAKE_S (C0) [17:09:39] [PASSED] ALDERLAKE_S (D0) [17:09:39] [PASSED] ALDERLAKE_P (A0) [17:09:39] [PASSED] ALDERLAKE_P (B0) [17:09:39] [PASSED] ALDERLAKE_P (C0) [17:09:39] [PASSED] ALDERLAKE_S_RPLS (D0) [17:09:39] [PASSED] ALDERLAKE_P_RPLU (E0) [17:09:39] [PASSED] DG2_G10 (C0) [17:09:39] [PASSED] DG2_G11 (B1) [17:09:39] [PASSED] DG2_G12 (A1) [17:09:39] [PASSED] METEORLAKE (g:A0, m:A0) [17:09:39] [PASSED] METEORLAKE (g:A0, m:A0) [17:09:39] [PASSED] METEORLAKE (g:A0, m:A0) [17:09:39] [PASSED] LUNARLAKE (g:A0, m:A0) [17:09:39] [PASSED] LUNARLAKE (g:B0, m:A0) stty: 'standard input': Inappropriate ioctl for device [17:09:39] [PASSED] BATTLEMAGE (g:A0, m:A1) [17:09:39] ==================== [PASSED] xe_wa_gt ===================== [17:09:39] ====================== [PASSED] xe_wa ====================== [17:09:39] ============================================================ [17:09:39] Testing complete. Ran 297 tests: passed: 281, skipped: 16 [17:09:39] Elapsed time: 33.425s total, 4.207s configuring, 28.852s building, 0.324s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig [17:09:39] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig [17:09:41] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48 [17:10:04] Starting KUnit Kernel (1/1)... [17:10:04] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [17:10:04] == drm_test_atomic_get_connector_for_encoder (1 subtest) === [17:10:04] [PASSED] drm_test_drm_atomic_get_connector_for_encoder [17:10:04] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ==== [17:10:04] =========== drm_validate_clone_mode (2 subtests) =========== [17:10:04] ============== drm_test_check_in_clone_mode =============== [17:10:04] [PASSED] in_clone_mode [17:10:04] [PASSED] not_in_clone_mode [17:10:04] ========== [PASSED] drm_test_check_in_clone_mode =========== [17:10:04] =============== drm_test_check_valid_clones =============== [17:10:04] [PASSED] not_in_clone_mode [17:10:04] [PASSED] valid_clone [17:10:04] [PASSED] invalid_clone [17:10:04] =========== [PASSED] drm_test_check_valid_clones =========== [17:10:04] ============= [PASSED] drm_validate_clone_mode ============= [17:10:04] ============= drm_validate_modeset (1 subtest) ============= [17:10:04] [PASSED] drm_test_check_connector_changed_modeset [17:10:04] ============== [PASSED] drm_validate_modeset =============== [17:10:04] ====== drm_test_bridge_get_current_state (2 subtests) ====== [17:10:04] [PASSED] drm_test_drm_bridge_get_current_state_atomic [17:10:04] [PASSED] drm_test_drm_bridge_get_current_state_legacy [17:10:04] ======== [PASSED] drm_test_bridge_get_current_state ======== [17:10:04] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ====== [17:10:04] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic [17:10:04] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled [17:10:04] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy [17:10:04] ======== [PASSED] drm_test_bridge_helper_reset_crtc ======== [17:10:04] ============== drm_bridge_alloc (2 subtests) =============== [17:10:04] [PASSED] drm_test_drm_bridge_alloc_basic [17:10:04] [PASSED] drm_test_drm_bridge_alloc_get_put [17:10:04] ================ [PASSED] drm_bridge_alloc ================= [17:10:04] ================== drm_buddy (7 subtests) ================== [17:10:04] [PASSED] drm_test_buddy_alloc_limit [17:10:04] [PASSED] drm_test_buddy_alloc_optimistic [17:10:04] [PASSED] drm_test_buddy_alloc_pessimistic [17:10:04] [PASSED] drm_test_buddy_alloc_pathological [17:10:04] [PASSED] drm_test_buddy_alloc_contiguous [17:10:04] [PASSED] drm_test_buddy_alloc_clear [17:10:04] [PASSED] drm_test_buddy_alloc_range_bias [17:10:04] ==================== [PASSED] drm_buddy ==================== [17:10:04] ============= drm_cmdline_parser (40 subtests) ============= [17:10:04] [PASSED] drm_test_cmdline_force_d_only [17:10:04] [PASSED] drm_test_cmdline_force_D_only_dvi [17:10:04] [PASSED] drm_test_cmdline_force_D_only_hdmi [17:10:04] [PASSED] drm_test_cmdline_force_D_only_not_digital [17:10:04] [PASSED] drm_test_cmdline_force_e_only [17:10:04] [PASSED] drm_test_cmdline_res [17:10:04] [PASSED] drm_test_cmdline_res_vesa [17:10:04] [PASSED] drm_test_cmdline_res_vesa_rblank [17:10:04] [PASSED] drm_test_cmdline_res_rblank [17:10:04] [PASSED] drm_test_cmdline_res_bpp [17:10:04] [PASSED] drm_test_cmdline_res_refresh [17:10:04] [PASSED] drm_test_cmdline_res_bpp_refresh [17:10:04] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced [17:10:04] [PASSED] drm_test_cmdline_res_bpp_refresh_margins [17:10:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off [17:10:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on [17:10:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog [17:10:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital [17:10:04] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on [17:10:04] [PASSED] drm_test_cmdline_res_margins_force_on [17:10:04] [PASSED] drm_test_cmdline_res_vesa_margins [17:10:04] [PASSED] drm_test_cmdline_name [17:10:04] [PASSED] drm_test_cmdline_name_bpp [17:10:04] [PASSED] drm_test_cmdline_name_option [17:10:04] [PASSED] drm_test_cmdline_name_bpp_option [17:10:04] [PASSED] drm_test_cmdline_rotate_0 [17:10:04] [PASSED] drm_test_cmdline_rotate_90 [17:10:04] [PASSED] drm_test_cmdline_rotate_180 [17:10:04] [PASSED] drm_test_cmdline_rotate_270 [17:10:04] [PASSED] drm_test_cmdline_hmirror [17:10:04] [PASSED] drm_test_cmdline_vmirror [17:10:04] [PASSED] drm_test_cmdline_margin_options [17:10:04] [PASSED] drm_test_cmdline_multiple_options [17:10:04] [PASSED] drm_test_cmdline_bpp_extra_and_option [17:10:04] [PASSED] drm_test_cmdline_extra_and_option [17:10:04] [PASSED] drm_test_cmdline_freestanding_options [17:10:04] [PASSED] drm_test_cmdline_freestanding_force_e_and_options [17:10:04] [PASSED] drm_test_cmdline_panel_orientation [17:10:04] ================ drm_test_cmdline_invalid ================= [17:10:04] [PASSED] margin_only [17:10:04] [PASSED] interlace_only [17:10:04] [PASSED] res_missing_x [17:10:04] [PASSED] res_missing_y [17:10:04] [PASSED] res_bad_y [17:10:04] [PASSED] res_missing_y_bpp [17:10:04] [PASSED] res_bad_bpp [17:10:04] [PASSED] res_bad_refresh [17:10:04] [PASSED] res_bpp_refresh_force_on_off [17:10:04] [PASSED] res_invalid_mode [17:10:04] [PASSED] res_bpp_wrong_place_mode [17:10:04] [PASSED] name_bpp_refresh [17:10:04] [PASSED] name_refresh [17:10:04] [PASSED] name_refresh_wrong_mode [17:10:04] [PASSED] name_refresh_invalid_mode [17:10:04] [PASSED] rotate_multiple [17:10:04] [PASSED] rotate_invalid_val [17:10:04] [PASSED] rotate_truncated [17:10:04] [PASSED] invalid_option [17:10:04] [PASSED] invalid_tv_option [17:10:04] [PASSED] truncated_tv_option [17:10:04] ============ [PASSED] drm_test_cmdline_invalid ============= [17:10:04] =============== drm_test_cmdline_tv_options =============== [17:10:04] [PASSED] NTSC [17:10:04] [PASSED] NTSC_443 [17:10:04] [PASSED] NTSC_J [17:10:04] [PASSED] PAL [17:10:04] [PASSED] PAL_M [17:10:04] [PASSED] PAL_N [17:10:04] [PASSED] SECAM [17:10:04] [PASSED] MONO_525 [17:10:04] [PASSED] MONO_625 [17:10:04] =========== [PASSED] drm_test_cmdline_tv_options =========== [17:10:04] =============== [PASSED] drm_cmdline_parser ================ [17:10:04] ========== drmm_connector_hdmi_init (20 subtests) ========== [17:10:04] [PASSED] drm_test_connector_hdmi_init_valid [17:10:04] [PASSED] drm_test_connector_hdmi_init_bpc_8 [17:10:04] [PASSED] drm_test_connector_hdmi_init_bpc_10 [17:10:04] [PASSED] drm_test_connector_hdmi_init_bpc_12 [17:10:04] [PASSED] drm_test_connector_hdmi_init_bpc_invalid [17:10:04] [PASSED] drm_test_connector_hdmi_init_bpc_null [17:10:04] [PASSED] drm_test_connector_hdmi_init_formats_empty [17:10:04] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb [17:10:04] === drm_test_connector_hdmi_init_formats_yuv420_allowed === [17:10:04] [PASSED] supported_formats=0x9 yuv420_allowed=1 [17:10:04] [PASSED] supported_formats=0x9 yuv420_allowed=0 [17:10:04] [PASSED] supported_formats=0x3 yuv420_allowed=1 [17:10:04] [PASSED] supported_formats=0x3 yuv420_allowed=0 [17:10:04] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed === [17:10:04] [PASSED] drm_test_connector_hdmi_init_null_ddc [17:10:04] [PASSED] drm_test_connector_hdmi_init_null_product [17:10:04] [PASSED] drm_test_connector_hdmi_init_null_vendor [17:10:04] [PASSED] drm_test_connector_hdmi_init_product_length_exact [17:10:04] [PASSED] drm_test_connector_hdmi_init_product_length_too_long [17:10:04] [PASSED] drm_test_connector_hdmi_init_product_valid [17:10:04] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact [17:10:04] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long [17:10:04] [PASSED] drm_test_connector_hdmi_init_vendor_valid [17:10:04] ========= drm_test_connector_hdmi_init_type_valid ========= [17:10:04] [PASSED] HDMI-A [17:10:04] [PASSED] HDMI-B [17:10:04] ===== [PASSED] drm_test_connector_hdmi_init_type_valid ===== [17:10:04] ======== drm_test_connector_hdmi_init_type_invalid ======== [17:10:04] [PASSED] Unknown [17:10:04] [PASSED] VGA [17:10:04] [PASSED] DVI-I [17:10:04] [PASSED] DVI-D [17:10:04] [PASSED] DVI-A [17:10:04] [PASSED] Composite [17:10:04] [PASSED] SVIDEO [17:10:04] [PASSED] LVDS [17:10:04] [PASSED] Component [17:10:04] [PASSED] DIN [17:10:04] [PASSED] DP [17:10:04] [PASSED] TV [17:10:04] [PASSED] eDP [17:10:04] [PASSED] Virtual [17:10:04] [PASSED] DSI [17:10:04] [PASSED] DPI [17:10:04] [PASSED] Writeback [17:10:04] [PASSED] SPI [17:10:04] [PASSED] USB [17:10:04] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ==== [17:10:04] ============ [PASSED] drmm_connector_hdmi_init ============= [17:10:04] ============= drmm_connector_init (3 subtests) ============= [17:10:04] [PASSED] drm_test_drmm_connector_init [17:10:04] [PASSED] drm_test_drmm_connector_init_null_ddc [17:10:04] ========= drm_test_drmm_connector_init_type_valid ========= [17:10:04] [PASSED] Unknown [17:10:04] [PASSED] VGA [17:10:04] [PASSED] DVI-I [17:10:04] [PASSED] DVI-D [17:10:04] [PASSED] DVI-A [17:10:04] [PASSED] Composite [17:10:04] [PASSED] SVIDEO [17:10:04] [PASSED] LVDS [17:10:04] [PASSED] Component [17:10:04] [PASSED] DIN [17:10:04] [PASSED] DP [17:10:04] [PASSED] HDMI-A [17:10:04] [PASSED] HDMI-B [17:10:04] [PASSED] TV [17:10:04] [PASSED] eDP [17:10:04] [PASSED] Virtual [17:10:04] [PASSED] DSI [17:10:04] [PASSED] DPI [17:10:04] [PASSED] Writeback [17:10:04] [PASSED] SPI [17:10:04] [PASSED] USB [17:10:04] ===== [PASSED] drm_test_drmm_connector_init_type_valid ===== [17:10:04] =============== [PASSED] drmm_connector_init =============== [17:10:04] ========= drm_connector_dynamic_init (6 subtests) ========== [17:10:04] [PASSED] drm_test_drm_connector_dynamic_init [17:10:04] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc [17:10:04] [PASSED] drm_test_drm_connector_dynamic_init_not_added [17:10:04] [PASSED] drm_test_drm_connector_dynamic_init_properties [17:10:04] ===== drm_test_drm_connector_dynamic_init_type_valid ====== [17:10:04] [PASSED] Unknown [17:10:04] [PASSED] VGA [17:10:04] [PASSED] DVI-I [17:10:04] [PASSED] DVI-D [17:10:04] [PASSED] DVI-A [17:10:04] [PASSED] Composite [17:10:04] [PASSED] SVIDEO [17:10:04] [PASSED] LVDS [17:10:04] [PASSED] Component [17:10:04] [PASSED] DIN [17:10:04] [PASSED] DP [17:10:04] [PASSED] HDMI-A [17:10:04] [PASSED] HDMI-B [17:10:04] [PASSED] TV [17:10:04] [PASSED] eDP [17:10:04] [PASSED] Virtual [17:10:04] [PASSED] DSI [17:10:04] [PASSED] DPI [17:10:04] [PASSED] Writeback [17:10:04] [PASSED] SPI [17:10:04] [PASSED] USB [17:10:04] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid == [17:10:04] ======== drm_test_drm_connector_dynamic_init_name ========= [17:10:04] [PASSED] Unknown [17:10:04] [PASSED] VGA [17:10:04] [PASSED] DVI-I [17:10:04] [PASSED] DVI-D [17:10:04] [PASSED] DVI-A [17:10:04] [PASSED] Composite [17:10:04] [PASSED] SVIDEO [17:10:04] [PASSED] LVDS [17:10:04] [PASSED] Component [17:10:04] [PASSED] DIN [17:10:04] [PASSED] DP [17:10:04] [PASSED] HDMI-A [17:10:04] [PASSED] HDMI-B [17:10:04] [PASSED] TV [17:10:04] [PASSED] eDP [17:10:04] [PASSED] Virtual [17:10:04] [PASSED] DSI [17:10:04] [PASSED] DPI [17:10:04] [PASSED] Writeback [17:10:04] [PASSED] SPI [17:10:04] [PASSED] USB [17:10:04] ==== [PASSED] drm_test_drm_connector_dynamic_init_name ===== [17:10:04] =========== [PASSED] drm_connector_dynamic_init ============ [17:10:04] ==== drm_connector_dynamic_register_early (4 subtests) ===== [17:10:04] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list [17:10:04] [PASSED] drm_test_drm_connector_dynamic_register_early_defer [17:10:04] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init [17:10:04] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object [17:10:04] ====== [PASSED] drm_connector_dynamic_register_early ======= [17:10:04] ======= drm_connector_dynamic_register (7 subtests) ======== [17:10:04] [PASSED] drm_test_drm_connector_dynamic_register_on_list [17:10:04] [PASSED] drm_test_drm_connector_dynamic_register_no_defer [17:10:04] [PASSED] drm_test_drm_connector_dynamic_register_no_init [17:10:04] [PASSED] drm_test_drm_connector_dynamic_register_mode_object [17:10:04] [PASSED] drm_test_drm_connector_dynamic_register_sysfs [17:10:04] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name [17:10:04] [PASSED] drm_test_drm_connector_dynamic_register_debugfs [17:10:04] ========= [PASSED] drm_connector_dynamic_register ========== [17:10:04] = drm_connector_attach_broadcast_rgb_property (2 subtests) = [17:10:04] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property [17:10:04] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector [17:10:04] === [PASSED] drm_connector_attach_broadcast_rgb_property === [17:10:04] ========== drm_get_tv_mode_from_name (2 subtests) ========== [17:10:04] ========== drm_test_get_tv_mode_from_name_valid =========== [17:10:04] [PASSED] NTSC [17:10:04] [PASSED] NTSC-443 [17:10:04] [PASSED] NTSC-J [17:10:04] [PASSED] PAL [17:10:04] [PASSED] PAL-M [17:10:04] [PASSED] PAL-N [17:10:04] [PASSED] SECAM [17:10:04] [PASSED] Mono [17:10:04] ====== [PASSED] drm_test_get_tv_mode_from_name_valid ======= [17:10:04] [PASSED] drm_test_get_tv_mode_from_name_truncated [17:10:04] ============ [PASSED] drm_get_tv_mode_from_name ============ [17:10:04] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) = [17:10:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb [17:10:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc [17:10:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1 [17:10:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc [17:10:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1 [17:10:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double [17:10:04] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid = [17:10:04] [PASSED] VIC 96 [17:10:04] [PASSED] VIC 97 [17:10:04] [PASSED] VIC 101 [17:10:04] [PASSED] VIC 102 [17:10:04] [PASSED] VIC 106 [17:10:04] [PASSED] VIC 107 [17:10:04] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid === [17:10:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc [17:10:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc [17:10:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc [17:10:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc [17:10:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc [17:10:04] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ==== [17:10:04] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) == [17:10:04] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ==== [17:10:04] [PASSED] Automatic [17:10:04] [PASSED] Full [17:10:04] [PASSED] Limited 16:235 [17:10:04] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name === [17:10:04] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid [17:10:04] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ==== [17:10:04] == drm_hdmi_connector_get_output_format_name (2 subtests) == [17:10:04] === drm_test_drm_hdmi_connector_get_output_format_name ==== [17:10:04] [PASSED] RGB [17:10:04] [PASSED] YUV 4:2:0 [17:10:04] [PASSED] YUV 4:2:2 [17:10:04] [PASSED] YUV 4:4:4 [17:10:04] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name === [17:10:04] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid [17:10:04] ==== [PASSED] drm_hdmi_connector_get_output_format_name ==== [17:10:04] ============= drm_damage_helper (21 subtests) ============== [17:10:04] [PASSED] drm_test_damage_iter_no_damage [17:10:04] [PASSED] drm_test_damage_iter_no_damage_fractional_src [17:10:04] [PASSED] drm_test_damage_iter_no_damage_src_moved [17:10:04] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved [17:10:04] [PASSED] drm_test_damage_iter_no_damage_not_visible [17:10:04] [PASSED] drm_test_damage_iter_no_damage_no_crtc [17:10:04] [PASSED] drm_test_damage_iter_no_damage_no_fb [17:10:04] [PASSED] drm_test_damage_iter_simple_damage [17:10:04] [PASSED] drm_test_damage_iter_single_damage [17:10:04] [PASSED] drm_test_damage_iter_single_damage_intersect_src [17:10:04] [PASSED] drm_test_damage_iter_single_damage_outside_src [17:10:04] [PASSED] drm_test_damage_iter_single_damage_fractional_src [17:10:04] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src [17:10:04] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src [17:10:04] [PASSED] drm_test_damage_iter_single_damage_src_moved [17:10:04] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved [17:10:04] [PASSED] drm_test_damage_iter_damage [17:10:04] [PASSED] drm_test_damage_iter_damage_one_intersect [17:10:04] [PASSED] drm_test_damage_iter_damage_one_outside [17:10:04] [PASSED] drm_test_damage_iter_damage_src_moved [17:10:04] [PASSED] drm_test_damage_iter_damage_not_visible [17:10:04] ================ [PASSED] drm_damage_helper ================ [17:10:04] ============== drm_dp_mst_helper (3 subtests) ============== [17:10:04] ============== drm_test_dp_mst_calc_pbn_mode ============== [17:10:04] [PASSED] Clock 154000 BPP 30 DSC disabled [17:10:04] [PASSED] Clock 234000 BPP 30 DSC disabled [17:10:04] [PASSED] Clock 297000 BPP 24 DSC disabled [17:10:04] [PASSED] Clock 332880 BPP 24 DSC enabled [17:10:04] [PASSED] Clock 324540 BPP 24 DSC enabled [17:10:04] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ========== [17:10:04] ============== drm_test_dp_mst_calc_pbn_div =============== [17:10:04] [PASSED] Link rate 2000000 lane count 4 [17:10:04] [PASSED] Link rate 2000000 lane count 2 [17:10:04] [PASSED] Link rate 2000000 lane count 1 [17:10:04] [PASSED] Link rate 1350000 lane count 4 [17:10:04] [PASSED] Link rate 1350000 lane count 2 [17:10:04] [PASSED] Link rate 1350000 lane count 1 [17:10:04] [PASSED] Link rate 1000000 lane count 4 [17:10:04] [PASSED] Link rate 1000000 lane count 2 [17:10:04] [PASSED] Link rate 1000000 lane count 1 [17:10:04] [PASSED] Link rate 810000 lane count 4 [17:10:04] [PASSED] Link rate 810000 lane count 2 [17:10:04] [PASSED] Link rate 810000 lane count 1 [17:10:04] [PASSED] Link rate 540000 lane count 4 [17:10:04] [PASSED] Link rate 540000 lane count 2 [17:10:04] [PASSED] Link rate 540000 lane count 1 [17:10:04] [PASSED] Link rate 270000 lane count 4 [17:10:04] [PASSED] Link rate 270000 lane count 2 [17:10:04] [PASSED] Link rate 270000 lane count 1 [17:10:04] [PASSED] Link rate 162000 lane count 4 [17:10:04] [PASSED] Link rate 162000 lane count 2 [17:10:04] [PASSED] Link rate 162000 lane count 1 [17:10:04] ========== [PASSED] drm_test_dp_mst_calc_pbn_div =========== [17:10:04] ========= drm_test_dp_mst_sideband_msg_req_decode ========= [17:10:04] [PASSED] DP_ENUM_PATH_RESOURCES with port number [17:10:04] [PASSED] DP_POWER_UP_PHY with port number [17:10:04] [PASSED] DP_POWER_DOWN_PHY with port number [17:10:04] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks [17:10:04] [PASSED] DP_ALLOCATE_PAYLOAD with port number [17:10:04] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI [17:10:04] [PASSED] DP_ALLOCATE_PAYLOAD with PBN [17:10:04] [PASSED] DP_QUERY_PAYLOAD with port number [17:10:04] [PASSED] DP_QUERY_PAYLOAD with VCPI [17:10:04] [PASSED] DP_REMOTE_DPCD_READ with port number [17:10:04] [PASSED] DP_REMOTE_DPCD_READ with DPCD address [17:10:04] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes [17:10:04] [PASSED] DP_REMOTE_DPCD_WRITE with port number [17:10:04] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address [17:10:04] [PASSED] DP_REMOTE_DPCD_WRITE with data array [17:10:04] [PASSED] DP_REMOTE_I2C_READ with port number [17:10:04] [PASSED] DP_REMOTE_I2C_READ with I2C device ID [17:10:04] [PASSED] DP_REMOTE_I2C_READ with transactions array [17:10:04] [PASSED] DP_REMOTE_I2C_WRITE with port number [17:10:04] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID [17:10:04] [PASSED] DP_REMOTE_I2C_WRITE with data array [17:10:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID [17:10:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID [17:10:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event [17:10:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event [17:10:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior [17:10:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior [17:10:04] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode ===== [17:10:04] ================ [PASSED] drm_dp_mst_helper ================ [17:10:04] ================== drm_exec (7 subtests) =================== [17:10:04] [PASSED] sanitycheck [17:10:04] [PASSED] test_lock [17:10:04] [PASSED] test_lock_unlock [17:10:04] [PASSED] test_duplicates [17:10:04] [PASSED] test_prepare [17:10:04] [PASSED] test_prepare_array [17:10:04] [PASSED] test_multiple_loops [17:10:04] ==================== [PASSED] drm_exec ===================== [17:10:04] =========== drm_format_helper_test (17 subtests) =========== [17:10:04] ============== drm_test_fb_xrgb8888_to_gray8 ============== [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ========== [17:10:04] ============= drm_test_fb_xrgb8888_to_rgb332 ============== [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ========== [17:10:04] ============= drm_test_fb_xrgb8888_to_rgb565 ============== [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ========== [17:10:04] ============ drm_test_fb_xrgb8888_to_xrgb1555 ============= [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 ========= [17:10:04] ============ drm_test_fb_xrgb8888_to_argb1555 ============= [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 ========= [17:10:04] ============ drm_test_fb_xrgb8888_to_rgba5551 ============= [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 ========= [17:10:04] ============= drm_test_fb_xrgb8888_to_rgb888 ============== [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ========== [17:10:04] ============= drm_test_fb_xrgb8888_to_bgr888 ============== [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ========== [17:10:04] ============ drm_test_fb_xrgb8888_to_argb8888 ============= [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 ========= [17:10:04] =========== drm_test_fb_xrgb8888_to_xrgb2101010 =========== [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 ======= [17:10:04] =========== drm_test_fb_xrgb8888_to_argb2101010 =========== [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 ======= [17:10:04] ============== drm_test_fb_xrgb8888_to_mono =============== [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ========== [PASSED] drm_test_fb_xrgb8888_to_mono =========== [17:10:04] ==================== drm_test_fb_swab ===================== [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ================ [PASSED] drm_test_fb_swab ================= [17:10:04] ============ drm_test_fb_xrgb8888_to_xbgr8888 ============= [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 ========= [17:10:04] ============ drm_test_fb_xrgb8888_to_abgr8888 ============= [17:10:04] [PASSED] single_pixel_source_buffer [17:10:04] [PASSED] single_pixel_clip_rectangle [17:10:04] [PASSED] well_known_colors [17:10:04] [PASSED] destination_pitch [17:10:04] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 ========= [17:10:04] ================= drm_test_fb_clip_offset ================= [17:10:04] [PASSED] pass through [17:10:04] [PASSED] horizontal offset [17:10:04] [PASSED] vertical offset [17:10:04] [PASSED] horizontal and vertical offset [17:10:04] [PASSED] horizontal offset (custom pitch) [17:10:04] [PASSED] vertical offset (custom pitch) [17:10:04] [PASSED] horizontal and vertical offset (custom pitch) [17:10:04] ============= [PASSED] drm_test_fb_clip_offset ============= [17:10:04] =================== drm_test_fb_memcpy ==================== [17:10:04] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258) [17:10:04] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258) [17:10:04] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559) [17:10:04] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258) [17:10:04] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258) [17:10:04] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559) [17:10:04] [PASSED] well_known_colors: XB24 little-endian (0x34324258) [17:10:04] [PASSED] well_known_colors: XRA8 little-endian (0x38415258) [17:10:04] [PASSED] well_known_colors: YU24 little-endian (0x34325559) [17:10:04] [PASSED] destination_pitch: XB24 little-endian (0x34324258) [17:10:04] [PASSED] destination_pitch: XRA8 little-endian (0x38415258) [17:10:04] [PASSED] destination_pitch: YU24 little-endian (0x34325559) [17:10:04] =============== [PASSED] drm_test_fb_memcpy ================ [17:10:04] ============= [PASSED] drm_format_helper_test ============== [17:10:04] ================= drm_format (18 subtests) ================= [17:10:04] [PASSED] drm_test_format_block_width_invalid [17:10:04] [PASSED] drm_test_format_block_width_one_plane [17:10:04] [PASSED] drm_test_format_block_width_two_plane [17:10:04] [PASSED] drm_test_format_block_width_three_plane [17:10:04] [PASSED] drm_test_format_block_width_tiled [17:10:04] [PASSED] drm_test_format_block_height_invalid [17:10:04] [PASSED] drm_test_format_block_height_one_plane [17:10:04] [PASSED] drm_test_format_block_height_two_plane [17:10:04] [PASSED] drm_test_format_block_height_three_plane [17:10:04] [PASSED] drm_test_format_block_height_tiled [17:10:04] [PASSED] drm_test_format_min_pitch_invalid [17:10:04] [PASSED] drm_test_format_min_pitch_one_plane_8bpp [17:10:04] [PASSED] drm_test_format_min_pitch_one_plane_16bpp [17:10:04] [PASSED] drm_test_format_min_pitch_one_plane_24bpp [17:10:04] [PASSED] drm_test_format_min_pitch_one_plane_32bpp [17:10:04] [PASSED] drm_test_format_min_pitch_two_plane [17:10:04] [PASSED] drm_test_format_min_pitch_three_plane_8bpp [17:10:04] [PASSED] drm_test_format_min_pitch_tiled [17:10:04] =================== [PASSED] drm_format ==================== [17:10:04] ============== drm_framebuffer (10 subtests) =============== [17:10:04] ========== drm_test_framebuffer_check_src_coords ========== [17:10:04] [PASSED] Success: source fits into fb [17:10:04] [PASSED] Fail: overflowing fb with x-axis coordinate [17:10:04] [PASSED] Fail: overflowing fb with y-axis coordinate [17:10:04] [PASSED] Fail: overflowing fb with source width [17:10:04] [PASSED] Fail: overflowing fb with source height [17:10:04] ====== [PASSED] drm_test_framebuffer_check_src_coords ====== [17:10:04] [PASSED] drm_test_framebuffer_cleanup [17:10:04] =============== drm_test_framebuffer_create =============== [17:10:04] [PASSED] ABGR8888 normal sizes [17:10:04] [PASSED] ABGR8888 max sizes [17:10:04] [PASSED] ABGR8888 pitch greater than min required [17:10:04] [PASSED] ABGR8888 pitch less than min required [17:10:04] [PASSED] ABGR8888 Invalid width [17:10:04] [PASSED] ABGR8888 Invalid buffer handle [17:10:04] [PASSED] No pixel format [17:10:04] [PASSED] ABGR8888 Width 0 [17:10:04] [PASSED] ABGR8888 Height 0 [17:10:04] [PASSED] ABGR8888 Out of bound height * pitch combination [17:10:04] [PASSED] ABGR8888 Large buffer offset [17:10:04] [PASSED] ABGR8888 Buffer offset for inexistent plane [17:10:04] [PASSED] ABGR8888 Invalid flag [17:10:04] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers [17:10:04] [PASSED] ABGR8888 Valid buffer modifier [17:10:04] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE) [17:10:04] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS [17:10:04] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS [17:10:04] [PASSED] NV12 Normal sizes [17:10:04] [PASSED] NV12 Max sizes [17:10:04] [PASSED] NV12 Invalid pitch [17:10:04] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag [17:10:04] [PASSED] NV12 different modifier per-plane [17:10:04] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE [17:10:04] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS [17:10:04] [PASSED] NV12 Modifier for inexistent plane [17:10:04] [PASSED] NV12 Handle for inexistent plane [17:10:04] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS [17:10:04] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier [17:10:04] [PASSED] YVU420 Normal sizes [17:10:04] [PASSED] YVU420 Max sizes [17:10:04] [PASSED] YVU420 Invalid pitch [17:10:04] [PASSED] YVU420 Different pitches [17:10:04] [PASSED] YVU420 Different buffer offsets/pitches [17:10:04] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS [17:10:04] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS [17:10:04] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS [17:10:04] [PASSED] YVU420 Valid modifier [17:10:04] [PASSED] YVU420 Different modifiers per plane [17:10:04] [PASSED] YVU420 Modifier for inexistent plane [17:10:04] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR) [17:10:04] [PASSED] X0L2 Normal sizes [17:10:04] [PASSED] X0L2 Max sizes [17:10:04] [PASSED] X0L2 Invalid pitch [17:10:04] [PASSED] X0L2 Pitch greater than minimum required [17:10:04] [PASSED] X0L2 Handle for inexistent plane [17:10:04] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set [17:10:04] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set [17:10:04] [PASSED] X0L2 Valid modifier [17:10:04] [PASSED] X0L2 Modifier for inexistent plane [17:10:04] =========== [PASSED] drm_test_framebuffer_create =========== [17:10:04] [PASSED] drm_test_framebuffer_free [17:10:04] [PASSED] drm_test_framebuffer_init [17:10:04] [PASSED] drm_test_framebuffer_init_bad_format [17:10:04] [PASSED] drm_test_framebuffer_init_dev_mismatch [17:10:04] [PASSED] drm_test_framebuffer_lookup [17:10:04] [PASSED] drm_test_framebuffer_lookup_inexistent [17:10:04] [PASSED] drm_test_framebuffer_modifiers_not_supported [17:10:04] ================= [PASSED] drm_framebuffer ================= [17:10:04] ================ drm_gem_shmem (8 subtests) ================ [17:10:04] [PASSED] drm_gem_shmem_test_obj_create [17:10:04] [PASSED] drm_gem_shmem_test_obj_create_private [17:10:04] [PASSED] drm_gem_shmem_test_pin_pages [17:10:04] [PASSED] drm_gem_shmem_test_vmap [17:10:04] [PASSED] drm_gem_shmem_test_get_pages_sgt [17:10:04] [PASSED] drm_gem_shmem_test_get_sg_table [17:10:04] [PASSED] drm_gem_shmem_test_madvise [17:10:04] [PASSED] drm_gem_shmem_test_purge [17:10:04] ================== [PASSED] drm_gem_shmem ================== [17:10:04] === drm_atomic_helper_connector_hdmi_check (27 subtests) === [17:10:04] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode [17:10:04] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1 [17:10:04] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode [17:10:04] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1 [17:10:04] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode [17:10:04] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1 [17:10:04] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 ======= [17:10:04] [PASSED] Automatic [17:10:04] [PASSED] Full [17:10:04] [PASSED] Limited 16:235 [17:10:04] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 === [17:10:04] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed [17:10:04] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed [17:10:04] [PASSED] drm_test_check_disable_connector [17:10:04] [PASSED] drm_test_check_hdmi_funcs_reject_rate [17:10:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb [17:10:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420 [17:10:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422 [17:10:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420 [17:10:04] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420 [17:10:04] [PASSED] drm_test_check_output_bpc_crtc_mode_changed [17:10:04] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed [17:10:04] [PASSED] drm_test_check_output_bpc_dvi [17:10:04] [PASSED] drm_test_check_output_bpc_format_vic_1 [17:10:04] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only [17:10:04] [PASSED] drm_test_check_output_bpc_format_display_rgb_only [17:10:04] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only [17:10:04] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only [17:10:04] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc [17:10:04] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc [17:10:04] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc [17:10:04] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ====== [17:10:04] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ==== [17:10:04] [PASSED] drm_test_check_broadcast_rgb_value [17:10:04] [PASSED] drm_test_check_bpc_8_value [17:10:04] [PASSED] drm_test_check_bpc_10_value [17:10:04] [PASSED] drm_test_check_bpc_12_value [17:10:04] [PASSED] drm_test_check_format_value [17:10:04] [PASSED] drm_test_check_tmds_char_value [17:10:04] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ====== [17:10:04] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) = [17:10:04] [PASSED] drm_test_check_mode_valid [17:10:04] [PASSED] drm_test_check_mode_valid_reject [17:10:04] [PASSED] drm_test_check_mode_valid_reject_rate [17:10:04] [PASSED] drm_test_check_mode_valid_reject_max_clock [17:10:04] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid === [17:10:04] ================= drm_managed (2 subtests) ================= [17:10:04] [PASSED] drm_test_managed_release_action [17:10:04] [PASSED] drm_test_managed_run_action [17:10:04] =================== [PASSED] drm_managed =================== [17:10:04] =================== drm_mm (6 subtests) ==================== [17:10:04] [PASSED] drm_test_mm_init [17:10:04] [PASSED] drm_test_mm_debug [17:10:04] [PASSED] drm_test_mm_align32 [17:10:04] [PASSED] drm_test_mm_align64 [17:10:04] [PASSED] drm_test_mm_lowest [17:10:04] [PASSED] drm_test_mm_highest [17:10:04] ===================== [PASSED] drm_mm ====================== [17:10:04] ============= drm_modes_analog_tv (5 subtests) ============= [17:10:04] [PASSED] drm_test_modes_analog_tv_mono_576i [17:10:04] [PASSED] drm_test_modes_analog_tv_ntsc_480i [17:10:04] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined [17:10:04] [PASSED] drm_test_modes_analog_tv_pal_576i [17:10:04] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined [17:10:04] =============== [PASSED] drm_modes_analog_tv =============== [17:10:04] ============== drm_plane_helper (2 subtests) =============== [17:10:04] =============== drm_test_check_plane_state ================ [17:10:04] [PASSED] clipping_simple [17:10:04] [PASSED] clipping_rotate_reflect [17:10:04] [PASSED] positioning_simple [17:10:04] [PASSED] upscaling [17:10:04] [PASSED] downscaling [17:10:04] [PASSED] rounding1 [17:10:04] [PASSED] rounding2 [17:10:04] [PASSED] rounding3 [17:10:04] [PASSED] rounding4 [17:10:04] =========== [PASSED] drm_test_check_plane_state ============ [17:10:04] =========== drm_test_check_invalid_plane_state ============ [17:10:04] [PASSED] positioning_invalid [17:10:04] [PASSED] upscaling_invalid [17:10:04] [PASSED] downscaling_invalid [17:10:04] ======= [PASSED] drm_test_check_invalid_plane_state ======== [17:10:04] ================ [PASSED] drm_plane_helper ================= [17:10:04] ====== drm_connector_helper_tv_get_modes (1 subtest) ======= [17:10:04] ====== drm_test_connector_helper_tv_get_modes_check ======= [17:10:04] [PASSED] None [17:10:04] [PASSED] PAL [17:10:04] [PASSED] NTSC [17:10:04] [PASSED] Both, NTSC Default [17:10:04] [PASSED] Both, PAL Default [17:10:04] [PASSED] Both, NTSC Default, with PAL on command-line [17:10:04] [PASSED] Both, PAL Default, with NTSC on command-line [17:10:04] == [PASSED] drm_test_connector_helper_tv_get_modes_check === [17:10:04] ======== [PASSED] drm_connector_helper_tv_get_modes ======== [17:10:04] ================== drm_rect (9 subtests) =================== [17:10:04] [PASSED] drm_test_rect_clip_scaled_div_by_zero [17:10:04] [PASSED] drm_test_rect_clip_scaled_not_clipped [17:10:04] [PASSED] drm_test_rect_clip_scaled_clipped [17:10:04] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned [17:10:04] ================= drm_test_rect_intersect ================= [17:10:04] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0 [17:10:04] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1 [17:10:04] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0 [17:10:04] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1 [17:10:04] [PASSED] right x left: 2x1+0+0 x 3x1+1+0 [17:10:04] [PASSED] left x right: 3x1+1+0 x 2x1+0+0 [17:10:04] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1 [17:10:04] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0 [17:10:04] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1 [17:10:04] [PASSED] touching side: 1x1+0+0 x 1x1+1+0 [17:10:04] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0 [17:10:04] [PASSED] inside another: 2x2+0+0 x 1x1+1+1 [17:10:04] [PASSED] far away: 1x1+0+0 x 1x1+3+6 [17:10:04] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10 [17:10:04] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10 [17:10:04] ============= [PASSED] drm_test_rect_intersect ============= [17:10:04] ================ drm_test_rect_calc_hscale ================ [17:10:04] [PASSED] normal use [17:10:04] [PASSED] out of max range [17:10:04] [PASSED] out of min range [17:10:04] [PASSED] zero dst [17:10:04] [PASSED] negative src [17:10:04] [PASSED] negative dst [17:10:04] ============ [PASSED] drm_test_rect_calc_hscale ============ [17:10:04] ================ drm_test_rect_calc_vscale ================ [17:10:04] [PASSED] normal use [17:10:04] [PASSED] out of max range [17:10:04] [PASSED] out of min range [17:10:04] [PASSED] zero dst [17:10:04] [PASSED] negative src [17:10:04] [PASSED] negative dst [17:10:04] ============ [PASSED] drm_test_rect_calc_vscale ============ [17:10:04] ================== drm_test_rect_rotate =================== [17:10:04] [PASSED] reflect-x [17:10:04] [PASSED] reflect-y [17:10:04] [PASSED] rotate-0 [17:10:04] [PASSED] rotate-90 [17:10:04] [PASSED] rotate-180 [17:10:04] [PASSED] rotate-270 stty: 'standard input': Inappropriate ioctl for device [17:10:04] ============== [PASSED] drm_test_rect_rotate =============== [17:10:04] ================ drm_test_rect_rotate_inv ================= [17:10:04] [PASSED] reflect-x [17:10:04] [PASSED] reflect-y [17:10:04] [PASSED] rotate-0 [17:10:04] [PASSED] rotate-90 [17:10:04] [PASSED] rotate-180 [17:10:04] [PASSED] rotate-270 [17:10:04] ============ [PASSED] drm_test_rect_rotate_inv ============= [17:10:04] ==================== [PASSED] drm_rect ===================== [17:10:04] ============ drm_sysfb_modeset_test (1 subtest) ============ [17:10:04] ============ drm_test_sysfb_build_fourcc_list ============= [17:10:04] [PASSED] no native formats [17:10:04] [PASSED] XRGB8888 as native format [17:10:04] [PASSED] remove duplicates [17:10:04] [PASSED] convert alpha formats [17:10:04] [PASSED] random formats [17:10:04] ======== [PASSED] drm_test_sysfb_build_fourcc_list ========= [17:10:04] ============= [PASSED] drm_sysfb_modeset_test ============== [17:10:04] ============================================================ [17:10:04] Testing complete. Ran 616 tests: passed: 616 [17:10:04] Elapsed time: 24.641s total, 1.659s configuring, 22.765s building, 0.188s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig [17:10:04] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig [17:10:06] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48 [17:10:13] Starting KUnit Kernel (1/1)... [17:10:13] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [17:10:14] ================= ttm_device (5 subtests) ================== [17:10:14] [PASSED] ttm_device_init_basic [17:10:14] [PASSED] ttm_device_init_multiple [17:10:14] [PASSED] ttm_device_fini_basic [17:10:14] [PASSED] ttm_device_init_no_vma_man [17:10:14] ================== ttm_device_init_pools ================== [17:10:14] [PASSED] No DMA allocations, no DMA32 required [17:10:14] [PASSED] DMA allocations, DMA32 required [17:10:14] [PASSED] No DMA allocations, DMA32 required [17:10:14] [PASSED] DMA allocations, no DMA32 required [17:10:14] ============== [PASSED] ttm_device_init_pools ============== [17:10:14] =================== [PASSED] ttm_device ==================== [17:10:14] ================== ttm_pool (8 subtests) =================== [17:10:14] ================== ttm_pool_alloc_basic =================== [17:10:14] [PASSED] One page [17:10:14] [PASSED] More than one page [17:10:14] [PASSED] Above the allocation limit [17:10:14] [PASSED] One page, with coherent DMA mappings enabled [17:10:14] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [17:10:14] ============== [PASSED] ttm_pool_alloc_basic =============== [17:10:14] ============== ttm_pool_alloc_basic_dma_addr ============== [17:10:14] [PASSED] One page [17:10:14] [PASSED] More than one page [17:10:14] [PASSED] Above the allocation limit [17:10:14] [PASSED] One page, with coherent DMA mappings enabled [17:10:14] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [17:10:14] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ========== [17:10:14] [PASSED] ttm_pool_alloc_order_caching_match [17:10:14] [PASSED] ttm_pool_alloc_caching_mismatch [17:10:14] [PASSED] ttm_pool_alloc_order_mismatch [17:10:14] [PASSED] ttm_pool_free_dma_alloc [17:10:14] [PASSED] ttm_pool_free_no_dma_alloc [17:10:14] [PASSED] ttm_pool_fini_basic [17:10:14] ==================== [PASSED] ttm_pool ===================== [17:10:14] ================ ttm_resource (8 subtests) ================= [17:10:14] ================= ttm_resource_init_basic ================= [17:10:14] [PASSED] Init resource in TTM_PL_SYSTEM [17:10:14] [PASSED] Init resource in TTM_PL_VRAM [17:10:14] [PASSED] Init resource in a private placement [17:10:14] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags [17:10:14] ============= [PASSED] ttm_resource_init_basic ============= [17:10:14] [PASSED] ttm_resource_init_pinned [17:10:14] [PASSED] ttm_resource_fini_basic [17:10:14] [PASSED] ttm_resource_manager_init_basic [17:10:14] [PASSED] ttm_resource_manager_usage_basic [17:10:14] [PASSED] ttm_resource_manager_set_used_basic [17:10:14] [PASSED] ttm_sys_man_alloc_basic [17:10:14] [PASSED] ttm_sys_man_free_basic [17:10:14] ================== [PASSED] ttm_resource =================== [17:10:14] =================== ttm_tt (15 subtests) =================== [17:10:14] ==================== ttm_tt_init_basic ==================== [17:10:14] [PASSED] Page-aligned size [17:10:14] [PASSED] Extra pages requested [17:10:14] ================ [PASSED] ttm_tt_init_basic ================ [17:10:14] [PASSED] ttm_tt_init_misaligned [17:10:14] [PASSED] ttm_tt_fini_basic [17:10:14] [PASSED] ttm_tt_fini_sg [17:10:14] [PASSED] ttm_tt_fini_shmem [17:10:14] [PASSED] ttm_tt_create_basic [17:10:14] [PASSED] ttm_tt_create_invalid_bo_type [17:10:14] [PASSED] ttm_tt_create_ttm_exists [17:10:14] [PASSED] ttm_tt_create_failed [17:10:14] [PASSED] ttm_tt_destroy_basic [17:10:14] [PASSED] ttm_tt_populate_null_ttm [17:10:14] [PASSED] ttm_tt_populate_populated_ttm [17:10:14] [PASSED] ttm_tt_unpopulate_basic [17:10:14] [PASSED] ttm_tt_unpopulate_empty_ttm [17:10:14] [PASSED] ttm_tt_swapin_basic [17:10:14] ===================== [PASSED] ttm_tt ====================== [17:10:14] =================== ttm_bo (14 subtests) =================== [17:10:14] =========== ttm_bo_reserve_optimistic_no_ticket =========== [17:10:14] [PASSED] Cannot be interrupted and sleeps [17:10:14] [PASSED] Cannot be interrupted, locks straight away [17:10:14] [PASSED] Can be interrupted, sleeps [17:10:14] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket ======= [17:10:14] [PASSED] ttm_bo_reserve_locked_no_sleep [17:10:14] [PASSED] ttm_bo_reserve_no_wait_ticket [17:10:14] [PASSED] ttm_bo_reserve_double_resv [17:10:14] [PASSED] ttm_bo_reserve_interrupted [17:10:14] [PASSED] ttm_bo_reserve_deadlock [17:10:14] [PASSED] ttm_bo_unreserve_basic [17:10:14] [PASSED] ttm_bo_unreserve_pinned [17:10:14] [PASSED] ttm_bo_unreserve_bulk [17:10:14] [PASSED] ttm_bo_put_basic [17:10:14] [PASSED] ttm_bo_put_shared_resv [17:10:14] [PASSED] ttm_bo_pin_basic [17:10:14] [PASSED] ttm_bo_pin_unpin_resource [17:10:14] [PASSED] ttm_bo_multiple_pin_one_unpin [17:10:14] ===================== [PASSED] ttm_bo ====================== [17:10:14] ============== ttm_bo_validate (21 subtests) =============== [17:10:14] ============== ttm_bo_init_reserved_sys_man =============== [17:10:14] [PASSED] Buffer object for userspace [17:10:14] [PASSED] Kernel buffer object [17:10:14] [PASSED] Shared buffer object [17:10:14] ========== [PASSED] ttm_bo_init_reserved_sys_man =========== [17:10:14] ============== ttm_bo_init_reserved_mock_man ============== [17:10:14] [PASSED] Buffer object for userspace [17:10:14] [PASSED] Kernel buffer object [17:10:14] [PASSED] Shared buffer object [17:10:14] ========== [PASSED] ttm_bo_init_reserved_mock_man ========== [17:10:14] [PASSED] ttm_bo_init_reserved_resv [17:10:14] ================== ttm_bo_validate_basic ================== [17:10:14] [PASSED] Buffer object for userspace [17:10:14] [PASSED] Kernel buffer object [17:10:14] [PASSED] Shared buffer object [17:10:14] ============== [PASSED] ttm_bo_validate_basic ============== [17:10:14] [PASSED] ttm_bo_validate_invalid_placement [17:10:14] ============= ttm_bo_validate_same_placement ============== [17:10:14] [PASSED] System manager [17:10:14] [PASSED] VRAM manager [17:10:14] ========= [PASSED] ttm_bo_validate_same_placement ========== [17:10:14] [PASSED] ttm_bo_validate_failed_alloc [17:10:14] [PASSED] ttm_bo_validate_pinned [17:10:14] [PASSED] ttm_bo_validate_busy_placement [17:10:14] ================ ttm_bo_validate_multihop ================= [17:10:14] [PASSED] Buffer object for userspace [17:10:14] [PASSED] Kernel buffer object [17:10:14] [PASSED] Shared buffer object [17:10:14] ============ [PASSED] ttm_bo_validate_multihop ============= [17:10:14] ========== ttm_bo_validate_no_placement_signaled ========== [17:10:14] [PASSED] Buffer object in system domain, no page vector [17:10:14] [PASSED] Buffer object in system domain with an existing page vector [17:10:14] ====== [PASSED] ttm_bo_validate_no_placement_signaled ====== [17:10:14] ======== ttm_bo_validate_no_placement_not_signaled ======== [17:10:14] [PASSED] Buffer object for userspace [17:10:14] [PASSED] Kernel buffer object [17:10:14] [PASSED] Shared buffer object [17:10:14] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ==== [17:10:14] [PASSED] ttm_bo_validate_move_fence_signaled [17:10:14] ========= ttm_bo_validate_move_fence_not_signaled ========= [17:10:14] [PASSED] Waits for GPU [17:10:14] [PASSED] Tries to lock straight away [17:10:14] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled ===== [17:10:14] [PASSED] ttm_bo_validate_happy_evict [17:10:14] [PASSED] ttm_bo_validate_all_pinned_evict [17:10:14] [PASSED] ttm_bo_validate_allowed_only_evict [17:10:14] [PASSED] ttm_bo_validate_deleted_evict [17:10:14] [PASSED] ttm_bo_validate_busy_domain_evict [17:10:14] [PASSED] ttm_bo_validate_evict_gutting [17:10:14] [PASSED] ttm_bo_validate_recrusive_evict stty: 'standard input': Inappropriate ioctl for device [17:10:14] ================= [PASSED] ttm_bo_validate ================= [17:10:14] ============================================================ [17:10:14] Testing complete. Ran 101 tests: passed: 101 [17:10:14] Elapsed time: 9.743s total, 1.678s configuring, 7.798s building, 0.221s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
Patchwork
CI✗ CI.checksparse: warning for perf: Rework event_init checks
In reply to Robin Murphy== Series Details ==
== Series Details ==
Series: perf: Rework event_init checks
URL : https://patchwork.freedesktop.org/series/152905/
State : warning
== Summary ==
+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast b6d374ca303d7b9f6456bc6db0cfe6e4d30bf472
Sparse version: 0.6.4 (Ubuntu: 0.6.4-4ubuntu3)
Fast mode used, each commit won't be checked separately.
-+drivers/gpu/drm/i915/display/intel_cdclk.c: note: in included file:+drivers/gpu/drm/i915/display/intel_display_types.h:2019:24: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/display/intel_display_types.h:2019:24: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/display/intel_display_types.h:2019:24: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/display/intel_hotplug.c: note: in included file:+drivers/gpu/drm/i915/gt/intel_reset.c:1572:12: warning: context imbalance in '_intel_gt_reset_lock' - different lock contexts for basic block +drivers/gpu/drm/i915/gt/intel_sseu.c:598:17: error: too long token expansion +drivers/gpu/drm/i915/i915_active.c:1063:16: warning: context imbalance in '__i915_active_fence_set' - different lock contexts for basic block +drivers/gpu/drm/i915/i915_drm_client.c:92:9: error: incompatible types in comparison expression (different address spaces):+drivers/gpu/drm/i915/i915_drm_client.c:92:9: error: incompatible types in comparison expression (different address spaces):
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: expected struct list_head const *list +drivers/gpu/drm/i915/i915_drm_client.c:92:9: got struct list_head [noderef] __rcu *pos +drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head * +drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head * +drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head [noderef] __rcu * +drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head [noderef] __rcu *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: warning: incorrect type in argument 1 (different address spaces) +drivers/gpu/drm/i915/i915_irq.c:492:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:492:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:500:16: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:500:16: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:505:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:505:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:505:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:543:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:543:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:551:16: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:551:16: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:556:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:556:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:556:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:600:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:600:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:603:15: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:603:15: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:607:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:607:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>' +drivers/gpu/drm/i915/intel_uncore.c:1927:1: warning: context imbalance in 'fwtable_read8' - unexpected unlock +drivers/gpu/drm/i915/intel_uncore.c:1928:1: warning: context imbalance in 'fwtable_read16' - unexpected unlock +drivers/gpu/drm/i915/intel_uncore.c:1929:1: warning: context imbalance in 'fwtable_read32' - unexpected unlock +drivers/gpu/drm/i915/intel_uncore.c:1930:1: warning: context imbalance in 'fwtable_read64' - unexpected unlock +drivers/gpu/drm/i915/intel_uncore.c:1995:1: warning: context imbalance in 'gen6_write8' - unexpected unlock +drivers/gpu/drm/i915/intel_uncore.c:1996:1: warning: context imbalance in 'gen6_write16' - unexpected unlock +drivers/gpu/drm/i915/intel_uncore.c:1997:1: warning: context imbalance in 'gen6_write32' - unexpected unlock +drivers/gpu/drm/i915/intel_uncore.c:2017:1: warning: context imbalance in 'fwtable_write8' - unexpected unlock +drivers/gpu/drm/i915/intel_uncore.c:2018:1: warning: context imbalance in 'fwtable_write16' - unexpected unlock +drivers/gpu/drm/i915/intel_uncore.c:2019:1: warning: context imbalance in 'fwtable_write32' - unexpected unlock +drivers/gpu/drm/i915/intel_wakeref.c:146:19: warning: context imbalance in 'wakeref_auto_timeout' - unexpected unlock
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
Patchwork
CI✓ Xe.CI.BAT: success for perf: Rework event_init checks
In reply to Robin Murphy== Series Details ==
== Series Details ==
Series: perf: Rework event_init checks
URL : https://patchwork.freedesktop.org/series/152905/
State : success
== Summary ==
CI Bug Log - changes from xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6_BAT -> xe-pw-152905v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (11 -> 9)
------------------------------
Missing (2): bat-adlp-vm bat-ptl-vm
Known issues
------------
Here are the changes found in xe-pw-152905v1_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_flip@basic-flip-vs-dpms:
- bat-adlp-7: [PASS][1] -> [DMESG-WARN][2] ([Intel XE#4543]) +3 other tests dmesg-warn
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/bat-adlp-7/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/bat-adlp-7/igt@[email protected]
* igt@xe_pat@pat-index-xe2@render:
- bat-bmg-1: [PASS][3] -> [FAIL][4] ([Intel XE#5507]) +1 other test fail
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/bat-bmg-1/igt@xe_pat@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/bat-bmg-1/igt@xe_pat@[email protected]
#### Possible fixes ####
* igt@xe_vm@bind-execqueues-independent:
- {bat-ptl-2}: [FAIL][5] ([Intel XE#5783]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/bat-ptl-2/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/bat-ptl-2/igt@[email protected]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
[Intel XE#5507]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5507
[Intel XE#5783]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5783
Build changes
-------------
* Linux: xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6 -> xe-pw-152905v1
IGT_8493: 8493
xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6: ec8aa890d544a1acecf63c1a23e659bb7fc7abe6
xe-pw-152905v1: 152905v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/index.html
Patchwork
CI✗ Xe.CI.Full: failure for perf: Rework event_init checks
In reply to Robin Murphy== Series Details ==
== Series Details ==
Series: perf: Rework event_init checks
URL : https://patchwork.freedesktop.org/series/152905/
State : failure
== Summary ==
CI Bug Log - changes from xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6_FULL -> xe-pw-152905v1_FULL
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-152905v1_FULL absolutely need to be verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-152905v1_FULL, please notify your bug team ([email protected]) to allow them to document this new failure mode, which will reduce false positives in CI.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-152905v1_FULL:
### IGT changes ###
#### Possible regressions ####
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs@pipe-b-hdmi-a-3:
- shard-bmg: [PASS][1] -> [FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-7/igt@kms_ccs@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-6/igt@kms_ccs@[email protected]
* igt@runner@aborted:
- shard-adlp: NOTRUN -> [FAIL][3]
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@xe_fault_injection@inject-fault-probe-function-xe_ggtt_init_early:
- shard-lnl: NOTRUN -> [DMESG-WARN][4]
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@xe_fault_injection@inject-fault-probe-function-xe_ggtt_init_early.html
Known issues
------------
Here are the changes found in xe-pw-152905v1_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- shard-dg2-set2: NOTRUN -> [SKIP][5] ([Intel XE#623])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-466/igt@[email protected]
* igt@kms_async_flips@invalid-async-flip-atomic:
- shard-dg2-set2: NOTRUN -> [SKIP][6] ([Intel XE#3768])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-466/igt@[email protected]
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-lnl: NOTRUN -> [SKIP][7] ([Intel XE#1407])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@[email protected]
* igt@kms_big_fb@linear-8bpp-rotate-270:
- shard-dg2-set2: NOTRUN -> [SKIP][8] ([Intel XE#316]) +1 other test skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@[email protected]
* igt@kms_big_fb@y-tiled-32bpp-rotate-270:
- shard-adlp: NOTRUN -> [SKIP][9] ([Intel XE#316])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
- shard-adlp: [PASS][10] -> [DMESG-WARN][11] ([Intel XE#2953] / [Intel XE#4173])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-adlp-8/igt@[email protected]
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-4/igt@[email protected]
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
- shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#1124]) +2 other tests skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0:
- shard-dg2-set2: NOTRUN -> [SKIP][13] ([Intel XE#1124]) +4 other tests skip
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-466/igt@[email protected]
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
- shard-adlp: [PASS][14] -> [DMESG-FAIL][15] ([Intel XE#4543])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-adlp-6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-8/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
* igt@kms_big_fb@yf-tiled-64bpp-rotate-270:
- shard-adlp: NOTRUN -> [SKIP][16] ([Intel XE#1124]) +1 other test skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_bw@connected-linear-tiling-2-displays-3840x2160p:
- shard-bmg: [PASS][17] -> [SKIP][18] ([Intel XE#2314] / [Intel XE#2894])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-7/igt@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-6/igt@[email protected]
* igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p:
- shard-dg2-set2: NOTRUN -> [SKIP][19] ([Intel XE#2191])
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@[email protected]
* igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p:
- shard-adlp: NOTRUN -> [SKIP][20] ([Intel XE#2191])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_bw@linear-tiling-1-displays-2160x1440p:
- shard-dg2-set2: NOTRUN -> [SKIP][21] ([Intel XE#367])
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-466/igt@[email protected]
* igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs@pipe-c-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [SKIP][22] ([Intel XE#787]) +125 other tests skip
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-436/igt@kms_ccs@[email protected]
* igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs:
- shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#2887]) +3 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-8/igt@[email protected]
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-1:
- shard-adlp: NOTRUN -> [SKIP][24] ([Intel XE#787]) +8 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@kms_ccs@[email protected]
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs:
- shard-adlp: NOTRUN -> [SKIP][25] ([Intel XE#2907])
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs:
- shard-dg2-set2: [PASS][26] -> [INCOMPLETE][27] ([Intel XE#3862]) +1 other test incomplete
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-dg2-464/igt@[email protected]
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-466/igt@[email protected]
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs:
- shard-bmg: [PASS][28] -> [FAIL][29] ([Intel XE#5376]) +1 other test fail
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-7/igt@[email protected]
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-6/igt@[email protected]
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
- shard-dg2-set2: NOTRUN -> [SKIP][30] ([Intel XE#2907]) +1 other test skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-466/igt@[email protected]
* igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-mc-ccs:
- shard-adlp: NOTRUN -> [SKIP][31] ([Intel XE#455] / [Intel XE#787]) +5 other tests skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
- shard-dg2-set2: [PASS][32] -> [INCOMPLETE][33] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522]) +1 other test incomplete
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-dg2-435/igt@[email protected]
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-463/igt@[email protected]
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-dp-4:
- shard-dg2-set2: [PASS][34] -> [INCOMPLETE][35] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522])
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-dg2-435/igt@kms_ccs@[email protected]
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-463/igt@kms_ccs@[email protected]
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-mc-ccs@pipe-d-dp-2:
- shard-dg2-set2: NOTRUN -> [SKIP][36] ([Intel XE#455] / [Intel XE#787]) +24 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@kms_ccs@[email protected]
* igt@kms_cdclk@plane-scaling@pipe-b-dp-2:
- shard-dg2-set2: NOTRUN -> [SKIP][37] ([Intel XE#4416]) +3 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@kms_cdclk@[email protected]
* igt@kms_chamelium_color@ctm-green-to-red:
- shard-dg2-set2: NOTRUN -> [SKIP][38] ([Intel XE#306])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@[email protected]
* igt@kms_chamelium_color@ctm-negative:
- shard-adlp: NOTRUN -> [SKIP][39] ([Intel XE#306])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_chamelium_frames@dp-crc-single:
- shard-adlp: NOTRUN -> [SKIP][40] ([Intel XE#373]) +1 other test skip
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_chamelium_hpd@dp-hpd-fast:
- shard-dg2-set2: NOTRUN -> [SKIP][41] ([Intel XE#373]) +3 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-466/igt@[email protected]
* igt@kms_chamelium_hpd@dp-hpd-with-enabled-mode:
- shard-bmg: NOTRUN -> [SKIP][42] ([Intel XE#2252]) +1 other test skip
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@kms_concurrent@multi-plane-atomic-lowres:
- shard-adlp: [PASS][43] -> [ABORT][44] ([Intel XE#5826]) +1 other test abort
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-adlp-3/igt@[email protected]
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-8/igt@[email protected]
* igt@kms_concurrent@multi-plane-atomic-lowres@pipe-a-hdmi-a-2:
- shard-dg2-set2: NOTRUN -> [ABORT][45] ([Intel XE#5826])
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@kms_concurrent@[email protected]
* igt@kms_content_protection@atomic@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [FAIL][46] ([Intel XE#1178]) +1 other test fail
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@kms_content_protection@[email protected]
* igt@kms_content_protection@content-type-change:
- shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#2341]) +1 other test skip
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@kms_content_protection@legacy@pipe-a-dp-2:
- shard-dg2-set2: NOTRUN -> [FAIL][48] ([Intel XE#1178]) +1 other test fail
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@kms_content_protection@[email protected]
* igt@kms_cursor_crc@cursor-random-512x170:
- shard-adlp: NOTRUN -> [SKIP][49] ([Intel XE#308])
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_cursor_crc@cursor-random-512x512:
- shard-dg2-set2: NOTRUN -> [SKIP][50] ([Intel XE#308])
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@[email protected]
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
- shard-adlp: NOTRUN -> [SKIP][51] ([Intel XE#309]) +2 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
- shard-bmg: [PASS][52] -> [SKIP][53] ([Intel XE#2291]) +4 other tests skip
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-7/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-bmg: [PASS][54] -> [FAIL][55] ([Intel XE#1475])
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-5/igt@[email protected]
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-1/igt@[email protected]
* igt@kms_cursor_legacy@forked-move:
- shard-bmg: NOTRUN -> [ABORT][56] ([Intel XE#5826]) +1 other test abort
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-8/igt@[email protected]
* igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
- shard-bmg: NOTRUN -> [SKIP][57] ([Intel XE#1508])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@kms_dp_link_training@uhbr-mst:
- shard-bmg: NOTRUN -> [SKIP][58] ([Intel XE#4354])
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
- shard-dg2-set2: NOTRUN -> [SKIP][59] ([Intel XE#4356])
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-436/igt@[email protected]
* igt@kms_dsc@dsc-with-output-formats:
- shard-lnl: NOTRUN -> [SKIP][60] ([Intel XE#2244])
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@[email protected]
* igt@kms_fbcon_fbt@psr:
- shard-dg2-set2: NOTRUN -> [SKIP][61] ([Intel XE#776])
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@[email protected]
* igt@kms_feature_discovery@dp-mst:
- shard-lnl: NOTRUN -> [SKIP][62] ([Intel XE#1137])
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@[email protected]
* igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
- shard-adlp: NOTRUN -> [SKIP][63] ([Intel XE#310])
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html
* igt@kms_flip@2x-flip-vs-dpms:
- shard-lnl: NOTRUN -> [SKIP][64] ([Intel XE#1421])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@[email protected]
* igt@kms_flip@2x-nonexisting-fb:
- shard-bmg: [PASS][65] -> [SKIP][66] ([Intel XE#2316]) +7 other tests skip
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-5/igt@[email protected]
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-6/igt@[email protected]
* igt@kms_flip@flip-vs-expired-vblank@b-edp1:
- shard-lnl: [PASS][67] -> [FAIL][68] ([Intel XE#301]) +1 other test fail
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-2/igt@kms_flip@[email protected]
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-1/igt@kms_flip@[email protected]
* igt@kms_flip@flip-vs-rmfb:
- shard-adlp: [PASS][69] -> [DMESG-WARN][70] ([Intel XE#4543] / [Intel XE#5208])
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-adlp-3/igt@[email protected]
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_flip@flip-vs-rmfb@b-hdmi-a1:
- shard-adlp: [PASS][71] -> [DMESG-WARN][72] ([Intel XE#4543]) +5 other tests dmesg-warn
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-adlp-3/igt@kms_flip@[email protected]
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@kms_flip@[email protected]
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
- shard-adlp: NOTRUN -> [SKIP][73] ([Intel XE#455]) +2 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:
- shard-lnl: NOTRUN -> [SKIP][74] ([Intel XE#1401] / [Intel XE#1745])
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][75] ([Intel XE#1401])
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling:
- shard-dg2-set2: NOTRUN -> [SKIP][76] ([Intel XE#455]) +5 other tests skip
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-mmap-wc:
- shard-adlp: NOTRUN -> [SKIP][77] ([Intel XE#656]) +4 other tests skip
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen:
- shard-dg2-set2: NOTRUN -> [SKIP][78] ([Intel XE#651]) +14 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-466/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-move:
- shard-bmg: NOTRUN -> [SKIP][79] ([Intel XE#2311]) +7 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-8/igt@[email protected]
* igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][80] ([Intel XE#651]) +1 other test skip
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][81] ([Intel XE#656]) +2 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][82] ([Intel XE#5390]) +1 other test skip
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-pri-indfb-multidraw:
- shard-adlp: NOTRUN -> [SKIP][83] ([Intel XE#651]) +3 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y:
- shard-dg2-set2: NOTRUN -> [SKIP][84] ([Intel XE#658])
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-466/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][85] ([Intel XE#2313]) +3 other tests skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc:
- shard-adlp: NOTRUN -> [SKIP][86] ([Intel XE#653]) +3 other tests skip
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc:
- shard-dg2-set2: NOTRUN -> [SKIP][87] ([Intel XE#653]) +13 other tests skip
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [PASS][88] -> [SKIP][89] ([Intel XE#1503])
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-3/igt@[email protected]
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-1/igt@[email protected]
* igt@kms_joiner@invalid-modeset-force-ultra-joiner:
- shard-dg2-set2: NOTRUN -> [SKIP][90] ([Intel XE#2925])
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-466/igt@[email protected]
* igt@kms_pipe_stress@stress-xrgb8888-ytiled:
- shard-lnl: NOTRUN -> [SKIP][91] ([Intel XE#4329])
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@[email protected]
* igt@kms_plane_multiple@2x-tiling-4:
- shard-bmg: [PASS][92] -> [SKIP][93] ([Intel XE#4596])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-5/igt@[email protected]
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-6/igt@[email protected]
* igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-c:
- shard-bmg: NOTRUN -> [SKIP][94] ([Intel XE#2763]) +4 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@kms_plane_scaling@[email protected]
* igt@kms_pm_backlight@bad-brightness:
- shard-adlp: NOTRUN -> [SKIP][95] ([Intel XE#870])
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_pm_dc@dc5-psr:
- shard-bmg: NOTRUN -> [SKIP][96] ([Intel XE#2392])
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area:
- shard-adlp: NOTRUN -> [SKIP][97] ([Intel XE#1489] / [Intel XE#5899]) +1 other test skip
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf:
- shard-bmg: NOTRUN -> [SKIP][98] ([Intel XE#1489] / [Intel XE#5899])
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-8/igt@[email protected]
* igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf:
- shard-dg2-set2: NOTRUN -> [SKIP][99] ([Intel XE#1489] / [Intel XE#5899]) +1 other test skip
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-466/igt@[email protected]
* igt@kms_psr@fbc-psr-primary-render:
- shard-bmg: NOTRUN -> [SKIP][100] ([Intel XE#2234] / [Intel XE#2850] / [Intel XE#5899]) +3 other tests skip
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@kms_psr@fbc-psr-suspend@edp-1:
- shard-lnl: NOTRUN -> [ABORT][101] ([Intel XE#2625] / [Intel XE#4847]) +1 other test abort
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@kms_psr@[email protected]
* igt@kms_psr@psr2-cursor-render:
- shard-dg2-set2: NOTRUN -> [SKIP][102] ([Intel XE#2850] / [Intel XE#5899] / [Intel XE#929]) +8 other tests skip
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@[email protected]
* igt@kms_psr@psr2-suspend:
- shard-adlp: NOTRUN -> [SKIP][103] ([Intel XE#2850] / [Intel XE#5899] / [Intel XE#929]) +3 other tests skip
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-dg2-set2: NOTRUN -> [SKIP][104] ([Intel XE#2939] / [Intel XE#5899])
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@[email protected]
* igt@kms_scaling_modes@scaling-mode-center:
- shard-bmg: NOTRUN -> [SKIP][105] ([Intel XE#2413])
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@xe_ccs@ctrl-surf-copy:
- shard-adlp: NOTRUN -> [SKIP][106] ([Intel XE#455] / [Intel XE#488] / [Intel XE#5607])
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@xe_copy_basic@mem-set-linear-0x3fff:
- shard-adlp: NOTRUN -> [SKIP][107] ([Intel XE#1126])
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@xe_eudebug@basic-vm-access-parameters-faultable:
- shard-adlp: NOTRUN -> [SKIP][108] ([Intel XE#4837] / [Intel XE#5565]) +1 other test skip
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@xe_eudebug_online@interrupt-other-debuggable:
- shard-dg2-set2: NOTRUN -> [SKIP][109] ([Intel XE#4837]) +6 other tests skip
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-436/igt@[email protected]
* igt@xe_eudebug_online@writes-caching-vram-bb-sram-target-vram:
- shard-bmg: NOTRUN -> [SKIP][110] ([Intel XE#4837]) +2 other tests skip
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@xe_evict_ccs@evict-overcommit-parallel-instantfree-reopen:
- shard-adlp: NOTRUN -> [SKIP][111] ([Intel XE#5563] / [Intel XE#688])
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr:
- shard-adlp: NOTRUN -> [SKIP][112] ([Intel XE#1392] / [Intel XE#5575]) +1 other test skip
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@xe_exec_basic@multigpu-no-exec-basic-defer-mmap:
- shard-bmg: NOTRUN -> [SKIP][113] ([Intel XE#2322])
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@xe_exec_basic@multigpu-no-exec-null:
- shard-lnl: NOTRUN -> [SKIP][114] ([Intel XE#1392])
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@[email protected]
* igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race:
- shard-dg2-set2: [PASS][115] -> [SKIP][116] ([Intel XE#1392]) +5 other tests skip
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-dg2-434/igt@[email protected]
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@[email protected]
* igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-rebind:
- shard-dg2-set2: NOTRUN -> [SKIP][117] ([Intel XE#1392]) +1 other test skip
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@[email protected]
* igt@xe_exec_fault_mode@many-execqueues-rebind:
- shard-adlp: NOTRUN -> [SKIP][118] ([Intel XE#288] / [Intel XE#5561]) +5 other tests skip
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@xe_exec_fault_mode@once-invalid-userptr-fault:
- shard-dg2-set2: NOTRUN -> [SKIP][119] ([Intel XE#288]) +12 other tests skip
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@[email protected]
* igt@xe_exec_system_allocator@process-many-large-mmap-file-mlock:
- shard-adlp: NOTRUN -> [SKIP][120] ([Intel XE#4915]) +50 other tests skip
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@xe_exec_system_allocator@threads-many-stride-mmap-remap-eocheck:
- shard-dg2-set2: NOTRUN -> [SKIP][121] ([Intel XE#4915]) +130 other tests skip
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-466/igt@xe_exec_system_allocator@threads-many-stride-mmap-remap-eocheck.html
* igt@xe_exec_system_allocator@twice-mmap-huge-nomemset:
- shard-bmg: NOTRUN -> [SKIP][122] ([Intel XE#4943]) +2 other tests skip
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@xe_mmap@pci-membarrier-parallel:
- shard-adlp: NOTRUN -> [SKIP][123] ([Intel XE#5100])
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@xe_mmap@small-bar:
- shard-dg2-set2: NOTRUN -> [SKIP][124] ([Intel XE#512])
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@[email protected]
* igt@xe_module_load@reload-no-display:
- shard-bmg: [PASS][125] -> [ABORT][126] ([Intel XE#5087])
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-1/igt@[email protected]
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-8/igt@[email protected]
* igt@xe_oa@missing-sample-flags:
- shard-adlp: NOTRUN -> [SKIP][127] ([Intel XE#3573])
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@xe_oa@whitelisted-registers-userspace-config:
- shard-dg2-set2: NOTRUN -> [SKIP][128] ([Intel XE#3573]) +2 other tests skip
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-466/igt@[email protected]
* igt@xe_peer2peer@write:
- shard-dg2-set2: NOTRUN -> [SKIP][129] ([Intel XE#1061])
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@[email protected]
* igt@xe_pm@d3cold-mmap-system:
- shard-bmg: NOTRUN -> [SKIP][130] ([Intel XE#2284])
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@xe_pxp@pxp-stale-bo-bind-post-suspend:
- shard-adlp: NOTRUN -> [SKIP][131] ([Intel XE#4733] / [Intel XE#5594])
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@xe_pxp@pxp-stale-bo-exec-post-rpm:
- shard-bmg: NOTRUN -> [SKIP][132] ([Intel XE#4733])
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@xe_pxp@pxp-termination-key-update-post-rpm:
- shard-dg2-set2: NOTRUN -> [SKIP][133] ([Intel XE#4733])
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@[email protected]
* igt@xe_query@multigpu-query-cs-cycles:
- shard-bmg: NOTRUN -> [SKIP][134] ([Intel XE#944])
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@xe_query@multigpu-query-hwconfig:
- shard-adlp: NOTRUN -> [SKIP][135] ([Intel XE#944])
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@xe_query@multigpu-query-pxp-status:
- shard-dg2-set2: NOTRUN -> [SKIP][136] ([Intel XE#944])
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-466/igt@[email protected]
* igt@xe_spin_batch@spin-mem-copy:
- shard-adlp: NOTRUN -> [SKIP][137] ([Intel XE#4821])
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling:
- shard-dg2-set2: NOTRUN -> [SKIP][138] ([Intel XE#4130])
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-432/igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling.html
#### Possible fixes ####
* igt@core_hotunplug@hotunplug-rescan:
- shard-lnl: [ABORT][139] ([Intel XE#5826]) -> [PASS][140]
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-2/igt@[email protected]
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@[email protected]
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-bmg: [INCOMPLETE][141] ([Intel XE#3862]) -> [PASS][142] +1 other test pass
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-8/igt@[email protected]
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-8/igt@[email protected]
* igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions:
- shard-bmg: [SKIP][143] ([Intel XE#2291]) -> [PASS][144]
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-6/igt@[email protected]
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-7/igt@[email protected]
* igt@kms_flip@2x-flip-vs-modeset-vs-hang:
- shard-bmg: [SKIP][145] ([Intel XE#2316]) -> [PASS][146] +1 other test pass
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-6/igt@[email protected]
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@kms_flip@dpms-off-confusion@c-hdmi-a1:
- shard-adlp: [DMESG-WARN][147] ([Intel XE#4543]) -> [PASS][148] +2 other tests pass
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-adlp-4/igt@kms_flip@[email protected]
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-1/igt@kms_flip@[email protected]
* igt@kms_flip@flip-vs-suspend:
- shard-adlp: [DMESG-WARN][149] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][150] +2 other tests pass
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-adlp-6/igt@[email protected]
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
- shard-bmg: [INCOMPLETE][151] ([Intel XE#2049] / [Intel XE#2597]) -> [PASS][152] +1 other test pass
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-4/igt@[email protected]
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@kms_flip@flip-vs-suspend@c-dp4:
- shard-dg2-set2: [INCOMPLETE][153] ([Intel XE#2049] / [Intel XE#2597]) -> [PASS][154] +1 other test pass
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-dg2-436/igt@kms_flip@[email protected]
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-436/igt@kms_flip@[email protected]
* igt@kms_joiner@basic-force-big-joiner:
- shard-bmg: [SKIP][155] ([Intel XE#3012]) -> [PASS][156]
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-6/igt@[email protected]
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-7/igt@[email protected]
* igt@kms_pm_rpm@dpms-lpsp:
- shard-adlp: [ABORT][157] ([Intel XE#5826]) -> [PASS][158]
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-adlp-8/igt@[email protected]
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-adlp-9/igt@[email protected]
* igt@xe_exec_basic@multigpu-no-exec-bindexecqueue:
- shard-dg2-set2: [SKIP][159] ([Intel XE#1392]) -> [PASS][160] +3 other tests pass
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-dg2-432/igt@[email protected]
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-464/igt@[email protected]
* igt@xe_exec_system_allocator@many-execqueues-malloc-mlock-nomemset:
- shard-bmg: [TIMEOUT][161] ([Intel XE#5686]) -> [PASS][162]
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-4/igt@xe_exec_system_allocator@many-execqueues-malloc-mlock-nomemset.html
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-7/igt@xe_exec_system_allocator@many-execqueues-malloc-mlock-nomemset.html
* igt@xe_module_load@load:
- shard-lnl: ([PASS][163], [PASS][164], [PASS][165], [PASS][166], [PASS][167], [PASS][168], [PASS][169], [PASS][170], [PASS][171], [PASS][172], [PASS][173], [PASS][174], [PASS][175], [PASS][176], [PASS][177], [PASS][178], [PASS][179], [PASS][180], [SKIP][181], [PASS][182], [PASS][183], [PASS][184], [PASS][185], [PASS][186], [PASS][187], [PASS][188]) ([Intel XE#378]) -> ([PASS][189], [PASS][190], [PASS][191], [PASS][192], [PASS][193], [PASS][194], [PASS][195], [PASS][196], [PASS][197], [PASS][198], [PASS][199], [PASS][200], [PASS][201], [PASS][202], [PASS][203], [PASS][204], [PASS][205], [PASS][206], [PASS][207], [PASS][208], [PASS][209], [PASS][210], [PASS][211], [PASS][212])
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-3/igt@[email protected]
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-3/igt@[email protected]
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-3/igt@[email protected]
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-1/igt@[email protected]
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-3/igt@[email protected]
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-1/igt@[email protected]
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-2/igt@[email protected]
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-8/igt@[email protected]
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-4/igt@[email protected]
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-5/igt@[email protected]
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-5/igt@[email protected]
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-5/igt@[email protected]
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-7/igt@[email protected]
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-8/igt@[email protected]
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-4/igt@[email protected]
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-4/igt@[email protected]
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-1/igt@[email protected]
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-2/igt@[email protected]
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-7/igt@[email protected]
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-8/igt@[email protected]
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-4/igt@[email protected]
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-2/igt@[email protected]
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-2/igt@[email protected]
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-2/igt@[email protected]
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-7/igt@[email protected]
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-lnl-7/igt@[email protected]
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-4/igt@[email protected]
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-1/igt@[email protected]
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-5/igt@[email protected]
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-7/igt@[email protected]
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@[email protected]
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-2/igt@[email protected]
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-2/igt@[email protected]
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@[email protected]
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-3/igt@[email protected]
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-3/igt@[email protected]
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-2/igt@[email protected]
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@[email protected]
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-3/igt@[email protected]
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-7/igt@[email protected]
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-7/igt@[email protected]
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@[email protected]
[205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-3/igt@[email protected]
[206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-4/igt@[email protected]
[207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-4/igt@[email protected]
[208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-1/igt@[email protected]
[209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-8/igt@[email protected]
[210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-1/igt@[email protected]
[211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-1/igt@[email protected]
[212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-lnl-2/igt@[email protected]
#### Warnings ####
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs:
- shard-dg2-set2: [INCOMPLETE][213] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124] / [Intel XE#4345]) -> [INCOMPLETE][214] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522])
[213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-dg2-466/igt@[email protected]
[214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-dg2-433/igt@[email protected]
* igt@kms_content_protection@atomic:
- shard-bmg: [SKIP][215] ([Intel XE#2341]) -> [FAIL][216] ([Intel XE#1178]) +1 other test fail
[215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-6/igt@[email protected]
[216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][217] ([Intel XE#2312]) -> [SKIP][218] ([Intel XE#2311]) +9 other tests skip
[217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc.html
[218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][219] ([Intel XE#5390]) -> [SKIP][220] ([Intel XE#2312]) +1 other test skip
[219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc.html
[220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt:
- shard-bmg: [SKIP][221] ([Intel XE#2312]) -> [SKIP][222] ([Intel XE#5390]) +5 other tests skip
[221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-6/igt@[email protected]
[222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-5/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][223] ([Intel XE#2311]) -> [SKIP][224] ([Intel XE#2312]) +14 other tests skip
[223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
[224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt:
- shard-bmg: [SKIP][225] ([Intel XE#2313]) -> [SKIP][226] ([Intel XE#2312]) +9 other tests skip
[225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-7/igt@[email protected]
[226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-6/igt@[email protected]
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][227] ([Intel XE#2312]) -> [SKIP][228] ([Intel XE#2313]) +8 other tests skip
[227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc.html
[228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-bmg: [SKIP][229] ([Intel XE#2509]) -> [SKIP][230] ([Intel XE#2426])
[229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6/shard-bmg-1/igt@[email protected]
[230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/shard-bmg-2/igt@[email protected]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1061
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126
[Intel XE#1137]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1137
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1475]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1475
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508
[Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
[Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
[Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
[Intel XE#2392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2392
[Intel XE#2413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2413
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
[Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
[Intel XE#2625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2625
[Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
[Intel XE#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
[Intel XE#2925]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2925
[Intel XE#2939]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2939
[Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#3012]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3012
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
[Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
[Intel XE#3124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3124
[Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
[Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3768]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3768
[Intel XE#378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/378
[Intel XE#3862]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3862
[Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
[Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
[Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
[Intel XE#4329]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4329
[Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4356
[Intel XE#4416]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4416
[Intel XE#4522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4522
[Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#4821]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4821
[Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
[Intel XE#4847]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4847
[Intel XE#488]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/488
[Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
[Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
[Intel XE#5087]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5087
[Intel XE#5100]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5100
[Intel XE#512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/512
[Intel XE#5208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5208
[Intel XE#5300]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5300
[Intel XE#5376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5376
[Intel XE#5390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5390
[Intel XE#5561]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5561
[Intel XE#5563]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5563
[Intel XE#5565]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5565
[Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
[Intel XE#5594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5594
[Intel XE#5607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5607
[Intel XE#5686]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5686
[Intel XE#5826]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5826
[Intel XE#5899]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5899
[Intel XE#623]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/623
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/658
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* Linux: xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6 -> xe-pw-152905v1
IGT_8493: 8493
xe-3540-ec8aa890d544a1acecf63c1a23e659bb7fc7abe6: ec8aa890d544a1acecf63c1a23e659bb7fc7abe6
xe-pw-152905v1: 152905v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152905v1/index.html
Patchwork
CI✓ i915.CI.BAT: success for perf: Rework event_init checks
In reply to Robin Murphy== Series Details ==
== Series Details ==
Series: perf: Rework event_init checks
URL : https://patchwork.freedesktop.org/series/152907/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_16996 -> Patchwork_152907v1
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/index.html
Participating hosts (43 -> 42)
------------------------------
Missing (1): fi-snb-2520m
Known issues
------------
Here are the changes found in Patchwork_152907v1 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@dmabuf@all-tests@dma_fence_chain:
- fi-bsw-n3050: [PASS][1] -> [ABORT][2] ([i915#12904]) +1 other test abort
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/fi-bsw-n3050/igt@dmabuf@all-tests@dma_fence_chain.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/fi-bsw-n3050/igt@dmabuf@all-tests@dma_fence_chain.html
* igt@gem_lmem_swapping@parallel-random-engines:
- bat-arls-6: NOTRUN -> [SKIP][3] ([i915#10213] / [i915#11671]) +3 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/bat-arls-6/igt@[email protected]
- bat-arlh-3: NOTRUN -> [SKIP][4] ([i915#11671]) +3 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/bat-arlh-3/igt@[email protected]
* igt@i915_selftest@live:
- bat-mtlp-8: [PASS][5] -> [DMESG-FAIL][6] ([i915#12061]) +1 other test dmesg-fail
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/bat-mtlp-8/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/bat-mtlp-8/igt@[email protected]
- bat-dg2-8: [PASS][7] -> [DMESG-FAIL][8] ([i915#12061]) +1 other test dmesg-fail
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/bat-dg2-8/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/bat-dg2-8/igt@[email protected]
* igt@i915_selftest@live@client:
- bat-dg2-11: [PASS][9] -> [ABORT][10] ([i915#14201])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/bat-dg2-11/igt@i915_selftest@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/bat-dg2-11/igt@i915_selftest@[email protected]
* igt@i915_selftest@live@workarounds:
- bat-arls-5: [PASS][11] -> [DMESG-FAIL][12] ([i915#12061]) +1 other test dmesg-fail
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/bat-arls-5/igt@i915_selftest@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/bat-arls-5/igt@i915_selftest@[email protected]
#### Possible fixes ####
* igt@core_hotunplug@unbind-rebind:
- bat-arls-6: [ABORT][13] ([i915#14804]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/bat-arls-6/igt@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/bat-arls-6/igt@[email protected]
- bat-arlh-3: [ABORT][15] ([i915#14804]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/bat-arlh-3/igt@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/bat-arlh-3/igt@[email protected]
* igt@i915_selftest@live@late_gt_pm:
- bat-atsm-1: [ABORT][17] ([i915#14201]) -> [PASS][18]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/bat-atsm-1/igt@i915_selftest@live@late_gt_pm.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/bat-atsm-1/igt@i915_selftest@live@late_gt_pm.html
* igt@i915_selftest@live@workarounds:
- bat-dg2-9: [DMESG-FAIL][19] ([i915#12061]) -> [PASS][20] +1 other test pass
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/bat-dg2-9/igt@i915_selftest@[email protected]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/bat-dg2-9/igt@i915_selftest@[email protected]
#### Warnings ####
* igt@i915_selftest@live:
- bat-dg2-11: [DMESG-FAIL][21] ([i915#12061]) -> [ABORT][22] ([i915#12061])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/bat-dg2-11/igt@[email protected]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/bat-dg2-11/igt@[email protected]
- bat-atsm-1: [ABORT][23] ([i915#14201]) -> [DMESG-FAIL][24] ([i915#12061] / [i915#14204])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/bat-atsm-1/igt@[email protected]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/bat-atsm-1/igt@[email protected]
[i915#10213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10213
[i915#11671]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11671
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#12904]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12904
[i915#14201]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14201
[i915#14204]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14204
[i915#14804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14804
Build changes
-------------
* Linux: CI_DRM_16996 -> Patchwork_152907v1
CI-20190529: 20190529
CI_DRM_16996: b6d374ca303d7b9f6456bc6db0cfe6e4d30bf472 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8493: 8493
Patchwork_152907v1: b6d374ca303d7b9f6456bc6db0cfe6e4d30bf472 @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/index.html
Patchwork
CI✗ i915.CI.Full: failure for perf: Rework event_init checks
In reply to Robin Murphy== Series Details ==
== Series Details ==
Series: perf: Rework event_init checks
URL : https://patchwork.freedesktop.org/series/152907/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_16996_full -> Patchwork_152907v1_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_152907v1_full absolutely need to be verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_152907v1_full, please notify your bug team ([email protected]) to allow them to document this new failure mode, which will reduce false positives in CI.
Participating hosts (13 -> 13)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_152907v1_full:
### IGT changes ###
#### Possible regressions ####
* igt@perf_pmu@invalid-init:
- shard-dg2: [PASS][1] -> [FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-4/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-6/igt@[email protected]
- shard-rkl: [PASS][3] -> [FAIL][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
- shard-dg1: [PASS][5] -> [FAIL][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-17/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-18/igt@[email protected]
- shard-snb: [PASS][7] -> [FAIL][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-snb4/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-snb4/igt@[email protected]
- shard-tglu: [PASS][9] -> [FAIL][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-tglu-7/igt@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-2/igt@[email protected]
- shard-mtlp: [PASS][11] -> [FAIL][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-mtlp-2/igt@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-4/igt@[email protected]
Known issues
------------
Here are the changes found in Patchwork_152907v1_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@api_intel_bb@blit-reloc-purge-cache:
- shard-dg2: NOTRUN -> [SKIP][13] ([i915#8411])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
* igt@fbdev@nullptr:
- shard-rkl: [PASS][14] -> [SKIP][15] ([i915#14544] / [i915#2582])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@gem_ccs@suspend-resume@tile4-compressed-compfmt0-smem-lmem0:
- shard-dg2: NOTRUN -> [INCOMPLETE][16] ([i915#12392] / [i915#13356])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-7/igt@gem_ccs@[email protected]
* igt@gem_create@create-ext-cpu-access-sanity-check:
- shard-tglu: NOTRUN -> [SKIP][17] ([i915#6335])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@[email protected]
- shard-mtlp: NOTRUN -> [SKIP][18] ([i915#6335])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@gem_create@create-ext-set-pat:
- shard-dg2-9: NOTRUN -> [SKIP][19] ([i915#8562])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@gem_ctx_isolation@preservation-s3:
- shard-glk10: NOTRUN -> [INCOMPLETE][20] ([i915#12353]) +1 other test incomplete
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk10/igt@[email protected]
* igt@gem_ctx_persistence@hang:
- shard-dg2: NOTRUN -> [SKIP][21] ([i915#8555])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@gem_ctx_sseu@mmap-args:
- shard-dg2-9: NOTRUN -> [SKIP][22] ([i915#280])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@gem_eio@in-flight-suspend:
- shard-glk: NOTRUN -> [INCOMPLETE][23] ([i915#13390])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk1/igt@[email protected]
* igt@gem_exec_balancer@bonded-sync:
- shard-dg2: NOTRUN -> [SKIP][24] ([i915#4771])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@[email protected]
* igt@gem_exec_balancer@bonded-true-hang:
- shard-dg2: NOTRUN -> [SKIP][25] ([i915#4812]) +1 other test skip
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@gem_exec_balancer@parallel-balancer:
- shard-tglu-1: NOTRUN -> [SKIP][26] ([i915#4525])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
* igt@gem_exec_big@single:
- shard-tglu-1: NOTRUN -> [ABORT][27] ([i915#11713] / [i915#14756])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
* igt@gem_exec_fence@submit67:
- shard-dg2-9: NOTRUN -> [SKIP][28] ([i915#4812])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@gem_exec_flush@basic-uc-prw-default:
- shard-dg2-9: NOTRUN -> [SKIP][29] ([i915#3539])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@gem_exec_flush@basic-uc-set-default:
- shard-dg2: NOTRUN -> [SKIP][30] ([i915#3539])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@[email protected]
* igt@gem_exec_flush@basic-wb-prw-default:
- shard-dg2: NOTRUN -> [SKIP][31] ([i915#3539] / [i915#4852]) +2 other tests skip
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@[email protected]
* igt@gem_exec_flush@basic-wb-rw-before-default:
- shard-dg2-9: NOTRUN -> [SKIP][32] ([i915#3539] / [i915#4852]) +1 other test skip
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@gem_exec_reloc@basic-cpu-wc-active:
- shard-mtlp: NOTRUN -> [SKIP][33] ([i915#3281]) +2 other tests skip
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@gem_exec_reloc@basic-gtt:
- shard-dg2: NOTRUN -> [SKIP][34] ([i915#3281]) +10 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@[email protected]
* igt@gem_exec_reloc@basic-gtt-cpu-noreloc:
- shard-dg2-9: NOTRUN -> [SKIP][35] ([i915#3281]) +5 other tests skip
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@gem_exec_schedule@preempt-queue-chain:
- shard-dg2-9: NOTRUN -> [SKIP][36] ([i915#4537] / [i915#4812])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@gem_exec_schedule@preempt-queue-contexts-chain:
- shard-dg2: NOTRUN -> [SKIP][37] ([i915#4537] / [i915#4812])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
* igt@gem_fenced_exec_thrash@too-many-fences:
- shard-mtlp: NOTRUN -> [SKIP][38] ([i915#4860])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
- shard-dg2: NOTRUN -> [SKIP][39] ([i915#4860])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@gem_lmem_swapping@heavy-random@lmem0:
- shard-dg1: [PASS][40] -> [ABORT][41] ([i915#14804]) +3 other tests abort
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-16/igt@gem_lmem_swapping@[email protected]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-18/igt@gem_lmem_swapping@[email protected]
* igt@gem_lmem_swapping@heavy-verify-random:
- shard-glk: NOTRUN -> [SKIP][42] ([i915#4613])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk8/igt@[email protected]
* igt@gem_lmem_swapping@parallel-random:
- shard-dg2: [PASS][43] -> [ABORT][44] ([i915#14804]) +1 other test abort
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-2/igt@[email protected]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-11/igt@[email protected]
* igt@gem_lmem_swapping@verify-ccs:
- shard-tglu: NOTRUN -> [SKIP][45] ([i915#4613]) +1 other test skip
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@[email protected]
- shard-mtlp: NOTRUN -> [SKIP][46] ([i915#4613])
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@gem_media_vme:
- shard-dg2-9: NOTRUN -> [SKIP][47] ([i915#284])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@gem_media_vme.html
* igt@gem_mmap_gtt@basic-small-bo:
- shard-dg2: NOTRUN -> [SKIP][48] ([i915#4077]) +13 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@[email protected]
* igt@gem_mmap_gtt@flink-race:
- shard-mtlp: NOTRUN -> [SKIP][49] ([i915#4077]) +2 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@gem_mmap_wc@invalid-flags:
- shard-dg2: NOTRUN -> [SKIP][50] ([i915#4083]) +4 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@gem_mmap_wc@write-gtt-read-wc:
- shard-dg2-9: NOTRUN -> [SKIP][51] ([i915#4083])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@gem_partial_pwrite_pread@write-uncached:
- shard-dg2-9: NOTRUN -> [SKIP][52] ([i915#3282])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@gem_pread@snoop:
- shard-dg2: NOTRUN -> [SKIP][53] ([i915#3282]) +2 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@gem_pxp@create-regular-context-1:
- shard-rkl: [PASS][54] -> [TIMEOUT][55] ([i915#12917] / [i915#12964])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-8/igt@[email protected]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@gem_pxp@create-regular-context-2:
- shard-dg2-9: NOTRUN -> [SKIP][56] ([i915#4270])
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@gem_pxp@verify-pxp-execution-after-suspend-resume:
- shard-dg2: NOTRUN -> [SKIP][57] ([i915#4270]) +3 other tests skip
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@gem_render_copy@y-tiled-ccs-to-yf-tiled:
- shard-dg2: NOTRUN -> [SKIP][58] ([i915#5190] / [i915#8428]) +5 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@[email protected]
* igt@gem_render_copy@yf-tiled-ccs-to-y-tiled-ccs:
- shard-mtlp: NOTRUN -> [SKIP][59] ([i915#8428])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@gem_render_copy@yf-tiled-to-vebox-x-tiled:
- shard-dg2-9: NOTRUN -> [SKIP][60] ([i915#5190] / [i915#8428]) +2 other tests skip
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@gem_softpin@evict-snoop-interruptible:
- shard-dg2: NOTRUN -> [SKIP][61] ([i915#4885])
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@gem_tiled_pread_basic:
- shard-mtlp: NOTRUN -> [SKIP][62] ([i915#4079]) +1 other test skip
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@gem_tiled_pread_basic.html
- shard-dg2: NOTRUN -> [SKIP][63] ([i915#4079]) +2 other tests skip
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@gem_tiled_pread_basic.html
* igt@gem_unfence_active_buffers:
- shard-dg2: NOTRUN -> [SKIP][64] ([i915#4879])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@gem_unfence_active_buffers.html
* igt@gem_userptr_blits@dmabuf-unsync:
- shard-dg2: NOTRUN -> [SKIP][65] ([i915#3297]) +3 other tests skip
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
- shard-tglu: NOTRUN -> [SKIP][66] ([i915#3297])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@[email protected]
- shard-mtlp: NOTRUN -> [SKIP][67] ([i915#3297]) +1 other test skip
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@gem_userptr_blits@forbidden-operations:
- shard-dg2: NOTRUN -> [SKIP][68] ([i915#3282] / [i915#3297])
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@gem_userptr_blits@map-fixed-invalidate-busy:
- shard-dg2-9: NOTRUN -> [SKIP][69] ([i915#3297] / [i915#4880])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
- shard-dg2: NOTRUN -> [SKIP][70] ([i915#3297] / [i915#4880]) +1 other test skip
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
* igt@gem_userptr_blits@readonly-unsync:
- shard-dg2-9: NOTRUN -> [SKIP][71] ([i915#3297]) +3 other tests skip
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@gen3_render_tiledx_blits:
- shard-dg2-9: NOTRUN -> [SKIP][72] +4 other tests skip
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@gen3_render_tiledx_blits.html
* igt@gen9_exec_parse@allowed-all:
- shard-dg2-9: NOTRUN -> [SKIP][73] ([i915#2856]) +2 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
- shard-tglu-1: NOTRUN -> [SKIP][74] ([i915#2527] / [i915#2856])
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
* igt@gen9_exec_parse@unaligned-access:
- shard-dg2: NOTRUN -> [SKIP][75] ([i915#2856]) +3 other tests skip
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
- shard-tglu: NOTRUN -> [SKIP][76] ([i915#2527] / [i915#2856]) +1 other test skip
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-10/igt@[email protected]
* igt@i915_drm_fdinfo@virtual-busy-hang:
- shard-dg2-9: NOTRUN -> [SKIP][77] ([i915#14118])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@i915_drm_fdinfo@virtual-busy-idle-all:
- shard-dg2: NOTRUN -> [SKIP][78] ([i915#14118])
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-tglu-1: NOTRUN -> [SKIP][79] ([i915#14498])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
* igt@i915_pm_rps@min-max-config-loaded:
- shard-dg2: NOTRUN -> [SKIP][80] ([i915#11681] / [i915#6621])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
* igt@i915_power@sanity:
- shard-mtlp: [PASS][81] -> [SKIP][82] ([i915#7984])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-mtlp-6/igt@[email protected]
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-8/igt@[email protected]
* igt@i915_query@hwconfig_table:
- shard-tglu-1: NOTRUN -> [SKIP][83] ([i915#6245])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@i915_query@hwconfig_table.html
* igt@i915_suspend@sysfs-reader:
- shard-glk11: NOTRUN -> [INCOMPLETE][84] ([i915#4817])
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk11/igt@[email protected]
* igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling:
- shard-dg2-9: NOTRUN -> [SKIP][85] ([i915#4212])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- shard-dg2-9: NOTRUN -> [SKIP][86] ([i915#5190])
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_atomic@plane-primary-overlay-mutable-zpos:
- shard-dg2: NOTRUN -> [SKIP][87] ([i915#9531])
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
* igt@kms_atomic_transition@plane-all-transition-fencing@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [DMESG-WARN][88] ([i915#12964]) +4 other tests dmesg-warn
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-5/igt@kms_atomic_transition@[email protected]
* igt@kms_big_fb@4-tiled-32bpp-rotate-0:
- shard-tglu-1: NOTRUN -> [SKIP][89] ([i915#5286]) +1 other test skip
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
* igt@kms_big_fb@4-tiled-addfb-size-offset-overflow:
- shard-tglu: NOTRUN -> [SKIP][90] ([i915#5286]) +3 other tests skip
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@[email protected]
* igt@kms_big_fb@y-tiled-addfb:
- shard-mtlp: NOTRUN -> [SKIP][91] ([i915#6187])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
- shard-dg2: NOTRUN -> [SKIP][92] ([i915#5190]) +2 other tests skip
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@[email protected]
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
- shard-dg2: NOTRUN -> [SKIP][93] ([i915#4538] / [i915#5190]) +10 other tests skip
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-dg2-9: NOTRUN -> [SKIP][94] ([i915#4538] / [i915#5190]) +4 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc@pipe-c-hdmi-a-2:
- shard-dg2-9: NOTRUN -> [SKIP][95] ([i915#10307] / [i915#6095]) +24 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@kms_ccs@[email protected]
* igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs@pipe-a-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][96] ([i915#6095]) +9 other tests skip
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@kms_ccs@[email protected]
* igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs:
- shard-dg2: NOTRUN -> [SKIP][97] ([i915#12313]) +3 other tests skip
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
* igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4:
- shard-dg1: NOTRUN -> [SKIP][98] ([i915#6095]) +162 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-15/igt@kms_ccs@[email protected]
* igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-4:
- shard-dg1: NOTRUN -> [SKIP][99] ([i915#4423] / [i915#6095])
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-17/igt@kms_ccs@[email protected]
* igt@kms_ccs@crc-primary-basic-yf-tiled-ccs@pipe-a-dp-3:
- shard-dg2: NOTRUN -> [SKIP][100] ([i915#10307] / [i915#6095]) +126 other tests skip
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@kms_ccs@[email protected]
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-1:
- shard-rkl: NOTRUN -> [SKIP][101] ([i915#14098] / [i915#6095]) +34 other tests skip
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@kms_ccs@[email protected]
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc:
- shard-tglu: NOTRUN -> [SKIP][102] ([i915#6095]) +34 other tests skip
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-10/igt@[email protected]
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-1:
- shard-tglu-1: NOTRUN -> [SKIP][103] ([i915#6095]) +24 other tests skip
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-1.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc:
- shard-glk: NOTRUN -> [SKIP][104] +98 other tests skip
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk1/igt@[email protected]
* igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs:
- shard-dg2-9: NOTRUN -> [SKIP][105] ([i915#12805])
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-d-hdmi-a-2:
- shard-dg2-9: NOTRUN -> [SKIP][106] ([i915#6095]) +4 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@kms_ccs@[email protected]
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs@pipe-d-dp-3:
- shard-dg2: NOTRUN -> [SKIP][107] ([i915#6095]) +12 other tests skip
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@kms_ccs@[email protected]
* igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs:
- shard-glk: NOTRUN -> [INCOMPLETE][108] ([i915#12796]) +1 other test incomplete
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk8/igt@[email protected]
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs:
- shard-tglu: NOTRUN -> [SKIP][109] ([i915#12313]) +1 other test skip
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-10/igt@[email protected]
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][110] ([i915#6095]) +30 other tests skip
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-5/igt@kms_ccs@[email protected]
* igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
- shard-dg2-9: NOTRUN -> [SKIP][111] ([i915#12313])
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][112] ([i915#10307] / [i915#10434] / [i915#6095])
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-4/igt@kms_ccs@[email protected]
* igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][113] ([i915#13781]) +4 other tests skip
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@kms_cdclk@[email protected]
* igt@kms_cdclk@plane-scaling@pipe-d-hdmi-a-2:
- shard-dg2-9: NOTRUN -> [SKIP][114] ([i915#13783]) +4 other tests skip
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@kms_cdclk@[email protected]
* igt@kms_chamelium_edid@dp-edid-resolution-list:
- shard-tglu: NOTRUN -> [SKIP][115] ([i915#11151] / [i915#7828]) +3 other tests skip
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-10/igt@[email protected]
* igt@kms_chamelium_hpd@dp-hpd-storm:
- shard-dg2: NOTRUN -> [SKIP][116] ([i915#11151] / [i915#7828]) +8 other tests skip
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@kms_chamelium_hpd@dp-hpd-storm-disable:
- shard-tglu-1: NOTRUN -> [SKIP][117] ([i915#11151] / [i915#7828]) +3 other tests skip
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
* igt@kms_chamelium_hpd@hdmi-hpd-with-enabled-mode:
- shard-mtlp: NOTRUN -> [SKIP][118] ([i915#11151] / [i915#7828]) +1 other test skip
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@kms_chamelium_hpd@vga-hpd-for-each-pipe:
- shard-dg2-9: NOTRUN -> [SKIP][119] ([i915#11151] / [i915#7828]) +3 other tests skip
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_color@ctm-negative:
- shard-rkl: [PASS][120] -> [SKIP][121] ([i915#12655] / [i915#14544])
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_content_protection@atomic-dpms:
- shard-tglu-1: NOTRUN -> [SKIP][122] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424])
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
* igt@kms_content_protection@lic-type-0@pipe-a-dp-3:
- shard-dg2: NOTRUN -> [FAIL][123] ([i915#7173])
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-11/igt@kms_content_protection@[email protected]
* igt@kms_content_protection@srm:
- shard-dg2: NOTRUN -> [SKIP][124] ([i915#7118])
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
* igt@kms_content_protection@type1:
- shard-dg2-9: NOTRUN -> [SKIP][125] ([i915#7118] / [i915#9424])
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_cursor_crc@cursor-offscreen-512x512:
- shard-dg2-9: NOTRUN -> [SKIP][126] ([i915#13049])
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_cursor_crc@cursor-onscreen-256x85:
- shard-rkl: [PASS][127] -> [FAIL][128] ([i915#13566])
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-3/igt@[email protected]
* igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-2:
- shard-rkl: NOTRUN -> [FAIL][129] ([i915#13566]) +2 other tests fail
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-3/igt@kms_cursor_crc@[email protected]
* igt@kms_cursor_crc@cursor-random-256x85:
- shard-tglu: NOTRUN -> [FAIL][130] ([i915#13566]) +1 other test fail
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-10/igt@[email protected]
* igt@kms_cursor_crc@cursor-sliding-32x10:
- shard-dg2: NOTRUN -> [SKIP][131] ([i915#3555]) +3 other tests skip
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
- shard-tglu: NOTRUN -> [SKIP][132] ([i915#3555]) +1 other test skip
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@[email protected]
- shard-mtlp: NOTRUN -> [SKIP][133] ([i915#3555] / [i915#8814])
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@kms_cursor_crc@cursor-suspend:
- shard-snb: [PASS][134] -> [INCOMPLETE][135] ([i915#14152]) +1 other test incomplete
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-snb6/igt@[email protected]
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-snb5/igt@[email protected]
* igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic:
- shard-dg2-9: NOTRUN -> [SKIP][136] ([i915#13046] / [i915#5354]) +3 other tests skip
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- shard-tglu: NOTRUN -> [SKIP][137] ([i915#4103])
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-10/igt@[email protected]
- shard-dg2: NOTRUN -> [SKIP][138] ([i915#4103] / [i915#4213])
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@kms_cursor_legacy@basic-flip-before-cursor-legacy:
- shard-dg1: [PASS][139] -> [DMESG-WARN][140] ([i915#4391] / [i915#4423])
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-12/igt@[email protected]
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-17/igt@[email protected]
* igt@kms_cursor_legacy@cursora-vs-flipb-toggle:
- shard-dg2: NOTRUN -> [SKIP][141] ([i915#13046] / [i915#5354]) +4 other tests skip
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
* igt@kms_cursor_legacy@cursorb-vs-flipa-atomic:
- shard-mtlp: NOTRUN -> [SKIP][142] ([i915#9809])
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@kms_cursor_legacy@forked-move@pipe-a:
- shard-dg2: NOTRUN -> [ABORT][143] ([i915#14804]) +1 other test abort
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@kms_cursor_legacy@[email protected]
* igt@kms_cursor_legacy@torture-move:
- shard-glk10: NOTRUN -> [ABORT][144] ([i915#14804]) +1 other test abort
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk10/igt@[email protected]
* igt@kms_dp_link_training@non-uhbr-mst:
- shard-dg2: NOTRUN -> [SKIP][145] ([i915#13749])
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@[email protected]
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-dg2-9: NOTRUN -> [SKIP][146] ([i915#13749])
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_dp_linktrain_fallback@dsc-fallback:
- shard-dg2-9: NOTRUN -> [SKIP][147] ([i915#13707])
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
- shard-tglu-1: NOTRUN -> [SKIP][148] ([i915#13707])
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
* igt@kms_draw_crc@draw-method-mmap-gtt:
- shard-dg2: NOTRUN -> [SKIP][149] ([i915#8812])
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
* igt@kms_dsc@dsc-fractional-bpp:
- shard-dg2: NOTRUN -> [SKIP][150] ([i915#3840] / [i915#9688])
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
- shard-tglu: NOTRUN -> [SKIP][151] ([i915#3840]) +1 other test skip
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@[email protected]
- shard-mtlp: NOTRUN -> [SKIP][152] ([i915#3840] / [i915#9688])
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@kms_dsc@dsc-fractional-bpp-with-bpc:
- shard-dg2: NOTRUN -> [SKIP][153] ([i915#3840])
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@kms_dsc@dsc-with-output-formats-with-bpc:
- shard-mtlp: NOTRUN -> [SKIP][154] ([i915#3555] / [i915#3840] / [i915#9053])
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
- shard-dg2: NOTRUN -> [SKIP][155] ([i915#3840] / [i915#9053])
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
- shard-tglu: NOTRUN -> [SKIP][156] ([i915#3840] / [i915#9053])
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@[email protected]
* igt@kms_fbcon_fbt@fbc:
- shard-rkl: [PASS][157] -> [SKIP][158] ([i915#14544] / [i915#14561])
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_feature_discovery@display-2x:
- shard-tglu-1: NOTRUN -> [SKIP][159] ([i915#1839])
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
* igt@kms_feature_discovery@psr1:
- shard-dg2: NOTRUN -> [SKIP][160] ([i915#658])
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@[email protected]
* igt@kms_flip@2x-blocking-wf_vblank:
- shard-dg2: NOTRUN -> [SKIP][161] ([i915#9934]) +6 other tests skip
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@kms_flip@2x-blocking-wf_vblank.html
* igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
- shard-dg2-9: NOTRUN -> [SKIP][162] ([i915#9934]) +3 other tests skip
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html
* igt@kms_flip@2x-flip-vs-modeset:
- shard-tglu-1: NOTRUN -> [SKIP][163] ([i915#3637] / [i915#9934])
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
* igt@kms_flip@2x-flip-vs-wf_vblank:
- shard-tglu: NOTRUN -> [SKIP][164] ([i915#3637] / [i915#9934]) +2 other tests skip
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@kms_flip@2x-flip-vs-wf_vblank.html
* igt@kms_flip@2x-plain-flip-ts-check:
- shard-mtlp: NOTRUN -> [SKIP][165] ([i915#3637] / [i915#9934])
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@kms_flip@basic-flip-vs-dpms:
- shard-glk: NOTRUN -> [ABORT][166] ([i915#14804]) +1 other test abort
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk5/igt@[email protected]
* igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible:
- shard-rkl: [PASS][167] -> [SKIP][168] ([i915#14544] / [i915#3637]) +2 other tests skip
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
* igt@kms_flip@flip-vs-dpms-off-vs-modeset-interruptible:
- shard-glk: [PASS][169] -> [ABORT][170] ([i915#14804]) +4 other tests abort
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-glk2/igt@[email protected]
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk5/igt@[email protected]
* igt@kms_flip@flip-vs-dpms-on-nop:
- shard-rkl: [PASS][171] -> [SKIP][172] ([i915#14544] / [i915#14553])
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1:
- shard-tglu: NOTRUN -> [FAIL][173] ([i915#13027]) +1 other test fail
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@kms_flip@[email protected]
* igt@kms_flip@flip-vs-fences-interruptible:
- shard-dg2-9: NOTRUN -> [SKIP][174] ([i915#8381])
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_flip@flip-vs-suspend:
- shard-glk: NOTRUN -> [INCOMPLETE][175] ([i915#12745] / [i915#4839])
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk6/igt@[email protected]
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-dg1: [PASS][176] -> [DMESG-WARN][177] ([i915#4423]) +5 other tests dmesg-warn
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-13/igt@[email protected]
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-15/igt@[email protected]
* igt@kms_flip@flip-vs-suspend-interruptible@d-hdmi-a4:
- shard-dg1: NOTRUN -> [DMESG-WARN][178] ([i915#4423]) +1 other test dmesg-warn
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-15/igt@kms_flip@[email protected]
* igt@kms_flip@flip-vs-suspend@a-hdmi-a1:
- shard-glk: NOTRUN -> [INCOMPLETE][179] ([i915#12745])
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk6/igt@kms_flip@[email protected]
* igt@kms_flip@flip-vs-suspend@b-hdmi-a1:
- shard-snb: [PASS][180] -> [DMESG-WARN][181] ([i915#13899]) +1 other test dmesg-warn
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-snb6/igt@kms_flip@[email protected]
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-snb5/igt@kms_flip@[email protected]
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
- shard-tglu: NOTRUN -> [SKIP][182] ([i915#2672] / [i915#3555])
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode:
- shard-tglu: NOTRUN -> [SKIP][183] ([i915#2587] / [i915#2672])
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode:
- shard-rkl: NOTRUN -> [SKIP][184] ([i915#2672]) +1 other test skip
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][185] ([i915#2672]) +2 other tests skip
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling:
- shard-dg2: NOTRUN -> [SKIP][186] ([i915#2672] / [i915#3555] / [i915#5190]) +2 other tests skip
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode:
- shard-tglu-1: NOTRUN -> [SKIP][187] ([i915#2587] / [i915#2672]) +1 other test skip
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling:
- shard-rkl: [PASS][188] -> [SKIP][189] ([i915#14544] / [i915#3555])
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling.html
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling:
- shard-dg2-9: NOTRUN -> [SKIP][190] ([i915#2672] / [i915#3555]) +1 other test skip
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html
- shard-tglu-1: NOTRUN -> [SKIP][191] ([i915#2672] / [i915#3555]) +1 other test skip
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-dg2-9: NOTRUN -> [SKIP][192] ([i915#2672]) +1 other test skip
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu:
- shard-rkl: [PASS][193] -> [SKIP][194] ([i915#14544] / [i915#1849] / [i915#5354]) +3 other tests skip
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu.html
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-gtt:
- shard-mtlp: NOTRUN -> [SKIP][195] ([i915#8708]) +1 other test skip
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-2p-indfb-fliptrack-mmap-gtt:
- shard-glk: [PASS][196] -> [SKIP][197] +3 other tests skip
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-glk1/igt@[email protected]
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk8/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt:
- shard-dg2-9: NOTRUN -> [SKIP][198] ([i915#5354]) +11 other tests skip
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-wc:
- shard-dg2-9: NOTRUN -> [SKIP][199] ([i915#8708]) +8 other tests skip
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite:
- shard-dg2: NOTRUN -> [SKIP][200] ([i915#3458]) +13 other tests skip
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-pgflip-blt:
- shard-tglu: NOTRUN -> [SKIP][201] +32 other tests skip
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-plflip-blt:
- shard-dg2: NOTRUN -> [SKIP][202] ([i915#5354]) +32 other tests skip
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-cpu:
- shard-mtlp: NOTRUN -> [SKIP][203] ([i915#1825]) +3 other tests skip
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-shrfb-fliptrack-mmap-gtt:
- shard-dg2: NOTRUN -> [SKIP][204] ([i915#8708]) +17 other tests skip
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite:
- shard-dg2-9: NOTRUN -> [SKIP][205] ([i915#3458]) +6 other tests skip
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-msflip-blt:
- shard-tglu-1: NOTRUN -> [SKIP][206] +31 other tests skip
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
* igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary:
- shard-glk10: NOTRUN -> [SKIP][207] +92 other tests skip
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk10/igt@[email protected]
* igt@kms_hdr@invalid-hdr:
- shard-dg2: NOTRUN -> [SKIP][208] ([i915#3555] / [i915#8228])
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
- shard-tglu: NOTRUN -> [SKIP][209] ([i915#3555] / [i915#8228])
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@[email protected]
* igt@kms_invalid_mode@int-max-clock:
- shard-rkl: [PASS][210] -> [SKIP][211] ([i915#14544] / [i915#3555] / [i915#8826])
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_invalid_mode@zero-clock:
- shard-glk11: NOTRUN -> [SKIP][212] +4 other tests skip
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk11/igt@[email protected]
* igt@kms_joiner@invalid-modeset-big-joiner:
- shard-tglu: NOTRUN -> [SKIP][213] ([i915#10656])
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@[email protected]
- shard-mtlp: NOTRUN -> [SKIP][214] ([i915#10656])
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
- shard-dg2: NOTRUN -> [SKIP][215] ([i915#10656])
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@kms_joiner@invalid-modeset-force-big-joiner:
- shard-dg2: [PASS][216] -> [SKIP][217] ([i915#12388])
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-11/igt@[email protected]
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-1/igt@[email protected]
* igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
- shard-dg2: NOTRUN -> [SKIP][218] ([i915#13522])
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@[email protected]
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-dg2-9: NOTRUN -> [SKIP][219] ([i915#4816])
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_pipe_b_c_ivb@disable-pipe-b-enable-pipe-c:
- shard-dg2: NOTRUN -> [SKIP][220] +9 other tests skip
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
* igt@kms_pipe_b_c_ivb@enable-pipe-c-while-b-has-3-lanes:
- shard-mtlp: NOTRUN -> [SKIP][221] +4 other tests skip
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@kms_plane_alpha_blend@constant-alpha-mid:
- shard-rkl: [PASS][222] -> [SKIP][223] ([i915#14544] / [i915#7294])
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_plane_multiple@2x-tiling-x:
- shard-dg2: NOTRUN -> [SKIP][224] ([i915#13958])
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
- shard-tglu: NOTRUN -> [SKIP][225] ([i915#13958])
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@[email protected]
- shard-mtlp: NOTRUN -> [SKIP][226] ([i915#13958])
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-c:
- shard-tglu: NOTRUN -> [SKIP][227] ([i915#12247]) +4 other tests skip
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-10/igt@kms_plane_scaling@[email protected]
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5:
- shard-rkl: [PASS][228] -> [SKIP][229] ([i915#14544] / [i915#6953] / [i915#8152])
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a:
- shard-rkl: [PASS][230] -> [SKIP][231] ([i915#12247] / [i915#14544])
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@kms_plane_scaling@[email protected]
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@kms_plane_scaling@[email protected]
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-b:
- shard-rkl: [PASS][232] -> [SKIP][233] ([i915#12247] / [i915#14544] / [i915#8152])
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@kms_plane_scaling@[email protected]
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@kms_plane_scaling@[email protected]
* igt@kms_pm_dc@dc6-dpms:
- shard-dg2: NOTRUN -> [SKIP][234] ([i915#14104])
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@[email protected]
* igt@kms_pm_dc@dc9-dpms:
- shard-tglu: NOTRUN -> [SKIP][235] ([i915#4281])
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-10/igt@[email protected]
* igt@kms_pm_lpsp@screens-disabled:
- shard-dg2: NOTRUN -> [SKIP][236] ([i915#8430])
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
* igt@kms_pm_rpm@dpms-non-lpsp:
- shard-rkl: [PASS][237] -> [SKIP][238] ([i915#14544] / [i915#9519])
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
- shard-dg2-9: NOTRUN -> [SKIP][239] ([i915#9519])
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_pm_rpm@modeset-non-lpsp-stress:
- shard-rkl: [PASS][240] -> [SKIP][241] ([i915#9519]) +1 other test skip
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-5/igt@[email protected]
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-7/igt@[email protected]
* igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
- shard-tglu-1: NOTRUN -> [SKIP][242] ([i915#9519]) +1 other test skip
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
* igt@kms_pm_rpm@pm-tiling:
- shard-dg2-9: NOTRUN -> [SKIP][243] ([i915#4077]) +3 other tests skip
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_prime@basic-crc-hybrid:
- shard-dg2: NOTRUN -> [SKIP][244] ([i915#6524] / [i915#6805])
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf:
- shard-dg2-9: NOTRUN -> [SKIP][245] ([i915#11520]) +3 other tests skip
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf:
- shard-dg2: NOTRUN -> [SKIP][246] ([i915#11520]) +7 other tests skip
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf:
- shard-glk10: NOTRUN -> [SKIP][247] ([i915#11520]) +2 other tests skip
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk10/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area:
- shard-glk11: NOTRUN -> [SKIP][248] ([i915#11520])
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk11/igt@[email protected]
* igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf:
- shard-tglu-1: NOTRUN -> [SKIP][249] ([i915#11520]) +3 other tests skip
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
* igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area:
- shard-tglu: NOTRUN -> [SKIP][250] ([i915#11520]) +3 other tests skip
[250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-10/igt@[email protected]
* igt@kms_psr2_sf@pr-plane-move-sf-dmg-area:
- shard-glk: NOTRUN -> [SKIP][251] ([i915#11520]) +1 other test skip
[251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk8/igt@[email protected]
* igt@kms_psr@fbc-pr-primary-mmap-cpu:
- shard-tglu: NOTRUN -> [SKIP][252] ([i915#9732]) +9 other tests skip
[252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-10/igt@[email protected]
* igt@kms_psr@fbc-psr-primary-mmap-gtt:
- shard-dg2-9: NOTRUN -> [SKIP][253] ([i915#1072] / [i915#9732]) +9 other tests skip
[253]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_psr@pr-sprite-plane-move:
- shard-mtlp: NOTRUN -> [SKIP][254] ([i915#9688]) +2 other tests skip
[254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@kms_psr@pr-sprite-plane-onoff:
- shard-tglu-1: NOTRUN -> [SKIP][255] ([i915#9732]) +7 other tests skip
[255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
* igt@kms_psr@psr2-cursor-blt:
- shard-dg2: NOTRUN -> [SKIP][256] ([i915#1072] / [i915#9732]) +20 other tests skip
[256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@kms_rmfb@rmfb-ioctl:
- shard-rkl: [PASS][257] -> [SKIP][258] ([i915#14544]) +27 other tests skip
[257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_rotation_crc@bad-pixel-format:
- shard-dg2: NOTRUN -> [SKIP][259] ([i915#12755])
[259]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@kms_scaling_modes@scaling-mode-center:
- shard-tglu-1: NOTRUN -> [SKIP][260] ([i915#3555])
[260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-1/igt@[email protected]
- shard-dg2-9: NOTRUN -> [SKIP][261] ([i915#3555])
[261]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@[email protected]
* igt@kms_scaling_modes@scaling-mode-none:
- shard-mtlp: NOTRUN -> [SKIP][262] ([i915#3555] / [i915#5030] / [i915#9041])
[262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@kms_scaling_modes@scaling-mode-none@pipe-a-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][263] ([i915#5030]) +2 other tests skip
[263]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@kms_scaling_modes@[email protected]
* igt@kms_scaling_modes@scaling-mode-none@pipe-d-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][264] ([i915#5030] / [i915#9041])
[264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@kms_scaling_modes@[email protected]
* igt@kms_universal_plane@cursor-fb-leak:
- shard-rkl: [PASS][265] -> [FAIL][266] ([i915#9196])
[265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-5/igt@[email protected]
* igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [FAIL][267] ([i915#9196]) +1 other test fail
[267]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-5/igt@kms_universal_plane@[email protected]
* igt@kms_vrr@seamless-rr-switch-drrs:
- shard-tglu: NOTRUN -> [SKIP][268] ([i915#9906])
[268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-10/igt@[email protected]
* igt@kms_vrr@seamless-rr-switch-vrr:
- shard-dg2: NOTRUN -> [SKIP][269] ([i915#9906]) +1 other test skip
[269]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@[email protected]
* igt@kms_writeback@writeback-pixel-formats:
- shard-dg2: NOTRUN -> [SKIP][270] ([i915#2437] / [i915#9412])
[270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-10/igt@[email protected]
* igt@perf_pmu@busy-accuracy-50:
- shard-rkl: [PASS][271] -> [DMESG-WARN][272] ([i915#12964]) +9 other tests dmesg-warn
[271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-8/igt@[email protected]
[272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@perf_pmu@busy-double-start@ccs0:
- shard-dg2: [PASS][273] -> [FAIL][274] ([i915#4349])
[273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-8/igt@perf_pmu@[email protected]
[274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-1/igt@perf_pmu@[email protected]
* igt@perf_pmu@busy-double-start@vcs0:
- shard-mtlp: [PASS][275] -> [FAIL][276] ([i915#4349])
[275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-mtlp-5/igt@perf_pmu@[email protected]
[276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-1/igt@perf_pmu@[email protected]
* igt@perf_pmu@rc6-all-gts:
- shard-tglu: NOTRUN -> [SKIP][277] ([i915#8516])
[277]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-3/igt@[email protected]
- shard-dg2: NOTRUN -> [SKIP][278] ([i915#8516])
[278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@[email protected]
* igt@perf_pmu@semaphore-busy@vecs0:
- shard-dg2-9: NOTRUN -> [FAIL][279] ([i915#4349]) +5 other tests fail
[279]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-9/igt@perf_pmu@[email protected]
* igt@prime_mmap@test_aperture_limit:
- shard-dg2: NOTRUN -> [SKIP][280] ([i915#14121]) +1 other test skip
[280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-8/igt@prime_mmap@test_aperture_limit.html
* igt@prime_vgem@basic-read:
- shard-dg2: NOTRUN -> [SKIP][281] ([i915#3291] / [i915#3708])
[281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
#### Possible fixes ####
* igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0:
- shard-dg2: [INCOMPLETE][282] ([i915#13356]) -> [PASS][283]
[282]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-5/igt@gem_ccs@[email protected]
[283]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-7/igt@gem_ccs@[email protected]
* igt@gem_ctx_engines@independent@bcs0:
- shard-rkl: [DMESG-WARN][284] ([i915#12964]) -> [PASS][285] +6 other tests pass
[284]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@gem_ctx_engines@[email protected]
[285]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-3/igt@gem_ctx_engines@[email protected]
* igt@gem_eio@in-flight-contexts-immediate:
- shard-dg2: [DMESG-WARN][286] ([i915#14446]) -> [PASS][287]
[286]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-5/igt@[email protected]
[287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-7/igt@[email protected]
* igt@gem_mmap_offset@clear-via-pagefault:
- shard-mtlp: [ABORT][288] -> [PASS][289] +1 other test pass
[288]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-mtlp-5/igt@[email protected]
[289]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-2/igt@[email protected]
* igt@gem_pxp@reject-modify-context-protection-off-2:
- shard-rkl: [TIMEOUT][290] ([i915#12917] / [i915#12964]) -> [PASS][291]
[290]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-5/igt@[email protected]
[291]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-8/igt@[email protected]
* igt@i915_module_load@reload-with-fault-injection:
- shard-dg2: [DMESG-WARN][292] ([i915#13447]) -> [PASS][293]
[292]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-7/igt@[email protected]
[293]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-5/igt@[email protected]
* igt@i915_suspend@basic-s3-without-i915:
- shard-dg1: [DMESG-WARN][294] ([i915#4391] / [i915#4423]) -> [PASS][295] +1 other test pass
[294]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-18/igt@[email protected]
[295]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-19/igt@[email protected]
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-mtlp: [FAIL][296] ([i915#5138]) -> [PASS][297] +1 other test pass
[296]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-mtlp-4/igt@[email protected]
[297]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-4/igt@[email protected]
* igt@kms_busy@extended-modeset-hang-oldfb@pipe-a:
- shard-glk: [ABORT][298] ([i915#14804]) -> [PASS][299] +2 other tests pass
[298]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-glk6/igt@kms_busy@[email protected]
[299]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk6/igt@kms_busy@[email protected]
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs:
- shard-dg2: [ABORT][300] ([i915#8213]) -> [PASS][301]
[300]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-10/igt@[email protected]
[301]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-3/igt@[email protected]
* igt@kms_color@ctm-green-to-red:
- shard-rkl: [SKIP][302] ([i915#12655] / [i915#14544]) -> [PASS][303]
[302]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[303]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@kms_cursor_crc@cursor-alpha-opaque:
- shard-dg1: [DMESG-WARN][304] ([i915#4423]) -> [PASS][305] +1 other test pass
[304]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-14/igt@[email protected]
[305]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-13/igt@[email protected]
* igt@kms_cursor_crc@cursor-sliding-128x42:
- shard-tglu: [FAIL][306] ([i915#13566]) -> [PASS][307] +1 other test pass
[306]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-tglu-8/igt@[email protected]
[307]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-tglu-8/igt@[email protected]
* igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size:
- shard-rkl: [SKIP][308] ([i915#11190] / [i915#14544]) -> [PASS][309]
[308]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[309]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@kms_draw_crc@draw-method-pwrite:
- shard-rkl: [SKIP][310] ([i915#14544]) -> [PASS][311] +24 other tests pass
[310]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[311]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_flip@absolute-wf_vblank-interruptible:
- shard-rkl: [SKIP][312] ([i915#14544] / [i915#3637]) -> [PASS][313] +3 other tests pass
[312]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@kms_flip@absolute-wf_vblank-interruptible.html
[313]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@kms_flip@absolute-wf_vblank-interruptible.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling:
- shard-rkl: [SKIP][314] ([i915#14544] / [i915#3555]) -> [PASS][315]
[314]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html
[315]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html
* igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw:
- shard-rkl: [SKIP][316] ([i915#14544] / [i915#1849] / [i915#5354]) -> [PASS][317] +6 other tests pass
[316]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[317]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render:
- shard-dg2: [FAIL][318] ([i915#6880]) -> [PASS][319]
[318]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render.html
[319]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-shrfb-fliptrack-mmap-gtt:
- shard-glk: [SKIP][320] -> [PASS][321] +1 other test pass
[320]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-glk8/igt@[email protected]
[321]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk2/igt@[email protected]
* igt@kms_hdr@bpc-switch:
- shard-dg2: [SKIP][322] ([i915#3555] / [i915#8228]) -> [PASS][323]
[322]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-2/igt@[email protected]
[323]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-11/igt@[email protected]
* igt@kms_plane_alpha_blend@alpha-basic:
- shard-rkl: [SKIP][324] ([i915#14544] / [i915#7294]) -> [PASS][325] +1 other test pass
[324]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[325]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20:
- shard-rkl: [SKIP][326] ([i915#12247] / [i915#14544] / [i915#8152]) -> [PASS][327] +3 other tests pass
[326]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[327]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-a:
- shard-rkl: [SKIP][328] ([i915#12247] / [i915#14544]) -> [PASS][329] +2 other tests pass
[328]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@kms_plane_scaling@[email protected]
[329]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@kms_plane_scaling@[email protected]
* igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25:
- shard-rkl: [SKIP][330] ([i915#14544] / [i915#6953] / [i915#8152]) -> [PASS][331]
[330]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25.html
[331]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5:
- shard-rkl: [SKIP][332] ([i915#12247] / [i915#14544] / [i915#3555] / [i915#6953] / [i915#8152]) -> [PASS][333]
[332]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[333]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@kms_pm_rpm@dpms-mode-unset-lpsp:
- shard-rkl: [SKIP][334] ([i915#14544] / [i915#9519]) -> [PASS][335]
[334]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[335]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@kms_pm_rpm@dpms-non-lpsp:
- shard-dg2: [SKIP][336] ([i915#9519]) -> [PASS][337]
[336]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-4/igt@[email protected]
[337]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-6/igt@[email protected]
* igt@kms_vrr@negative-basic:
- shard-mtlp: [FAIL][338] ([i915#10393]) -> [PASS][339] +1 other test pass
[338]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-mtlp-5/igt@[email protected]
[339]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-1/igt@[email protected]
* igt@perf_pmu@busy-double-start@vcs1:
- shard-mtlp: [FAIL][340] ([i915#4349]) -> [PASS][341]
[340]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-mtlp-5/igt@perf_pmu@[email protected]
[341]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-1/igt@perf_pmu@[email protected]
#### Warnings ####
* igt@api_intel_bb@crc32:
- shard-rkl: [SKIP][342] ([i915#6230]) -> [SKIP][343] ([i915#14544] / [i915#6230])
[342]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[343]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@gem_ccs@ctrl-surf-copy-new-ctx:
- shard-rkl: [SKIP][344] ([i915#14544] / [i915#9323]) -> [SKIP][345] ([i915#9323])
[344]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[345]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@gem_create@create-ext-cpu-access-big:
- shard-rkl: [SKIP][346] ([i915#6335]) -> [SKIP][347] ([i915#14544] / [i915#6335])
[346]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[347]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@gem_exec_balancer@parallel-keep-submit-fence:
- shard-rkl: [SKIP][348] ([i915#14544] / [i915#4525]) -> [SKIP][349] ([i915#4525])
[348]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[349]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@gem_exec_balancer@parallel-out-fence:
- shard-rkl: [SKIP][350] ([i915#4525]) -> [SKIP][351] ([i915#14544] / [i915#4525])
[350]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[351]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@gem_exec_reloc@basic-write-read:
- shard-rkl: [SKIP][352] ([i915#14544] / [i915#3281]) -> [SKIP][353] ([i915#3281]) +2 other tests skip
[352]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[353]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@gem_exec_reloc@basic-write-read-active:
- shard-rkl: [SKIP][354] ([i915#3281]) -> [SKIP][355] ([i915#14544] / [i915#3281]) +6 other tests skip
[354]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[355]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@gem_lmem_swapping@heavy-verify-random-ccs:
- shard-rkl: [SKIP][356] ([i915#4613]) -> [SKIP][357] ([i915#14544] / [i915#4613]) +1 other test skip
[356]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[357]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@gem_lmem_swapping@parallel-random-verify-ccs:
- shard-rkl: [SKIP][358] ([i915#14544] / [i915#4613]) -> [SKIP][359] ([i915#4613]) +1 other test skip
[358]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[359]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@gem_partial_pwrite_pread@reads:
- shard-rkl: [SKIP][360] ([i915#14544] / [i915#3282]) -> [SKIP][361] ([i915#3282]) +3 other tests skip
[360]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[361]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@gem_partial_pwrite_pread@writes-after-reads-display:
- shard-rkl: [SKIP][362] ([i915#3282]) -> [SKIP][363] ([i915#14544] / [i915#3282]) +3 other tests skip
[362]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[363]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@gem_pxp@protected-encrypted-src-copy-not-readible:
- shard-rkl: [SKIP][364] ([i915#14544] / [i915#4270]) -> [TIMEOUT][365] ([i915#12917] / [i915#12964]) +1 other test timeout
[364]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[365]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@gem_set_tiling_vs_blt@tiled-to-tiled:
- shard-rkl: [SKIP][366] ([i915#14544] / [i915#8411]) -> [SKIP][367] ([i915#8411]) +1 other test skip
[366]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[367]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@gem_userptr_blits@unsync-unmap-cycles:
- shard-rkl: [SKIP][368] ([i915#14544] / [i915#3297]) -> [SKIP][369] ([i915#3297]) +2 other tests skip
[368]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[369]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@gen9_exec_parse@bb-start-out:
- shard-rkl: [SKIP][370] ([i915#2527]) -> [SKIP][371] ([i915#14544] / [i915#2527]) +2 other tests skip
[370]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[371]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@i915_pm_freq_api@freq-suspend:
- shard-rkl: [SKIP][372] ([i915#14544] / [i915#8399]) -> [SKIP][373] ([i915#8399])
[372]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[373]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_atomic_transition@plane-toggle-modeset-transition:
- shard-glk: [ABORT][374] ([i915#14814]) -> [ABORT][375] ([i915#14804] / [i915#14814])
[374]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-glk1/igt@[email protected]
[375]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-glk8/igt@[email protected]
* igt@kms_big_fb@4-tiled-16bpp-rotate-270:
- shard-rkl: [SKIP][376] ([i915#5286]) -> [SKIP][377] ([i915#14544]) +1 other test skip
[376]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[377]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0:
- shard-rkl: [SKIP][378] ([i915#14544]) -> [SKIP][379] ([i915#5286]) +1 other test skip
[378]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[379]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_big_fb@linear-16bpp-rotate-90:
- shard-rkl: [SKIP][380] ([i915#3638]) -> [SKIP][381] ([i915#14544])
[380]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[381]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_big_fb@x-tiled-64bpp-rotate-270:
- shard-rkl: [SKIP][382] ([i915#14544]) -> [SKIP][383] ([i915#3638])
[382]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[383]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs:
- shard-rkl: [SKIP][384] ([i915#14544]) -> [SKIP][385] ([i915#14098] / [i915#6095]) +4 other tests skip
[384]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[385]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs:
- shard-dg1: [SKIP][386] ([i915#6095]) -> [SKIP][387] ([i915#4423] / [i915#6095])
[386]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-12/igt@[email protected]
[387]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-17/igt@[email protected]
* igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs:
- shard-rkl: [SKIP][388] ([i915#14544]) -> [SKIP][389] ([i915#12313]) +1 other test skip
[388]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[389]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-rkl: [SKIP][390] ([i915#14544]) -> [SKIP][391] ([i915#12805])
[390]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[391]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs:
- shard-rkl: [SKIP][392] ([i915#14098] / [i915#6095]) -> [SKIP][393] ([i915#14544]) +5 other tests skip
[392]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[393]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-2:
- shard-rkl: [SKIP][394] ([i915#14098] / [i915#6095]) -> [SKIP][395] ([i915#6095]) +3 other tests skip
[394]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-5/igt@kms_ccs@[email protected]
[395]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-8/igt@kms_ccs@[email protected]
* igt@kms_chamelium_frames@vga-frame-dump:
- shard-rkl: [SKIP][396] ([i915#11151] / [i915#7828]) -> [SKIP][397] ([i915#11151] / [i915#14544] / [i915#7828]) +2 other tests skip
[396]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[397]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_chamelium_hpd@dp-hpd-with-enabled-mode:
- shard-rkl: [SKIP][398] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][399] ([i915#11151] / [i915#7828]) +3 other tests skip
[398]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[399]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_color@deep-color:
- shard-rkl: [SKIP][400] ([i915#12655] / [i915#3555]) -> [SKIP][401] ([i915#12655] / [i915#14544] / [i915#3555])
[400]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[401]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_content_protection@content-type-change:
- shard-rkl: [SKIP][402] ([i915#14544]) -> [SKIP][403] ([i915#9424])
[402]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[403]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_content_protection@legacy:
- shard-dg2: [FAIL][404] ([i915#7173]) -> [SKIP][405] ([i915#7118] / [i915#9424])
[404]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-11/igt@[email protected]
[405]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-1/igt@[email protected]
* igt@kms_content_protection@lic-type-0:
- shard-dg2: [SKIP][406] ([i915#9424]) -> [FAIL][407] ([i915#7173])
[406]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-3/igt@[email protected]
[407]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-11/igt@[email protected]
* igt@kms_content_protection@mei-interface:
- shard-dg1: [SKIP][408] ([i915#9424]) -> [SKIP][409] ([i915#9433])
[408]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-14/igt@[email protected]
[409]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-13/igt@[email protected]
* igt@kms_cursor_crc@cursor-offscreen-256x85:
- shard-rkl: [SKIP][410] ([i915#14544]) -> [DMESG-WARN][411] ([i915#12964]) +1 other test dmesg-warn
[410]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[411]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@kms_cursor_crc@cursor-offscreen-32x10:
- shard-rkl: [SKIP][412] ([i915#3555]) -> [SKIP][413] ([i915#14544]) +1 other test skip
[412]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[413]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_cursor_crc@cursor-rapid-movement-32x32:
- shard-rkl: [SKIP][414] ([i915#14544]) -> [SKIP][415] ([i915#3555]) +1 other test skip
[414]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[415]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@kms_cursor_crc@cursor-rapid-movement-512x170:
- shard-rkl: [SKIP][416] ([i915#14544]) -> [SKIP][417] ([i915#13049])
[416]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[417]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_cursor_crc@cursor-sliding-512x512:
- shard-rkl: [SKIP][418] ([i915#13049]) -> [SKIP][419] ([i915#14544]) +2 other tests skip
[418]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[419]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size:
- shard-rkl: [SKIP][420] ([i915#14544]) -> [SKIP][421] ([i915#4103])
[420]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html
[421]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html
* igt@kms_display_modes@extended-mode-basic:
- shard-rkl: [SKIP][422] ([i915#13691]) -> [SKIP][423] ([i915#14544])
[422]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[423]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-dg1: [SKIP][424] ([i915#13749]) -> [SKIP][425] ([i915#13749] / [i915#4423])
[424]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-17/igt@[email protected]
[425]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-13/igt@[email protected]
* igt@kms_feature_discovery@display-3x:
- shard-rkl: [SKIP][426] ([i915#14544] / [i915#1839]) -> [SKIP][427] ([i915#1839])
[426]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[427]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@kms_feature_discovery@display-4x:
- shard-rkl: [SKIP][428] ([i915#1839]) -> [SKIP][429] ([i915#14544] / [i915#1839])
[428]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[429]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_flip@2x-flip-vs-modeset-vs-hang:
- shard-rkl: [SKIP][430] ([i915#14544] / [i915#9934]) -> [SKIP][431] ([i915#9934]) +2 other tests skip
[430]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[431]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_flip@2x-plain-flip-ts-check:
- shard-dg1: [SKIP][432] ([i915#9934]) -> [SKIP][433] ([i915#4423] / [i915#9934])
[432]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-19/igt@[email protected]
[433]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-12/igt@[email protected]
* igt@kms_flip@2x-wf_vblank-ts-check:
- shard-rkl: [SKIP][434] ([i915#9934]) -> [SKIP][435] ([i915#14544] / [i915#9934]) +1 other test skip
[434]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@kms_flip@2x-wf_vblank-ts-check.html
[435]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@kms_flip@2x-wf_vblank-ts-check.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
- shard-rkl: [SKIP][436] ([i915#2672] / [i915#3555]) -> [SKIP][437] ([i915#14544] / [i915#3555]) +1 other test skip
[436]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html
[437]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling:
- shard-rkl: [SKIP][438] ([i915#14544] / [i915#3555]) -> [SKIP][439] ([i915#2672] / [i915#3555]) +1 other test skip
[438]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html
[439]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling:
- shard-rkl: [SKIP][440] ([i915#14544] / [i915#3555]) -> [DMESG-WARN][441] ([i915#12964])
[440]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling.html
[441]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render:
- shard-rkl: [SKIP][442] ([i915#14544] / [i915#1849] / [i915#5354]) -> [DMESG-WARN][443] ([i915#12964])
[442]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render.html
[443]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-cpu:
- shard-dg1: [SKIP][444] -> [SKIP][445] ([i915#4423]) +1 other test skip
[444]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-17/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-cpu.html
[445]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-13/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbc-tiling-4:
- shard-rkl: [SKIP][446] ([i915#14544] / [i915#1849] / [i915#5354]) -> [SKIP][447] ([i915#5439])
[446]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[447]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render:
- shard-dg1: [SKIP][448] ([i915#3458]) -> [SKIP][449] ([i915#3458] / [i915#4423])
[448]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render.html
[449]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-wc:
- shard-dg1: [SKIP][450] ([i915#8708]) -> [SKIP][451] ([i915#4423] / [i915#8708])
[450]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-12/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-wc.html
[451]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt:
- shard-dg2: [SKIP][452] ([i915#10433] / [i915#3458]) -> [SKIP][453] ([i915#3458]) +1 other test skip
[452]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
[453]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite:
- shard-dg2: [SKIP][454] ([i915#3458]) -> [SKIP][455] ([i915#10433] / [i915#3458])
[454]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-11/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html
[455]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu:
- shard-rkl: [SKIP][456] ([i915#1825]) -> [SKIP][457] ([i915#14544] / [i915#1849] / [i915#5354]) +19 other tests skip
[456]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu.html
[457]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
- shard-rkl: [SKIP][458] ([i915#5439]) -> [SKIP][459] ([i915#14544] / [i915#1849] / [i915#5354])
[458]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[459]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-blt:
- shard-rkl: [SKIP][460] ([i915#14544] / [i915#1849] / [i915#5354]) -> [SKIP][461] ([i915#3023]) +10 other tests skip
[460]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[461]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-pwrite:
- shard-rkl: [SKIP][462] ([i915#14544] / [i915#1849] / [i915#5354]) -> [SKIP][463] ([i915#1825]) +15 other tests skip
[462]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-pwrite.html
[463]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt:
- shard-dg1: [SKIP][464] ([i915#4423]) -> [SKIP][465]
[464]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-18/igt@[email protected]
[465]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-19/igt@[email protected]
* igt@kms_frontbuffer_tracking@psr-rgb565-draw-render:
- shard-rkl: [SKIP][466] ([i915#3023]) -> [SKIP][467] ([i915#14544] / [i915#1849] / [i915#5354]) +11 other tests skip
[466]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[467]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_hdr@brightness-with-hdr:
- shard-dg2: [SKIP][468] ([i915#12713]) -> [SKIP][469] ([i915#13331])
[468]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg2-3/igt@[email protected]
[469]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg2-11/igt@[email protected]
* igt@kms_hdr@invalid-metadata-sizes:
- shard-rkl: [SKIP][470] ([i915#14544]) -> [SKIP][471] ([i915#3555] / [i915#8228])
[470]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[471]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@kms_joiner@basic-big-joiner:
- shard-rkl: [SKIP][472] ([i915#10656]) -> [SKIP][473] ([i915#10656] / [i915#14544])
[472]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[473]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_joiner@basic-force-big-joiner:
- shard-rkl: [SKIP][474] ([i915#12388] / [i915#14544]) -> [SKIP][475] ([i915#12388])
[474]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[475]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-rkl: [SKIP][476] ([i915#4816]) -> [SKIP][477] ([i915#4070] / [i915#4816])
[476]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-4/igt@[email protected]
[477]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-5/igt@[email protected]
* igt@kms_panel_fitting@legacy:
- shard-rkl: [SKIP][478] ([i915#14544]) -> [SKIP][479] ([i915#6301])
[478]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[479]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@kms_plane_multiple@2x-tiling-y:
- shard-rkl: [SKIP][480] ([i915#13958]) -> [SKIP][481] ([i915#14544]) +1 other test skip
[480]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[481]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_plane_scaling@2x-scaler-multi-pipe:
- shard-rkl: [SKIP][482] -> [SKIP][483] ([i915#14544] / [i915#8152])
[482]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[483]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a:
- shard-rkl: [SKIP][484] ([i915#12247]) -> [SKIP][485] ([i915#12247] / [i915#14544]) +1 other test skip
[484]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@kms_plane_scaling@[email protected]
[485]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@kms_plane_scaling@[email protected]
* igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation:
- shard-rkl: [SKIP][486] ([i915#3555]) -> [SKIP][487] ([i915#14544] / [i915#3555] / [i915#8152])
[486]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html
[487]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html
* igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b:
- shard-rkl: [SKIP][488] ([i915#12247]) -> [SKIP][489] ([i915#12247] / [i915#14544] / [i915#8152]) +2 other tests skip
[488]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@kms_plane_scaling@[email protected]
[489]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@kms_plane_scaling@[email protected]
* igt@kms_pm_backlight@bad-brightness:
- shard-rkl: [SKIP][490] ([i915#5354]) -> [SKIP][491] ([i915#14544] / [i915#5354])
[490]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[491]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_pm_backlight@fade-with-suspend:
- shard-rkl: [SKIP][492] ([i915#14544] / [i915#5354]) -> [SKIP][493] ([i915#5354])
[492]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[493]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_pm_dc@dc5-psr:
- shard-rkl: [SKIP][494] ([i915#14544] / [i915#9685]) -> [SKIP][495] ([i915#9685])
[494]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[495]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_pm_rpm@modeset-non-lpsp:
- shard-rkl: [SKIP][496] ([i915#14544] / [i915#9519]) -> [SKIP][497] ([i915#9519])
[496]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[497]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@kms_pm_rpm@modeset-non-lpsp-stress:
- shard-mtlp: [SKIP][498] ([i915#9519]) -> [ABORT][499] ([i915#10553] / [i915#14804])
[498]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-mtlp-1/igt@[email protected]
[499]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-mtlp-3/igt@[email protected]
* igt@kms_prime@d3hot:
- shard-rkl: [SKIP][500] ([i915#14544] / [i915#6524]) -> [SKIP][501] ([i915#6524])
[500]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[501]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area:
- shard-rkl: [SKIP][502] ([i915#11520]) -> [SKIP][503] ([i915#11520] / [i915#14544]) +3 other tests skip
[502]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[503]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area:
- shard-rkl: [SKIP][504] ([i915#11520] / [i915#14544]) -> [SKIP][505] ([i915#11520]) +3 other tests skip
[504]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[505]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-rkl: [SKIP][506] ([i915#14544] / [i915#9683]) -> [SKIP][507] ([i915#9683])
[506]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[507]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@kms_psr2_su@page_flip-nv12:
- shard-rkl: [SKIP][508] ([i915#9683]) -> [SKIP][509] ([i915#14544] / [i915#9683])
[508]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@kms_psr2_su@page_flip-nv12.html
[509]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@kms_psr2_su@page_flip-nv12.html
* igt@kms_psr@psr-cursor-render:
- shard-rkl: [SKIP][510] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][511] ([i915#1072] / [i915#9732]) +8 other tests skip
[510]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[511]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_psr@psr-sprite-plane-move:
- shard-rkl: [SKIP][512] ([i915#1072] / [i915#9732]) -> [SKIP][513] ([i915#1072] / [i915#14544] / [i915#9732]) +9 other tests skip
[512]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[513]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_psr@psr2-sprite-blt:
- shard-dg1: [SKIP][514] ([i915#1072] / [i915#4423] / [i915#9732]) -> [SKIP][515] ([i915#1072] / [i915#9732]) +2 other tests skip
[514]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-17/igt@[email protected]
[515]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-18/igt@[email protected]
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
- shard-rkl: [SKIP][516] ([i915#5289]) -> [SKIP][517] ([i915#14544])
[516]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-2/igt@[email protected]
[517]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_scaling_modes@scaling-mode-none:
- shard-dg1: [SKIP][518] ([i915#3555]) -> [SKIP][519] ([i915#3555] / [i915#4423])
[518]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-dg1-19/igt@[email protected]
[519]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-dg1-12/igt@[email protected]
* igt@kms_setmode@clone-exclusive-crtc:
- shard-rkl: [SKIP][520] ([i915#14544] / [i915#3555]) -> [SKIP][521] ([i915#3555])
[520]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[521]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_vrr@negative-basic:
- shard-rkl: [SKIP][522] ([i915#14544]) -> [SKIP][523] ([i915#3555] / [i915#9906])
[522]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[523]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@kms_writeback@writeback-fb-id:
- shard-rkl: [SKIP][524] ([i915#2437]) -> [SKIP][525] ([i915#14544] / [i915#2437])
[524]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[525]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@kms_writeback@writeback-fb-id-xrgb2101010:
- shard-rkl: [SKIP][526] ([i915#14544] / [i915#2437] / [i915#9412]) -> [SKIP][527] ([i915#2437] / [i915#9412]) +1 other test skip
[526]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[527]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@perf@mi-rpc:
- shard-rkl: [SKIP][528] ([i915#14544] / [i915#2434]) -> [SKIP][529] ([i915#2434])
[528]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[529]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@perf@unprivileged-single-ctx-counters:
- shard-rkl: [SKIP][530] ([i915#14544] / [i915#2433]) -> [SKIP][531] ([i915#2433])
[530]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[531]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@perf_pmu@event-wait:
- shard-rkl: [SKIP][532] ([i915#14544]) -> [SKIP][533] +9 other tests skip
[532]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[533]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@prime_vgem@basic-fence-read:
- shard-rkl: [SKIP][534] ([i915#14544] / [i915#3291] / [i915#3708]) -> [SKIP][535] ([i915#3291] / [i915#3708])
[534]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[535]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-2/igt@[email protected]
* igt@sriov_basic@bind-unbind-vf:
- shard-rkl: [SKIP][536] ([i915#9917]) -> [SKIP][537] ([i915#14544] / [i915#9917])
[536]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@[email protected]
[537]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@[email protected]
* igt@sriov_basic@enable-vfs-autoprobe-off:
- shard-rkl: [SKIP][538] ([i915#14544] / [i915#9917]) -> [SKIP][539] ([i915#9917])
[538]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-6/igt@[email protected]
[539]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-4/igt@[email protected]
* igt@tools_test@sysfs_l3_parity:
- shard-rkl: [SKIP][540] -> [SKIP][541] ([i915#14544]) +11 other tests skip
[540]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16996/shard-rkl-3/igt@tools_test@sysfs_l3_parity.html
[541]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/shard-rkl-6/igt@tools_test@sysfs_l3_parity.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
[i915#10393]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10393
[i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
[i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
[i915#10553]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10553
[i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
[i915#11190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11190
[i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
[i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
[i915#11713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11713
[i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247
[i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
[i915#12353]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12353
[i915#12388]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12388
[i915#12392]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12392
[i915#12655]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12655
[i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
[i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
[i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755
[i915#12796]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12796
[i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805
[i915#12917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12917
[i915#12964]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12964
[i915#13027]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13027
[i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046
[i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
[i915#13331]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13331
[i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
[i915#13390]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13390
[i915#13447]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13447
[i915#13522]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13522
[i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
[i915#13691]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13691
[i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707
[i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749
[i915#13781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13781
[i915#13783]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13783
[i915#13899]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13899
[i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
[i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
[i915#14104]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14104
[i915#14118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14118
[i915#14121]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14121
[i915#14152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14152
[i915#14446]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14446
[i915#14498]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14498
[i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
[i915#14553]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14553
[i915#14561]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14561
[i915#14712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14712
[i915#14756]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14756
[i915#14804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14804
[i915#14814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14814
[i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
[i915#1849]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1849
[i915#2433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2433
[i915#2434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2434
[i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
[i915#2582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2582
[i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
[i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
[i915#284]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/284
[i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
[i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
[i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
[i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
[i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
[i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#4070]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
[i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
[i915#4281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4281
[i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
[i915#4391]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4391
[i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
[i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
[i915#4537]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4537
[i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#4771]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
[i915#4816]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4816
[i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
[i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
[i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
[i915#4879]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4879
[i915#4880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4880
[i915#4885]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4885
[i915#5030]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5030
[i915#5138]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5138
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439
[i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
[i915#6187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6187
[i915#6230]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6230
[i915#6245]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6245
[i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
[i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335
[i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
[i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
[i915#6805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6805
[i915#6880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6880
[i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944
[i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
[i915#7116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
[i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
[i915#7294]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7294
[i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
[i915#7984]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7984
[i915#8152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8152
[i915#8213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8213
[i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
[i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381
[i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
[i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
[i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
[i915#8430]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8430
[i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
[i915#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555
[i915#8562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8562
[i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
[i915#8812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8812
[i915#8814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8814
[i915#8826]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8826
[i915#9041]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9041
[i915#9053]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9053
[i915#9196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9196
[i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
[i915#9412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9412
[i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
[i915#9433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9433
[i915#9519]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9519
[i915#9531]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9531
[i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
[i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
[i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809
[i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
[i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
[i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934
Build changes
-------------
* Linux: CI_DRM_16996 -> Patchwork_152907v1
CI-20190529: 20190529
CI_DRM_16996: b6d374ca303d7b9f6456bc6db0cfe6e4d30bf472 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8493: 8493
Patchwork_152907v1: b6d374ca303d7b9f6456bc6db0cfe6e4d30bf472 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_152907v1/index.html
Patchwork
CI✗ Fi.CI.BUILD: failure for perf: Rework event_init checks (rev2)
In reply to Robin Murphy== Series Details ==
== Series Details ==
Series: perf: Rework event_init checks (rev2)
URL : https://patchwork.freedesktop.org/series/152907/
State : failure
== Summary ==
Error: patch https://patchwork.freedesktop.org/api/1.0/series/152907/revisions/2/mbox/ not applied
Applying: perf/arm-cmn: Fix event validation
Applying: perf/hisilicon: Fix group validation
Applying: perf/imx8_ddr: Fix group validation
Applying: perf/starfive: Fix group validation
Applying: iommu/vt-d: Fix perfmon group validation
Applying: ARM: l2x0: Fix group validation
Applying: ARM: imx: Fix MMDC PMU group validation
Applying: perf/arm_smmu_v3: Improve group validation
Applying: perf/qcom: Improve group validation
Applying: perf/arm-ni: Improve event validation
Applying: perf/arm-cci: Tidy up event validation
Applying: perf: Ignore event state for group validation
Applying: perf: Add helper for checking grouped events
Applying: perf: Clean up redundant group validation
Applying: perf: Simplify group validation
Applying: perf: Introduce positive capability for sampling
Applying: perf: Retire PERF_PMU_CAP_NO_INTERRUPT
Applying: perf: Introduce positive capability for raw events
Applying: perf: Garbage-collect event_init checks
error: sha1 information is lacking or useless (kernel/events/core.c).
error: could not build fake ancestor
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0019 perf: Garbage-collect event_init checks
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
Build failed, no error log produced