* [Intel-gfx] [PATCH] drm/i915/mtl: Skip MCR ops for ring fault register
@ 2023-09-26 14:18 Nirmoy Das
2023-09-26 14:38 ` Matt Roper
2023-09-26 22:06 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork
0 siblings, 2 replies; 4+ messages in thread
From: Nirmoy Das @ 2023-09-26 14:18 UTC (permalink / raw)
To: intel-gfx; +Cc: matthew.d.roper, dri-devel, Nirmoy Das
On MTL GEN12_RING_FAULT_REG is not replicated so don't
do mcr based operation for this register.
Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
---
drivers/gpu/drm/i915/gt/intel_gt.c | 14 +++++++++++++-
drivers/gpu/drm/i915/gt/intel_gt_regs.h | 1 +
drivers/gpu/drm/i915/i915_gpu_error.c | 11 ++++++++++-
3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c b/drivers/gpu/drm/i915/gt/intel_gt.c
index 93062c35e072..d4de692e8be1 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt.c
@@ -262,10 +262,22 @@ intel_gt_clear_error_registers(struct intel_gt *gt,
I915_MASTER_ERROR_INTERRUPT);
}
- if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50)) {
+ /*
+ * for media tile this ring fault register is not replicated
+ * so skip doing mcr ops on it.
+ */
+ if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50) &&
+ gt->type == GT_MEDIA) {
+ intel_uncore_rmw(uncore, XELPMP_RING_FAULT_REG,
+ RING_FAULT_VALID, 0);
+ intel_uncore_posting_read(uncore,
+ XELPMP_RING_FAULT_REG);
+
+ } else if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50)) {
intel_gt_mcr_multicast_rmw(gt, XEHP_RING_FAULT_REG,
RING_FAULT_VALID, 0);
intel_gt_mcr_read_any(gt, XEHP_RING_FAULT_REG);
+
} else if (GRAPHICS_VER(i915) >= 12) {
intel_uncore_rmw(uncore, GEN12_RING_FAULT_REG, RING_FAULT_VALID, 0);
intel_uncore_posting_read(uncore, GEN12_RING_FAULT_REG);
diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
index cca4bac8f8b0..eecd0a87a647 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
+++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
@@ -1084,6 +1084,7 @@
#define GEN12_RING_FAULT_REG _MMIO(0xcec4)
#define XEHP_RING_FAULT_REG MCR_REG(0xcec4)
+#define XELPMP_RING_FAULT_REG _MMIO(0xcec4)
#define GEN8_RING_FAULT_ENGINE_ID(x) (((x) >> 12) & 0x7)
#define RING_FAULT_GTTSEL_MASK (1 << 11)
#define RING_FAULT_SRCID(x) (((x) >> 3) & 0xff)
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index f4ebcfb70289..83f1a729da8b 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -1234,7 +1234,16 @@ static void engine_record_registers(struct intel_engine_coredump *ee)
if (GRAPHICS_VER(i915) >= 6) {
ee->rc_psmi = ENGINE_READ(engine, RING_PSMI_CTL);
- if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50))
+ /*
+ * for media tile this ring fault register is not replicated
+ * so skip doing mcr ops on it.
+ */
+ if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50) &&
+ engine->gt->type == GT_MEDIA)
+ ee->fault_reg = intel_uncore_read(engine->uncore,
+ XELPMP_RING_FAULT_REG);
+
+ else if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50))
ee->fault_reg = intel_gt_mcr_read_any(engine->gt,
XEHP_RING_FAULT_REG);
else if (GRAPHICS_VER(i915) >= 12)
--
2.41.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915/mtl: Skip MCR ops for ring fault register
2023-09-26 14:18 [Intel-gfx] [PATCH] drm/i915/mtl: Skip MCR ops for ring fault register Nirmoy Das
@ 2023-09-26 14:38 ` Matt Roper
2023-09-26 19:17 ` Nirmoy Das
2023-09-26 22:06 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork
1 sibling, 1 reply; 4+ messages in thread
From: Matt Roper @ 2023-09-26 14:38 UTC (permalink / raw)
To: Nirmoy Das; +Cc: intel-gfx, dri-devel
On Tue, Sep 26, 2023 at 04:18:42PM +0200, Nirmoy Das wrote:
> On MTL GEN12_RING_FAULT_REG is not replicated so don't
> do mcr based operation for this register.
>
> Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
> ---
> drivers/gpu/drm/i915/gt/intel_gt.c | 14 +++++++++++++-
> drivers/gpu/drm/i915/gt/intel_gt_regs.h | 1 +
> drivers/gpu/drm/i915/i915_gpu_error.c | 11 ++++++++++-
> 3 files changed, 24 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c b/drivers/gpu/drm/i915/gt/intel_gt.c
> index 93062c35e072..d4de692e8be1 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt.c
> +++ b/drivers/gpu/drm/i915/gt/intel_gt.c
> @@ -262,10 +262,22 @@ intel_gt_clear_error_registers(struct intel_gt *gt,
> I915_MASTER_ERROR_INTERRUPT);
> }
>
> - if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50)) {
> + /*
> + * for media tile this ring fault register is not replicated
> + * so skip doing mcr ops on it.
> + */
> + if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50) &&
This should be checking the media version rather than the graphics
version. I.e., "MEDIA_VER(i915) > 13" since it's possible future
versions of the media IP may change the behavior (independently of the
graphics IP versions).
Matt
> + gt->type == GT_MEDIA) {
> + intel_uncore_rmw(uncore, XELPMP_RING_FAULT_REG,
> + RING_FAULT_VALID, 0);
> + intel_uncore_posting_read(uncore,
> + XELPMP_RING_FAULT_REG);
> +
> + } else if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50)) {
> intel_gt_mcr_multicast_rmw(gt, XEHP_RING_FAULT_REG,
> RING_FAULT_VALID, 0);
> intel_gt_mcr_read_any(gt, XEHP_RING_FAULT_REG);
> +
> } else if (GRAPHICS_VER(i915) >= 12) {
> intel_uncore_rmw(uncore, GEN12_RING_FAULT_REG, RING_FAULT_VALID, 0);
> intel_uncore_posting_read(uncore, GEN12_RING_FAULT_REG);
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> index cca4bac8f8b0..eecd0a87a647 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> +++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> @@ -1084,6 +1084,7 @@
>
> #define GEN12_RING_FAULT_REG _MMIO(0xcec4)
> #define XEHP_RING_FAULT_REG MCR_REG(0xcec4)
> +#define XELPMP_RING_FAULT_REG _MMIO(0xcec4)
> #define GEN8_RING_FAULT_ENGINE_ID(x) (((x) >> 12) & 0x7)
> #define RING_FAULT_GTTSEL_MASK (1 << 11)
> #define RING_FAULT_SRCID(x) (((x) >> 3) & 0xff)
> diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
> index f4ebcfb70289..83f1a729da8b 100644
> --- a/drivers/gpu/drm/i915/i915_gpu_error.c
> +++ b/drivers/gpu/drm/i915/i915_gpu_error.c
> @@ -1234,7 +1234,16 @@ static void engine_record_registers(struct intel_engine_coredump *ee)
> if (GRAPHICS_VER(i915) >= 6) {
> ee->rc_psmi = ENGINE_READ(engine, RING_PSMI_CTL);
>
> - if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50))
> + /*
> + * for media tile this ring fault register is not replicated
> + * so skip doing mcr ops on it.
> + */
> + if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50) &&
> + engine->gt->type == GT_MEDIA)
> + ee->fault_reg = intel_uncore_read(engine->uncore,
> + XELPMP_RING_FAULT_REG);
> +
> + else if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50))
> ee->fault_reg = intel_gt_mcr_read_any(engine->gt,
> XEHP_RING_FAULT_REG);
> else if (GRAPHICS_VER(i915) >= 12)
> --
> 2.41.0
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915/mtl: Skip MCR ops for ring fault register
2023-09-26 14:38 ` Matt Roper
@ 2023-09-26 19:17 ` Nirmoy Das
0 siblings, 0 replies; 4+ messages in thread
From: Nirmoy Das @ 2023-09-26 19:17 UTC (permalink / raw)
To: Matt Roper, Nirmoy Das; +Cc: intel-gfx, dri-devel
Hi Matt,
On 9/26/2023 4:38 PM, Matt Roper wrote:
> On Tue, Sep 26, 2023 at 04:18:42PM +0200, Nirmoy Das wrote:
>> On MTL GEN12_RING_FAULT_REG is not replicated so don't
>> do mcr based operation for this register.
>>
>> Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
>> ---
>> drivers/gpu/drm/i915/gt/intel_gt.c | 14 +++++++++++++-
>> drivers/gpu/drm/i915/gt/intel_gt_regs.h | 1 +
>> drivers/gpu/drm/i915/i915_gpu_error.c | 11 ++++++++++-
>> 3 files changed, 24 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c b/drivers/gpu/drm/i915/gt/intel_gt.c
>> index 93062c35e072..d4de692e8be1 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_gt.c
>> +++ b/drivers/gpu/drm/i915/gt/intel_gt.c
>> @@ -262,10 +262,22 @@ intel_gt_clear_error_registers(struct intel_gt *gt,
>> I915_MASTER_ERROR_INTERRUPT);
>> }
>>
>> - if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50)) {
>> + /*
>> + * for media tile this ring fault register is not replicated
>> + * so skip doing mcr ops on it.
>> + */
>> + if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50) &&
> This should be checking the media version rather than the graphics
> version. I.e., "MEDIA_VER(i915) > 13" since it's possible future
> versions of the media IP may change the behavior (independently of the
> graphics IP versions).
Sounds good. I will replace this with
if (MEDIA_VER(i915) == 13 && engine->gt->type == GT_MEDIA)
to limit this this change on media IP 13
Thanks,
Nirmoy
>
>
> Matt
>
>> + gt->type == GT_MEDIA) {
>> + intel_uncore_rmw(uncore, XELPMP_RING_FAULT_REG,
>> + RING_FAULT_VALID, 0);
>> + intel_uncore_posting_read(uncore,
>> + XELPMP_RING_FAULT_REG);
>> +
>> + } else if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50)) {
>> intel_gt_mcr_multicast_rmw(gt, XEHP_RING_FAULT_REG,
>> RING_FAULT_VALID, 0);
>> intel_gt_mcr_read_any(gt, XEHP_RING_FAULT_REG);
>> +
>> } else if (GRAPHICS_VER(i915) >= 12) {
>> intel_uncore_rmw(uncore, GEN12_RING_FAULT_REG, RING_FAULT_VALID, 0);
>> intel_uncore_posting_read(uncore, GEN12_RING_FAULT_REG);
>> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
>> index cca4bac8f8b0..eecd0a87a647 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
>> +++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
>> @@ -1084,6 +1084,7 @@
>>
>> #define GEN12_RING_FAULT_REG _MMIO(0xcec4)
>> #define XEHP_RING_FAULT_REG MCR_REG(0xcec4)
>> +#define XELPMP_RING_FAULT_REG _MMIO(0xcec4)
>> #define GEN8_RING_FAULT_ENGINE_ID(x) (((x) >> 12) & 0x7)
>> #define RING_FAULT_GTTSEL_MASK (1 << 11)
>> #define RING_FAULT_SRCID(x) (((x) >> 3) & 0xff)
>> diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
>> index f4ebcfb70289..83f1a729da8b 100644
>> --- a/drivers/gpu/drm/i915/i915_gpu_error.c
>> +++ b/drivers/gpu/drm/i915/i915_gpu_error.c
>> @@ -1234,7 +1234,16 @@ static void engine_record_registers(struct intel_engine_coredump *ee)
>> if (GRAPHICS_VER(i915) >= 6) {
>> ee->rc_psmi = ENGINE_READ(engine, RING_PSMI_CTL);
>>
>> - if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50))
>> + /*
>> + * for media tile this ring fault register is not replicated
>> + * so skip doing mcr ops on it.
>> + */
>> + if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50) &&
>> + engine->gt->type == GT_MEDIA)
>> + ee->fault_reg = intel_uncore_read(engine->uncore,
>> + XELPMP_RING_FAULT_REG);
>> +
>> + else if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50))
>> ee->fault_reg = intel_gt_mcr_read_any(engine->gt,
>> XEHP_RING_FAULT_REG);
>> else if (GRAPHICS_VER(i915) >= 12)
>> --
>> 2.41.0
>>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/mtl: Skip MCR ops for ring fault register
2023-09-26 14:18 [Intel-gfx] [PATCH] drm/i915/mtl: Skip MCR ops for ring fault register Nirmoy Das
2023-09-26 14:38 ` Matt Roper
@ 2023-09-26 22:06 ` Patchwork
1 sibling, 0 replies; 4+ messages in thread
From: Patchwork @ 2023-09-26 22:06 UTC (permalink / raw)
To: Nirmoy Das; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 5024 bytes --]
== Series Details ==
Series: drm/i915/mtl: Skip MCR ops for ring fault register
URL : https://patchwork.freedesktop.org/series/124276/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_13682 -> Patchwork_124276v1
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124276v1/index.html
Participating hosts (41 -> 40)
------------------------------
Missing (1): fi-snb-2520m
Known issues
------------
Here are the changes found in Patchwork_124276v1 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-c-dp-5:
- bat-adlp-11: [PASS][1] -> [ABORT][2] ([i915#8668])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13682/bat-adlp-11/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-c-dp-5.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124276v1/bat-adlp-11/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-c-dp-5.html
#### Possible fixes ####
* igt@kms_chamelium_frames@dp-crc-fast:
- {bat-dg2-13}: [DMESG-WARN][3] ([Intel XE#485]) -> [PASS][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13682/bat-dg2-13/igt@kms_chamelium_frames@dp-crc-fast.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124276v1/bat-dg2-13/igt@kms_chamelium_frames@dp-crc-fast.html
* igt@kms_flip@basic-plain-flip@b-dp6:
- bat-adlp-11: [DMESG-WARN][5] ([i915#6868]) -> [PASS][6] +1 other test pass
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13682/bat-adlp-11/igt@kms_flip@basic-plain-flip@b-dp6.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124276v1/bat-adlp-11/igt@kms_flip@basic-plain-flip@b-dp6.html
* igt@kms_flip@basic-plain-flip@c-dp6:
- bat-adlp-11: [FAIL][7] ([i915#6121]) -> [PASS][8] +8 other tests pass
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13682/bat-adlp-11/igt@kms_flip@basic-plain-flip@c-dp6.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124276v1/bat-adlp-11/igt@kms_flip@basic-plain-flip@c-dp6.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-c-dp-5:
- bat-adlp-11: [DMESG-FAIL][9] ([i915#6868]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13682/bat-adlp-11/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-c-dp-5.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124276v1/bat-adlp-11/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-c-dp-5.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-d-dp-5:
- bat-adlp-11: [FAIL][11] ([i915#9047]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13682/bat-adlp-11/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-d-dp-5.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124276v1/bat-adlp-11/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-d-dp-5.html
* igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-b-dp-6:
- bat-adlp-11: [ABORT][13] ([i915#8668]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13682/bat-adlp-11/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-b-dp-6.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124276v1/bat-adlp-11/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-b-dp-6.html
#### Warnings ####
* igt@kms_force_connector_basic@force-edid:
- bat-adlp-11: [FAIL][15] ([i915#8803]) -> [SKIP][16] ([i915#4093])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13682/bat-adlp-11/igt@kms_force_connector_basic@force-edid.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124276v1/bat-adlp-11/igt@kms_force_connector_basic@force-edid.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#485]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/485
[i915#4093]: https://gitlab.freedesktop.org/drm/intel/issues/4093
[i915#6121]: https://gitlab.freedesktop.org/drm/intel/issues/6121
[i915#6868]: https://gitlab.freedesktop.org/drm/intel/issues/6868
[i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
[i915#8803]: https://gitlab.freedesktop.org/drm/intel/issues/8803
[i915#9047]: https://gitlab.freedesktop.org/drm/intel/issues/9047
Build changes
-------------
* Linux: CI_DRM_13682 -> Patchwork_124276v1
CI-20190529: 20190529
CI_DRM_13682: a42554bf0755b80fdfb8e91ca35ae6835bb3534d @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7503: 7503
Patchwork_124276v1: a42554bf0755b80fdfb8e91ca35ae6835bb3534d @ git://anongit.freedesktop.org/gfx-ci/linux
### Linux commits
d744bf1e7181 drm/i915/mtl: Skip MCR ops for ring fault register
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124276v1/index.html
[-- Attachment #2: Type: text/html, Size: 5951 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-09-26 22:06 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-26 14:18 [Intel-gfx] [PATCH] drm/i915/mtl: Skip MCR ops for ring fault register Nirmoy Das
2023-09-26 14:38 ` Matt Roper
2023-09-26 19:17 ` Nirmoy Das
2023-09-26 22:06 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).