* [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches
@ 2016-01-21 14:00 Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 1/8] drm/i915/gen9: Add framework to whitelist specific GPU registers Arun Siluvery
` (9 more replies)
0 siblings, 10 replies; 20+ messages in thread
From: Arun Siluvery @ 2016-01-21 14:00 UTC (permalink / raw)
To: intel-gfx
Resending all patches as told by Daniel because I didn't use correct
message-id while replying updated version of Patch1 before which means
patchwork won't pickup and we won't have CI results. Previous updates
regarding Patch1 are available at https://patchwork.freedesktop.org/patch/70527/
Some of the WA patches are now reviewed so I added r-b tags for them.
Reviewed: 1, 2, 3, 5, 6
Updated: 4 (to address review comment)
To be reviewed: 4, 7, 8
Arun Siluvery (8):
drm/i915/gen9: Add framework to whitelist specific GPU registers
drm/i915/gen9: Add GEN8_CS_CHICKEN1 to HW whitelist
drm/i915/gen9: Add HDC_CHICKEN1 to HW whitelist
drm/i915/bxt: Add GEN9_CS_DEBUG_MODE1 to HW whitelist
drm/i915/bxt: Add GEN8_L3SQCREG4 to HW whitelist
drm/i915/skl: Add GEN8_L3SQCREG4 to HW whitelist
drm/i915/skl: Enable Per context Preemption granularity control
drm/i915/gen9: Add WaOCLCoherentLineFlush
drivers/gpu/drm/i915/i915_debugfs.c | 15 +++++---
drivers/gpu/drm/i915/i915_drv.h | 9 ++++-
drivers/gpu/drm/i915/i915_reg.h | 11 ++++++
drivers/gpu/drm/i915/intel_ringbuffer.c | 61 +++++++++++++++++++++++++++++++++
4 files changed, 90 insertions(+), 6 deletions(-)
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v2 1/8] drm/i915/gen9: Add framework to whitelist specific GPU registers
2016-01-21 14:00 [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Arun Siluvery
@ 2016-01-21 14:00 ` Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 2/8] drm/i915/gen9: Add GEN8_CS_CHICKEN1 to HW whitelist Arun Siluvery
` (8 subsequent siblings)
9 siblings, 0 replies; 20+ messages in thread
From: Arun Siluvery @ 2016-01-21 14:00 UTC (permalink / raw)
To: intel-gfx; +Cc: Mika Kuoppala
Some of the HW registers are privileged and cannot be written to from
non-privileged batch buffers coming from userspace unless they are added to
the HW whitelist. This whitelist is maintained by HW and it is different from
SW whitelist. Userspace need write access to them to implement preemption
related WA.
The reason for using this approach is, the register bits that control
preemption granularity at the HW level are not context save/restored; so even
if we set these bits always in kernel they are going to change once the
context is switched out. We can consider making them non-privileged by
default but these registers also contain other chicken bits which should not
be allowed to be modified.
In the later revisions controlling bits are save/restored at context level but
in the existing revisions these are exported via other debug registers and
should be on the whitelist. This patch adds changes to provide HW with a list
of registers to be whitelisted. HW checks this list during execution and
provides access accordingly.
HW imposes a limit on the number of registers on whitelist and it is
per-engine. At this point we are only enabling whitelist for RCS and we don't
foresee any requirement for other engines.
The registers to be whitelisted are added using generic workaround list
mechanism, even these are only enablers for userspace workarounds. But by
sharing this mechanism we get some test assets without additional cost (Mika).
v2: rebase
v3: parameterize RING_FORCE_TO_NONPRIV() as _MMIO() should be limited to
i915_reg.h (Ville), drop inline for wa_ring_whitelist_reg (Mika).
v4: improvements suggested by Chris Wilson.
Clarify that this is HW whitelist and different from the one maintained in
driver. This list is engine specific but it gets initialized along with other
WA which is RCS specific thing, so make it clear that we are not doing any
cross engine setup during initialization.
Make HW whitelist count of each engine available in debugfs.
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/i915_debugfs.c | 15 ++++++++++-----
drivers/gpu/drm/i915/i915_drv.h | 9 ++++++++-
drivers/gpu/drm/i915/i915_reg.h | 3 +++
drivers/gpu/drm/i915/intel_ringbuffer.c | 17 +++++++++++++++++
4 files changed, 38 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index e3377ab..7eb002c 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -3229,9 +3229,11 @@ static int i915_wa_registers(struct seq_file *m, void *unused)
{
int i;
int ret;
+ struct intel_engine_cs *ring;
struct drm_info_node *node = (struct drm_info_node *) m->private;
struct drm_device *dev = node->minor->dev;
struct drm_i915_private *dev_priv = dev->dev_private;
+ struct i915_workarounds *workarounds = &dev_priv->workarounds;
ret = mutex_lock_interruptible(&dev->struct_mutex);
if (ret)
@@ -3239,15 +3241,18 @@ static int i915_wa_registers(struct seq_file *m, void *unused)
intel_runtime_pm_get(dev_priv);
- seq_printf(m, "Workarounds applied: %d\n", dev_priv->workarounds.count);
- for (i = 0; i < dev_priv->workarounds.count; ++i) {
+ seq_printf(m, "Workarounds applied: %d\n", workarounds->count);
+ for_each_ring(ring, dev_priv, i)
+ seq_printf(m, "HW whitelist count for %s: %d\n",
+ ring->name, workarounds->hw_whitelist_count[i]);
+ for (i = 0; i < workarounds->count; ++i) {
i915_reg_t addr;
u32 mask, value, read;
bool ok;
- addr = dev_priv->workarounds.reg[i].addr;
- mask = dev_priv->workarounds.reg[i].mask;
- value = dev_priv->workarounds.reg[i].value;
+ addr = workarounds->reg[i].addr;
+ mask = workarounds->reg[i].mask;
+ value = workarounds->reg[i].value;
read = I915_READ(addr);
ok = (value & mask) == (read & mask);
seq_printf(m, "0x%X: 0x%08X, mask: 0x%08X, read: 0x%08x, status: %s\n",
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 104bd18..83fccc0 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1653,11 +1653,18 @@ struct i915_wa_reg {
u32 mask;
};
-#define I915_MAX_WA_REGS 16
+/*
+ * RING_MAX_NONPRIV_SLOTS is per-engine but at this point we are only
+ * allowing it for RCS as we don't foresee any requirement of having
+ * a whitelist for other engines. When it is really required for
+ * other engines then the limit need to be increased.
+ */
+#define I915_MAX_WA_REGS (16 + RING_MAX_NONPRIV_SLOTS)
struct i915_workarounds {
struct i915_wa_reg reg[I915_MAX_WA_REGS];
u32 count;
+ u32 hw_whitelist_count[I915_NUM_RINGS];
};
struct i915_virtual_gpu {
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 0a98889..7938814 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -1635,6 +1635,9 @@ enum skl_disp_power_wells {
#define RING_WAIT (1<<11) /* gen3+, PRBx_CTL */
#define RING_WAIT_SEMAPHORE (1<<10) /* gen6+ */
+#define RING_FORCE_TO_NONPRIV(base, i) _MMIO(((base)+0x4D0) + (i)*4)
+#define RING_MAX_NONPRIV_SLOTS 12
+
#define GEN7_TLB_RD_ADDR _MMIO(0x4700)
#if 0
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 4060acf..56af736 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -787,6 +787,22 @@ static int wa_add(struct drm_i915_private *dev_priv,
#define WA_WRITE(addr, val) WA_REG(addr, 0xffffffff, val)
+static int wa_ring_whitelist_reg(struct intel_engine_cs *ring, i915_reg_t reg)
+{
+ struct drm_i915_private *dev_priv = ring->dev->dev_private;
+ struct i915_workarounds *wa = &dev_priv->workarounds;
+ const uint32_t index = wa->hw_whitelist_count[ring->id];
+
+ if (WARN_ON(index >= RING_MAX_NONPRIV_SLOTS))
+ return -EINVAL;
+
+ WA_WRITE(RING_FORCE_TO_NONPRIV(ring->mmio_base, index),
+ i915_mmio_reg_offset(reg));
+ wa->hw_whitelist_count[ring->id]++;
+
+ return 0;
+}
+
static int gen8_init_workarounds(struct intel_engine_cs *ring)
{
struct drm_device *dev = ring->dev;
@@ -1115,6 +1131,7 @@ int init_workarounds_ring(struct intel_engine_cs *ring)
WARN_ON(ring->id != RCS);
dev_priv->workarounds.count = 0;
+ dev_priv->workarounds.hw_whitelist_count[RCS] = 0;
if (IS_BROADWELL(dev))
return bdw_init_workarounds(ring);
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 2/8] drm/i915/gen9: Add GEN8_CS_CHICKEN1 to HW whitelist
2016-01-21 14:00 [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 1/8] drm/i915/gen9: Add framework to whitelist specific GPU registers Arun Siluvery
@ 2016-01-21 14:00 ` Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 3/8] drm/i915/gen9: Add HDC_CHICKEN1 " Arun Siluvery
` (7 subsequent siblings)
9 siblings, 0 replies; 20+ messages in thread
From: Arun Siluvery @ 2016-01-21 14:00 UTC (permalink / raw)
To: intel-gfx
Required for WaEnablePreemptionGranularityControlByUMD:skl,bxt
Reviewed-by: Nick Hoath <nicholas.hoath@intel.com>
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/i915_reg.h | 2 ++
drivers/gpu/drm/i915/intel_ringbuffer.c | 6 ++++++
2 files changed, 8 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 7938814..511732e 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -5998,6 +5998,8 @@ enum skl_disp_power_wells {
#define FF_SLICE_CS_CHICKEN2 _MMIO(0x20e4)
#define GEN9_TSG_BARRIER_ACK_DISABLE (1<<8)
+#define GEN8_CS_CHICKEN1 _MMIO(0x2580)
+
/* GEN7 chicken */
#define GEN7_COMMON_SLICE_CHICKEN1 _MMIO(0x7010)
# define GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC ((1<<10) | (1<<26))
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 56af736..47d8767 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -908,6 +908,7 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
struct drm_device *dev = ring->dev;
struct drm_i915_private *dev_priv = dev->dev_private;
uint32_t tmp;
+ int ret;
/* WaEnableLbsSlaRetryTimerDecrement:skl */
I915_WRITE(BDW_SCRATCH1, I915_READ(BDW_SCRATCH1) |
@@ -978,6 +979,11 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
/* WaDisableSTUnitPowerOptimization:skl,bxt */
WA_SET_BIT_MASKED(HALF_SLICE_CHICKEN2, GEN8_ST_PO_DISABLE);
+ /* WaEnablePreemptionGranularityControlByUMD:skl,bxt */
+ ret= wa_ring_whitelist_reg(ring, GEN8_CS_CHICKEN1);
+ if (ret)
+ return ret;
+
return 0;
}
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 3/8] drm/i915/gen9: Add HDC_CHICKEN1 to HW whitelist
2016-01-21 14:00 [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 1/8] drm/i915/gen9: Add framework to whitelist specific GPU registers Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 2/8] drm/i915/gen9: Add GEN8_CS_CHICKEN1 to HW whitelist Arun Siluvery
@ 2016-01-21 14:00 ` Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 4/8] drm/i915/bxt: Add GEN9_CS_DEBUG_MODE1 " Arun Siluvery
` (6 subsequent siblings)
9 siblings, 0 replies; 20+ messages in thread
From: Arun Siluvery @ 2016-01-21 14:00 UTC (permalink / raw)
To: intel-gfx
Required for WaAllowUMDToModifyHDCChicken1:skl,bxt
Reviewed-by: Nick Hoath <nicholas.hoath@intel.com>
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/i915_reg.h | 2 ++
drivers/gpu/drm/i915/intel_ringbuffer.c | 5 +++++
2 files changed, 7 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 511732e..ed887cf 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -6045,6 +6045,8 @@ enum skl_disp_power_wells {
#define HDC_FORCE_NON_COHERENT (1<<4)
#define HDC_BARRIER_PERFORMANCE_DISABLE (1<<10)
+#define GEN8_HDC_CHICKEN1 _MMIO(0x7304)
+
/* GEN9 chicken */
#define SLICE_ECO_CHICKEN0 _MMIO(0x7308)
#define PIXEL_MASK_CAMMING_DISABLE (1 << 14)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 47d8767..fea632f 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -984,6 +984,11 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
if (ret)
return ret;
+ /* WaAllowUMDToModifyHDCChicken1:skl,bxt */
+ ret = wa_ring_whitelist_reg(ring, GEN8_HDC_CHICKEN1);
+ if (ret)
+ return ret;
+
return 0;
}
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 4/8] drm/i915/bxt: Add GEN9_CS_DEBUG_MODE1 to HW whitelist
2016-01-21 14:00 [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Arun Siluvery
` (2 preceding siblings ...)
2016-01-21 14:00 ` [PATCH v2 3/8] drm/i915/gen9: Add HDC_CHICKEN1 " Arun Siluvery
@ 2016-01-21 14:00 ` Arun Siluvery
2016-01-21 14:40 ` Nick Hoath
2016-01-21 14:00 ` [PATCH v2 5/8] drm/i915/bxt: Add GEN8_L3SQCREG4 " Arun Siluvery
` (5 subsequent siblings)
9 siblings, 1 reply; 20+ messages in thread
From: Arun Siluvery @ 2016-01-21 14:00 UTC (permalink / raw)
To: intel-gfx
Required for,
WaDisableObjectLevelPreemptionForTrifanOrPolygon:bxt
WaDisableObjectLevelPreemptionForInstancedDraw:bxt
WaDisableObjectLevelPreemtionForInstanceId:bxt
According to WA database these are only applicable for BXT:A0 but since
A0 and A1 shares the same GT these are extended for A1 as well.
These are also required for SKL until B0 but not adding them because they
are pre-production steppings.
v2: use lower case in register defines (Nick)
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/i915_reg.h | 1 +
drivers/gpu/drm/i915/intel_ringbuffer.c | 9 +++++++++
2 files changed, 10 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index ed887cf..c51e7e9 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -5998,6 +5998,7 @@ enum skl_disp_power_wells {
#define FF_SLICE_CS_CHICKEN2 _MMIO(0x20e4)
#define GEN9_TSG_BARRIER_ACK_DISABLE (1<<8)
+#define GEN9_CS_DEBUG_MODE1 _MMIO(0x20ec)
#define GEN8_CS_CHICKEN1 _MMIO(0x2580)
/* GEN7 chicken */
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index fea632f..72e89b6 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1131,6 +1131,15 @@ static int bxt_init_workarounds(struct intel_engine_cs *ring)
GEN7_SBE_SS_CACHE_DISPATCH_PORT_SHARING_DISABLE);
}
+ /* WaDisableObjectLevelPreemptionForTrifanOrPolygon:bxt */
+ /* WaDisableObjectLevelPreemptionForInstancedDraw:bxt */
+ /* WaDisableObjectLevelPreemtionForInstanceId:bxt */
+ if (IS_BXT_REVID(dev, 0, BXT_REVID_A1)) {
+ ret = wa_ring_whitelist_reg(ring, GEN9_CS_DEBUG_MODE1);
+ if (ret)
+ return ret;
+ }
+
return 0;
}
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 5/8] drm/i915/bxt: Add GEN8_L3SQCREG4 to HW whitelist
2016-01-21 14:00 [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Arun Siluvery
` (3 preceding siblings ...)
2016-01-21 14:00 ` [PATCH v2 4/8] drm/i915/bxt: Add GEN9_CS_DEBUG_MODE1 " Arun Siluvery
@ 2016-01-21 14:00 ` Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 6/8] drm/i915/skl: " Arun Siluvery
` (4 subsequent siblings)
9 siblings, 0 replies; 20+ messages in thread
From: Arun Siluvery @ 2016-01-21 14:00 UTC (permalink / raw)
To: intel-gfx
Required for WaDisableLSQCROPERFforOCL:bxt
According to WA database these are only applicable for BXT:A0 but since
A0 and A1 shares the same GT these are extended for A1 as well.
Reviewed-by: Nick Hoath <nicholas.hoath@intel.com>
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ringbuffer.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 72e89b6..1decaf1 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1134,10 +1134,15 @@ static int bxt_init_workarounds(struct intel_engine_cs *ring)
/* WaDisableObjectLevelPreemptionForTrifanOrPolygon:bxt */
/* WaDisableObjectLevelPreemptionForInstancedDraw:bxt */
/* WaDisableObjectLevelPreemtionForInstanceId:bxt */
+ /* WaDisableLSQCROPERFforOCL:bxt */
if (IS_BXT_REVID(dev, 0, BXT_REVID_A1)) {
ret = wa_ring_whitelist_reg(ring, GEN9_CS_DEBUG_MODE1);
if (ret)
return ret;
+
+ ret = wa_ring_whitelist_reg(ring, GEN8_L3SQCREG4);
+ if (ret)
+ return ret;
}
return 0;
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 6/8] drm/i915/skl: Add GEN8_L3SQCREG4 to HW whitelist
2016-01-21 14:00 [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Arun Siluvery
` (4 preceding siblings ...)
2016-01-21 14:00 ` [PATCH v2 5/8] drm/i915/bxt: Add GEN8_L3SQCREG4 " Arun Siluvery
@ 2016-01-21 14:00 ` Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 7/8] drm/i915/skl: Enable Per context Preemption granularity control Arun Siluvery
` (3 subsequent siblings)
9 siblings, 0 replies; 20+ messages in thread
From: Arun Siluvery @ 2016-01-21 14:00 UTC (permalink / raw)
To: intel-gfx
Required for WaDisableLSQCROPERFforOCL:skl
Reviewed-by: Nick Hoath <nicholas.hoath@intel.com>
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ringbuffer.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 1decaf1..ce64519 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1096,6 +1096,11 @@ static int skl_init_workarounds(struct intel_engine_cs *ring)
GEN7_HALF_SLICE_CHICKEN1,
GEN7_SBE_SS_CACHE_DISPATCH_PORT_SHARING_DISABLE);
+ /* WaDisableLSQCROPERFforOCL:skl */
+ ret = wa_ring_whitelist_reg(ring, GEN8_L3SQCREG4);
+ if (ret)
+ return ret;
+
return skl_tune_iz_hashing(ring);
}
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 7/8] drm/i915/skl: Enable Per context Preemption granularity control
2016-01-21 14:00 [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Arun Siluvery
` (5 preceding siblings ...)
2016-01-21 14:00 ` [PATCH v2 6/8] drm/i915/skl: " Arun Siluvery
@ 2016-01-21 14:00 ` Arun Siluvery
2016-01-21 14:41 ` Nick Hoath
2016-01-21 14:00 ` [PATCH v2 8/8] drm/i915/gen9: Add WaOCLCoherentLineFlush Arun Siluvery
` (2 subsequent siblings)
9 siblings, 1 reply; 20+ messages in thread
From: Arun Siluvery @ 2016-01-21 14:00 UTC (permalink / raw)
To: intel-gfx
Per context preemption granularity control is only available from SKL:E0+
Cc: Dave Gordon <david.s.gordon@intel.com>
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/i915_reg.h | 3 +++
drivers/gpu/drm/i915/intel_ringbuffer.c | 10 ++++++++++
2 files changed, 13 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index c51e7e9..65e32a3 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -5995,6 +5995,9 @@ enum skl_disp_power_wells {
#define SKL_DFSM_CDCLK_LIMIT_450 (2 << 23)
#define SKL_DFSM_CDCLK_LIMIT_337_5 (3 << 23)
+#define GEN7_FF_SLICE_CS_CHICKEN1 _MMIO(0x20e0)
+#define GEN9_FFSC_PERCTX_PREEMPT_CTRL (1<<14)
+
#define FF_SLICE_CS_CHICKEN2 _MMIO(0x20e4)
#define GEN9_TSG_BARRIER_ACK_DISABLE (1<<8)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index ce64519..e91fb70 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1044,6 +1044,16 @@ static int skl_init_workarounds(struct intel_engine_cs *ring)
if (ret)
return ret;
+ /*
+ * Actual WA is to disable percontext preemption granularity control
+ * until D0 which is the default case so this is equivalent to
+ * !WaDisablePerCtxtPreemptionGranularityControl:skl
+ */
+ if (IS_SKL_REVID(dev, SKL_REVID_E0, REVID_FOREVER)) {
+ I915_WRITE(GEN7_FF_SLICE_CS_CHICKEN1,
+ _MASKED_BIT_ENABLE(GEN9_FFSC_PERCTX_PREEMPT_CTRL));
+ }
+
if (IS_SKL_REVID(dev, 0, SKL_REVID_D0)) {
/* WaDisableChickenBitTSGBarrierAckForFFSliceCS:skl */
I915_WRITE(FF_SLICE_CS_CHICKEN2,
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 8/8] drm/i915/gen9: Add WaOCLCoherentLineFlush
2016-01-21 14:00 [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Arun Siluvery
` (6 preceding siblings ...)
2016-01-21 14:00 ` [PATCH v2 7/8] drm/i915/skl: Enable Per context Preemption granularity control Arun Siluvery
@ 2016-01-21 14:00 ` Arun Siluvery
2016-01-21 14:42 ` Nick Hoath
2016-01-21 14:25 ` ✗ Fi.CI.BAT: warning for Gen9 HW whitelist and Preemption WA patches (rev2) Patchwork
2016-01-21 15:17 ` [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Chris Wilson
9 siblings, 1 reply; 20+ messages in thread
From: Arun Siluvery @ 2016-01-21 14:00 UTC (permalink / raw)
To: intel-gfx
This is mainly required for preemption.
Cc: Dave Gordon <david.s.gordon@intel.com>
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ringbuffer.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index e91fb70..f26f274 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -979,6 +979,10 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
/* WaDisableSTUnitPowerOptimization:skl,bxt */
WA_SET_BIT_MASKED(HALF_SLICE_CHICKEN2, GEN8_ST_PO_DISABLE);
+ /* WaOCLCoherentLineFlush:skl,bxt */
+ I915_WRITE(GEN8_L3SQCREG4, (I915_READ(GEN8_L3SQCREG4) |
+ GEN8_LQSC_FLUSH_COHERENT_LINES));
+
/* WaEnablePreemptionGranularityControlByUMD:skl,bxt */
ret= wa_ring_whitelist_reg(ring, GEN8_CS_CHICKEN1);
if (ret)
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* ✗ Fi.CI.BAT: warning for Gen9 HW whitelist and Preemption WA patches (rev2)
2016-01-21 14:00 [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Arun Siluvery
` (7 preceding siblings ...)
2016-01-21 14:00 ` [PATCH v2 8/8] drm/i915/gen9: Add WaOCLCoherentLineFlush Arun Siluvery
@ 2016-01-21 14:25 ` Patchwork
2016-01-21 14:36 ` Arun Siluvery
2016-01-21 15:17 ` [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Chris Wilson
9 siblings, 1 reply; 20+ messages in thread
From: Patchwork @ 2016-01-21 14:25 UTC (permalink / raw)
To: arun.siluvery; +Cc: intel-gfx
== Summary ==
Built on 8fe9e785ae04fa7c37f7935cff12d62e38054b60 drm-intel-nightly: 2016y-01m-21d-11h-02m-42s UTC integration manifest
Test kms_flip:
Subgroup basic-flip-vs-dpms:
pass -> DMESG-WARN (ilk-hp8440p)
bdw-nuci7 total:140 pass:131 dwarn:0 dfail:0 fail:0 skip:9
bdw-ultra total:143 pass:137 dwarn:0 dfail:0 fail:0 skip:6
bsw-nuc-2 total:143 pass:119 dwarn:0 dfail:0 fail:0 skip:24
byt-nuc total:143 pass:128 dwarn:0 dfail:0 fail:0 skip:15
hsw-brixbox total:143 pass:136 dwarn:0 dfail:0 fail:0 skip:7
hsw-gt2 total:143 pass:139 dwarn:0 dfail:0 fail:0 skip:4
ilk-hp8440p total:143 pass:103 dwarn:2 dfail:0 fail:0 skip:38
ivb-t430s total:143 pass:137 dwarn:0 dfail:0 fail:0 skip:6
skl-i5k-2 total:143 pass:134 dwarn:1 dfail:0 fail:0 skip:8
skl-i7k-2 total:143 pass:134 dwarn:1 dfail:0 fail:0 skip:8
snb-dellxps total:143 pass:129 dwarn:0 dfail:0 fail:0 skip:14
snb-x220t total:143 pass:129 dwarn:0 dfail:0 fail:1 skip:13
Results at /archive/results/CI_IGT_test/Patchwork_1238/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: ✗ Fi.CI.BAT: warning for Gen9 HW whitelist and Preemption WA patches (rev2)
2016-01-21 14:25 ` ✗ Fi.CI.BAT: warning for Gen9 HW whitelist and Preemption WA patches (rev2) Patchwork
@ 2016-01-21 14:36 ` Arun Siluvery
0 siblings, 0 replies; 20+ messages in thread
From: Arun Siluvery @ 2016-01-21 14:36 UTC (permalink / raw)
To: Patchwork; +Cc: intel-gfx
On 21/01/2016 14:25, Patchwork wrote:
> == Summary ==
>
> Built on 8fe9e785ae04fa7c37f7935cff12d62e38054b60 drm-intel-nightly: 2016y-01m-21d-11h-02m-42s UTC integration manifest
>
> Test kms_flip:
> Subgroup basic-flip-vs-dpms:
> pass -> DMESG-WARN (ilk-hp8440p)
>
> bdw-nuci7 total:140 pass:131 dwarn:0 dfail:0 fail:0 skip:9
> bdw-ultra total:143 pass:137 dwarn:0 dfail:0 fail:0 skip:6
> bsw-nuc-2 total:143 pass:119 dwarn:0 dfail:0 fail:0 skip:24
> byt-nuc total:143 pass:128 dwarn:0 dfail:0 fail:0 skip:15
> hsw-brixbox total:143 pass:136 dwarn:0 dfail:0 fail:0 skip:7
> hsw-gt2 total:143 pass:139 dwarn:0 dfail:0 fail:0 skip:4
> ilk-hp8440p total:143 pass:103 dwarn:2 dfail:0 fail:0 skip:38
> ivb-t430s total:143 pass:137 dwarn:0 dfail:0 fail:0 skip:6
> skl-i5k-2 total:143 pass:134 dwarn:1 dfail:0 fail:0 skip:8
> skl-i7k-2 total:143 pass:134 dwarn:1 dfail:0 fail:0 skip:8
> snb-dellxps total:143 pass:129 dwarn:0 dfail:0 fail:0 skip:14
> snb-x220t total:143 pass:129 dwarn:0 dfail:0 fail:1 skip:13
>
> Results at /archive/results/CI_IGT_test/Patchwork_1238/
>
Known issue, this test has been failing on ilk-hp8440p even before,
Bug 93787 - [BAT ILK] sporadic fifo underruns in
igt@kms_flip@basic-flip-vs-* on ilk-hp8440p
https://bugs.freedesktop.org/show_bug.cgi?id=93787
regards
Arun
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 4/8] drm/i915/bxt: Add GEN9_CS_DEBUG_MODE1 to HW whitelist
2016-01-21 14:00 ` [PATCH v2 4/8] drm/i915/bxt: Add GEN9_CS_DEBUG_MODE1 " Arun Siluvery
@ 2016-01-21 14:40 ` Nick Hoath
0 siblings, 0 replies; 20+ messages in thread
From: Nick Hoath @ 2016-01-21 14:40 UTC (permalink / raw)
To: Arun Siluvery, intel-gfx
On 21/01/2016 14:00, Arun Siluvery wrote:
> Required for,
> WaDisableObjectLevelPreemptionForTrifanOrPolygon:bxt
> WaDisableObjectLevelPreemptionForInstancedDraw:bxt
> WaDisableObjectLevelPreemtionForInstanceId:bxt
>
> According to WA database these are only applicable for BXT:A0 but since
> A0 and A1 shares the same GT these are extended for A1 as well.
>
> These are also required for SKL until B0 but not adding them because they
> are pre-production steppings.
>
> v2: use lower case in register defines (Nick)
>
> Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
Reviewed-by: Nick Hoath <nicholas.hoath@intel.com>
> ---
> drivers/gpu/drm/i915/i915_reg.h | 1 +
> drivers/gpu/drm/i915/intel_ringbuffer.c | 9 +++++++++
> 2 files changed, 10 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index ed887cf..c51e7e9 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -5998,6 +5998,7 @@ enum skl_disp_power_wells {
> #define FF_SLICE_CS_CHICKEN2 _MMIO(0x20e4)
> #define GEN9_TSG_BARRIER_ACK_DISABLE (1<<8)
>
> +#define GEN9_CS_DEBUG_MODE1 _MMIO(0x20ec)
> #define GEN8_CS_CHICKEN1 _MMIO(0x2580)
>
> /* GEN7 chicken */
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index fea632f..72e89b6 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -1131,6 +1131,15 @@ static int bxt_init_workarounds(struct intel_engine_cs *ring)
> GEN7_SBE_SS_CACHE_DISPATCH_PORT_SHARING_DISABLE);
> }
>
> + /* WaDisableObjectLevelPreemptionForTrifanOrPolygon:bxt */
> + /* WaDisableObjectLevelPreemptionForInstancedDraw:bxt */
> + /* WaDisableObjectLevelPreemtionForInstanceId:bxt */
> + if (IS_BXT_REVID(dev, 0, BXT_REVID_A1)) {
> + ret = wa_ring_whitelist_reg(ring, GEN9_CS_DEBUG_MODE1);
> + if (ret)
> + return ret;
> + }
> +
> return 0;
> }
>
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 7/8] drm/i915/skl: Enable Per context Preemption granularity control
2016-01-21 14:00 ` [PATCH v2 7/8] drm/i915/skl: Enable Per context Preemption granularity control Arun Siluvery
@ 2016-01-21 14:41 ` Nick Hoath
0 siblings, 0 replies; 20+ messages in thread
From: Nick Hoath @ 2016-01-21 14:41 UTC (permalink / raw)
To: Arun Siluvery, intel-gfx
On 21/01/2016 14:00, Arun Siluvery wrote:
> Per context preemption granularity control is only available from SKL:E0+
>
> Cc: Dave Gordon <david.s.gordon@intel.com>
> Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
Reviewed-by: Nick Hoath <nicholas.hoath@intel.com>
> ---
> drivers/gpu/drm/i915/i915_reg.h | 3 +++
> drivers/gpu/drm/i915/intel_ringbuffer.c | 10 ++++++++++
> 2 files changed, 13 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index c51e7e9..65e32a3 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -5995,6 +5995,9 @@ enum skl_disp_power_wells {
> #define SKL_DFSM_CDCLK_LIMIT_450 (2 << 23)
> #define SKL_DFSM_CDCLK_LIMIT_337_5 (3 << 23)
>
> +#define GEN7_FF_SLICE_CS_CHICKEN1 _MMIO(0x20e0)
> +#define GEN9_FFSC_PERCTX_PREEMPT_CTRL (1<<14)
> +
> #define FF_SLICE_CS_CHICKEN2 _MMIO(0x20e4)
> #define GEN9_TSG_BARRIER_ACK_DISABLE (1<<8)
>
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index ce64519..e91fb70 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -1044,6 +1044,16 @@ static int skl_init_workarounds(struct intel_engine_cs *ring)
> if (ret)
> return ret;
>
> + /*
> + * Actual WA is to disable percontext preemption granularity control
> + * until D0 which is the default case so this is equivalent to
> + * !WaDisablePerCtxtPreemptionGranularityControl:skl
> + */
> + if (IS_SKL_REVID(dev, SKL_REVID_E0, REVID_FOREVER)) {
> + I915_WRITE(GEN7_FF_SLICE_CS_CHICKEN1,
> + _MASKED_BIT_ENABLE(GEN9_FFSC_PERCTX_PREEMPT_CTRL));
> + }
> +
> if (IS_SKL_REVID(dev, 0, SKL_REVID_D0)) {
> /* WaDisableChickenBitTSGBarrierAckForFFSliceCS:skl */
> I915_WRITE(FF_SLICE_CS_CHICKEN2,
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 8/8] drm/i915/gen9: Add WaOCLCoherentLineFlush
2016-01-21 14:00 ` [PATCH v2 8/8] drm/i915/gen9: Add WaOCLCoherentLineFlush Arun Siluvery
@ 2016-01-21 14:42 ` Nick Hoath
0 siblings, 0 replies; 20+ messages in thread
From: Nick Hoath @ 2016-01-21 14:42 UTC (permalink / raw)
To: Arun Siluvery, intel-gfx
On 21/01/2016 14:00, Arun Siluvery wrote:
> This is mainly required for preemption.
>
> Cc: Dave Gordon <david.s.gordon@intel.com>
> Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
Reviewed-by: Nick Hoath <nicholas.hoath@intel.com>
> ---
> drivers/gpu/drm/i915/intel_ringbuffer.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index e91fb70..f26f274 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -979,6 +979,10 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
> /* WaDisableSTUnitPowerOptimization:skl,bxt */
> WA_SET_BIT_MASKED(HALF_SLICE_CHICKEN2, GEN8_ST_PO_DISABLE);
>
> + /* WaOCLCoherentLineFlush:skl,bxt */
> + I915_WRITE(GEN8_L3SQCREG4, (I915_READ(GEN8_L3SQCREG4) |
> + GEN8_LQSC_FLUSH_COHERENT_LINES));
> +
> /* WaEnablePreemptionGranularityControlByUMD:skl,bxt */
> ret= wa_ring_whitelist_reg(ring, GEN8_CS_CHICKEN1);
> if (ret)
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches
2016-01-21 14:00 [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Arun Siluvery
` (8 preceding siblings ...)
2016-01-21 14:25 ` ✗ Fi.CI.BAT: warning for Gen9 HW whitelist and Preemption WA patches (rev2) Patchwork
@ 2016-01-21 15:17 ` Chris Wilson
2016-01-21 16:07 ` Arun Siluvery
9 siblings, 1 reply; 20+ messages in thread
From: Chris Wilson @ 2016-01-21 15:17 UTC (permalink / raw)
To: Arun Siluvery; +Cc: intel-gfx
On Thu, Jan 21, 2016 at 02:00:39PM +0000, Arun Siluvery wrote:
> Resending all patches as told by Daniel because I didn't use correct
> message-id while replying updated version of Patch1 before which means
> patchwork won't pickup and we won't have CI results. Previous updates
> regarding Patch1 are available at https://patchwork.freedesktop.org/patch/70527/
>
> Some of the WA patches are now reviewed so I added r-b tags for them.
>
> Reviewed: 1, 2, 3, 5, 6
> Updated: 4 (to address review comment)
> To be reviewed: 4, 7, 8
>
> Arun Siluvery (8):
> drm/i915/gen9: Add framework to whitelist specific GPU registers
> drm/i915/gen9: Add GEN8_CS_CHICKEN1 to HW whitelist
> drm/i915/gen9: Add HDC_CHICKEN1 to HW whitelist
> drm/i915/bxt: Add GEN9_CS_DEBUG_MODE1 to HW whitelist
> drm/i915/bxt: Add GEN8_L3SQCREG4 to HW whitelist
> drm/i915/skl: Add GEN8_L3SQCREG4 to HW whitelist
> drm/i915/skl: Enable Per context Preemption granularity control
> drm/i915/gen9: Add WaOCLCoherentLineFlush
With bland changelogs, it is impossible to assess the severity of the
issues being addressed. How many of these do we need to apply to kernel
release to address potential user impact? Which do backporters need?
Are they critical stability fixes or power tuning or enabling for future
features?
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches
2016-01-21 15:17 ` [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Chris Wilson
@ 2016-01-21 16:07 ` Arun Siluvery
2016-01-21 16:56 ` Chris Wilson
2016-01-25 18:01 ` Daniel Vetter
0 siblings, 2 replies; 20+ messages in thread
From: Arun Siluvery @ 2016-01-21 16:07 UTC (permalink / raw)
To: Chris Wilson, intel-gfx
On 21/01/2016 15:17, Chris Wilson wrote:
> On Thu, Jan 21, 2016 at 02:00:39PM +0000, Arun Siluvery wrote:
>> Resending all patches as told by Daniel because I didn't use correct
>> message-id while replying updated version of Patch1 before which means
>> patchwork won't pickup and we won't have CI results. Previous updates
>> regarding Patch1 are available at https://patchwork.freedesktop.org/patch/70527/
>>
>> Some of the WA patches are now reviewed so I added r-b tags for them.
>>
>> Reviewed: 1, 2, 3, 5, 6
>> Updated: 4 (to address review comment)
>> To be reviewed: 4, 7, 8
>>
>> Arun Siluvery (8):
>> drm/i915/gen9: Add framework to whitelist specific GPU registers
>> drm/i915/gen9: Add GEN8_CS_CHICKEN1 to HW whitelist
>> drm/i915/gen9: Add HDC_CHICKEN1 to HW whitelist
>> drm/i915/bxt: Add GEN9_CS_DEBUG_MODE1 to HW whitelist
>> drm/i915/bxt: Add GEN8_L3SQCREG4 to HW whitelist
>> drm/i915/skl: Add GEN8_L3SQCREG4 to HW whitelist
>> drm/i915/skl: Enable Per context Preemption granularity control
>> drm/i915/gen9: Add WaOCLCoherentLineFlush
>
> With bland changelogs, it is impossible to assess the severity of the
> issues being addressed. How many of these do we need to apply to kernel
> release to address potential user impact? Which do backporters need?
> Are they critical stability fixes or power tuning or enabling for future
> features?
> -Chris
>
All of these changes are required for Preemption so they affect Gen9
only. The whitelist changes are really to support for preemption WA that
are going to be part of UMD. The WA data is sketchy and for some of them
hsd links are not available so I don't really know the details.
regards
Arun
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches
2016-01-21 16:07 ` Arun Siluvery
@ 2016-01-21 16:56 ` Chris Wilson
2016-01-21 17:35 ` Arun Siluvery
2016-01-25 18:01 ` Daniel Vetter
1 sibling, 1 reply; 20+ messages in thread
From: Chris Wilson @ 2016-01-21 16:56 UTC (permalink / raw)
To: Arun Siluvery; +Cc: intel-gfx
On Thu, Jan 21, 2016 at 04:07:22PM +0000, Arun Siluvery wrote:
> On 21/01/2016 15:17, Chris Wilson wrote:
> >On Thu, Jan 21, 2016 at 02:00:39PM +0000, Arun Siluvery wrote:
> >>Resending all patches as told by Daniel because I didn't use correct
> >>message-id while replying updated version of Patch1 before which means
> >>patchwork won't pickup and we won't have CI results. Previous updates
> >>regarding Patch1 are available at https://patchwork.freedesktop.org/patch/70527/
> >>
> >>Some of the WA patches are now reviewed so I added r-b tags for them.
> >>
> >>Reviewed: 1, 2, 3, 5, 6
> >>Updated: 4 (to address review comment)
> >>To be reviewed: 4, 7, 8
> >>
> >>Arun Siluvery (8):
> >> drm/i915/gen9: Add framework to whitelist specific GPU registers
> >> drm/i915/gen9: Add GEN8_CS_CHICKEN1 to HW whitelist
> >> drm/i915/gen9: Add HDC_CHICKEN1 to HW whitelist
> >> drm/i915/bxt: Add GEN9_CS_DEBUG_MODE1 to HW whitelist
> >> drm/i915/bxt: Add GEN8_L3SQCREG4 to HW whitelist
> >> drm/i915/skl: Add GEN8_L3SQCREG4 to HW whitelist
> >> drm/i915/skl: Enable Per context Preemption granularity control
> >> drm/i915/gen9: Add WaOCLCoherentLineFlush
> >
> >With bland changelogs, it is impossible to assess the severity of the
> >issues being addressed. How many of these do we need to apply to kernel
> >release to address potential user impact? Which do backporters need?
> >Are they critical stability fixes or power tuning or enabling for future
> >features?
> >-Chris
> >
> All of these changes are required for Preemption so they affect Gen9
> only. The whitelist changes are really to support for preemption WA
> that are going to be part of UMD. The WA data is sketchy and for
> some of them hsd links are not available so I don't really know the
> details.
Are you happy with adding "Required for future enabling of pre-emptive
command execution" to each? It just helps clarify the purpose of the
patch, and as I said helps answer the question of "do I need to backport
this to stable kernels".
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches
2016-01-21 16:56 ` Chris Wilson
@ 2016-01-21 17:35 ` Arun Siluvery
0 siblings, 0 replies; 20+ messages in thread
From: Arun Siluvery @ 2016-01-21 17:35 UTC (permalink / raw)
To: Chris Wilson, intel-gfx
On 21/01/2016 16:56, Chris Wilson wrote:
> On Thu, Jan 21, 2016 at 04:07:22PM +0000, Arun Siluvery wrote:
>> On 21/01/2016 15:17, Chris Wilson wrote:
>>> On Thu, Jan 21, 2016 at 02:00:39PM +0000, Arun Siluvery wrote:
>>>> Resending all patches as told by Daniel because I didn't use correct
>>>> message-id while replying updated version of Patch1 before which means
>>>> patchwork won't pickup and we won't have CI results. Previous updates
>>>> regarding Patch1 are available at https://patchwork.freedesktop.org/patch/70527/
>>>>
>>>> Some of the WA patches are now reviewed so I added r-b tags for them.
>>>>
>>>> Reviewed: 1, 2, 3, 5, 6
>>>> Updated: 4 (to address review comment)
>>>> To be reviewed: 4, 7, 8
>>>>
>>>> Arun Siluvery (8):
>>>> drm/i915/gen9: Add framework to whitelist specific GPU registers
>>>> drm/i915/gen9: Add GEN8_CS_CHICKEN1 to HW whitelist
>>>> drm/i915/gen9: Add HDC_CHICKEN1 to HW whitelist
>>>> drm/i915/bxt: Add GEN9_CS_DEBUG_MODE1 to HW whitelist
>>>> drm/i915/bxt: Add GEN8_L3SQCREG4 to HW whitelist
>>>> drm/i915/skl: Add GEN8_L3SQCREG4 to HW whitelist
>>>> drm/i915/skl: Enable Per context Preemption granularity control
>>>> drm/i915/gen9: Add WaOCLCoherentLineFlush
>>>
>>> With bland changelogs, it is impossible to assess the severity of the
>>> issues being addressed. How many of these do we need to apply to kernel
>>> release to address potential user impact? Which do backporters need?
>>> Are they critical stability fixes or power tuning or enabling for future
>>> features?
>>> -Chris
>>>
>> All of these changes are required for Preemption so they affect Gen9
>> only. The whitelist changes are really to support for preemption WA
>> that are going to be part of UMD. The WA data is sketchy and for
>> some of them hsd links are not available so I don't really know the
>> details.
>
> Are you happy with adding "Required for future enabling of pre-emptive
> command execution" to each? It just helps clarify the purpose of the
> patch, and as I said helps answer the question of "do I need to backport
> this to stable kernels".
yes it helps, will add it and resend.
regards
Arun
> -Chris
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches
2016-01-21 16:07 ` Arun Siluvery
2016-01-21 16:56 ` Chris Wilson
@ 2016-01-25 18:01 ` Daniel Vetter
2016-01-25 18:23 ` Arun Siluvery
1 sibling, 1 reply; 20+ messages in thread
From: Daniel Vetter @ 2016-01-25 18:01 UTC (permalink / raw)
To: Arun Siluvery; +Cc: intel-gfx
On Thu, Jan 21, 2016 at 04:07:22PM +0000, Arun Siluvery wrote:
> On 21/01/2016 15:17, Chris Wilson wrote:
> >On Thu, Jan 21, 2016 at 02:00:39PM +0000, Arun Siluvery wrote:
> >>Resending all patches as told by Daniel because I didn't use correct
> >>message-id while replying updated version of Patch1 before which means
> >>patchwork won't pickup and we won't have CI results. Previous updates
> >>regarding Patch1 are available at https://patchwork.freedesktop.org/patch/70527/
> >>
> >>Some of the WA patches are now reviewed so I added r-b tags for them.
> >>
> >>Reviewed: 1, 2, 3, 5, 6
> >>Updated: 4 (to address review comment)
> >>To be reviewed: 4, 7, 8
> >>
> >>Arun Siluvery (8):
> >> drm/i915/gen9: Add framework to whitelist specific GPU registers
> >> drm/i915/gen9: Add GEN8_CS_CHICKEN1 to HW whitelist
> >> drm/i915/gen9: Add HDC_CHICKEN1 to HW whitelist
> >> drm/i915/bxt: Add GEN9_CS_DEBUG_MODE1 to HW whitelist
> >> drm/i915/bxt: Add GEN8_L3SQCREG4 to HW whitelist
> >> drm/i915/skl: Add GEN8_L3SQCREG4 to HW whitelist
> >> drm/i915/skl: Enable Per context Preemption granularity control
> >> drm/i915/gen9: Add WaOCLCoherentLineFlush
> >
> >With bland changelogs, it is impossible to assess the severity of the
> >issues being addressed. How many of these do we need to apply to kernel
> >release to address potential user impact? Which do backporters need?
> >Are they critical stability fixes or power tuning or enabling for future
> >features?
> >-Chris
> >
> All of these changes are required for Preemption so they affect Gen9 only.
> The whitelist changes are really to support for preemption WA that are going
> to be part of UMD. The WA data is sketchy and for some of them hsd links are
> not available so I don't really know the details.
Oh, we need pre-empt wa in UMDs? This is going to be a lot of fun to make
it work in a backwards-compat fashion ... Have you started digging into
what would be needed for mesa&co?
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches
2016-01-25 18:01 ` Daniel Vetter
@ 2016-01-25 18:23 ` Arun Siluvery
0 siblings, 0 replies; 20+ messages in thread
From: Arun Siluvery @ 2016-01-25 18:23 UTC (permalink / raw)
To: Daniel Vetter; +Cc: intel-gfx
On 25/01/2016 18:01, Daniel Vetter wrote:
> On Thu, Jan 21, 2016 at 04:07:22PM +0000, Arun Siluvery wrote:
>> On 21/01/2016 15:17, Chris Wilson wrote:
>>> On Thu, Jan 21, 2016 at 02:00:39PM +0000, Arun Siluvery wrote:
>>>> Resending all patches as told by Daniel because I didn't use correct
>>>> message-id while replying updated version of Patch1 before which means
>>>> patchwork won't pickup and we won't have CI results. Previous updates
>>>> regarding Patch1 are available at https://patchwork.freedesktop.org/patch/70527/
>>>>
>>>> Some of the WA patches are now reviewed so I added r-b tags for them.
>>>>
>>>> Reviewed: 1, 2, 3, 5, 6
>>>> Updated: 4 (to address review comment)
>>>> To be reviewed: 4, 7, 8
>>>>
>>>> Arun Siluvery (8):
>>>> drm/i915/gen9: Add framework to whitelist specific GPU registers
>>>> drm/i915/gen9: Add GEN8_CS_CHICKEN1 to HW whitelist
>>>> drm/i915/gen9: Add HDC_CHICKEN1 to HW whitelist
>>>> drm/i915/bxt: Add GEN9_CS_DEBUG_MODE1 to HW whitelist
>>>> drm/i915/bxt: Add GEN8_L3SQCREG4 to HW whitelist
>>>> drm/i915/skl: Add GEN8_L3SQCREG4 to HW whitelist
>>>> drm/i915/skl: Enable Per context Preemption granularity control
>>>> drm/i915/gen9: Add WaOCLCoherentLineFlush
>>>
>>> With bland changelogs, it is impossible to assess the severity of the
>>> issues being addressed. How many of these do we need to apply to kernel
>>> release to address potential user impact? Which do backporters need?
>>> Are they critical stability fixes or power tuning or enabling for future
>>> features?
>>> -Chris
>>>
>> All of these changes are required for Preemption so they affect Gen9 only.
>> The whitelist changes are really to support for preemption WA that are going
>> to be part of UMD. The WA data is sketchy and for some of them hsd links are
>> not available so I don't really know the details.
>
> Oh, we need pre-empt wa in UMDs? This is going to be a lot of fun to make
> it work in a backwards-compat fashion ... Have you started digging into
> what would be needed for mesa&co?
Yes it is, userspace mainly selects the type of preemption and anything
HW allows them in the whitelisted registers but I don't know what all
would be needed.
There is one WA where something need to be cleared in SIP but neither
mesa nor beignet uses that at the moment.
regards
Arun
> -Daniel
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2016-01-25 18:23 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-21 14:00 [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 1/8] drm/i915/gen9: Add framework to whitelist specific GPU registers Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 2/8] drm/i915/gen9: Add GEN8_CS_CHICKEN1 to HW whitelist Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 3/8] drm/i915/gen9: Add HDC_CHICKEN1 " Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 4/8] drm/i915/bxt: Add GEN9_CS_DEBUG_MODE1 " Arun Siluvery
2016-01-21 14:40 ` Nick Hoath
2016-01-21 14:00 ` [PATCH v2 5/8] drm/i915/bxt: Add GEN8_L3SQCREG4 " Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 6/8] drm/i915/skl: " Arun Siluvery
2016-01-21 14:00 ` [PATCH v2 7/8] drm/i915/skl: Enable Per context Preemption granularity control Arun Siluvery
2016-01-21 14:41 ` Nick Hoath
2016-01-21 14:00 ` [PATCH v2 8/8] drm/i915/gen9: Add WaOCLCoherentLineFlush Arun Siluvery
2016-01-21 14:42 ` Nick Hoath
2016-01-21 14:25 ` ✗ Fi.CI.BAT: warning for Gen9 HW whitelist and Preemption WA patches (rev2) Patchwork
2016-01-21 14:36 ` Arun Siluvery
2016-01-21 15:17 ` [PATCH v2 0/8] Gen9 HW whitelist and Preemption WA patches Chris Wilson
2016-01-21 16:07 ` Arun Siluvery
2016-01-21 16:56 ` Chris Wilson
2016-01-21 17:35 ` Arun Siluvery
2016-01-25 18:01 ` Daniel Vetter
2016-01-25 18:23 ` Arun Siluvery
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.