* [Intel-gfx] [PATCH v2 1/4] drm/i915: Create stolen memory region from local memory
@ 2021-02-09 12:00 Matthew Auld
2021-02-09 12:00 ` [Intel-gfx] [PATCH v2 2/4] drm/i915/stolen: treat stolen local as normal " Matthew Auld
` (6 more replies)
0 siblings, 7 replies; 10+ messages in thread
From: Matthew Auld @ 2021-02-09 12:00 UTC (permalink / raw)
To: intel-gfx
From: CQ Tang <cq.tang@intel.com>
Add "REGION_STOLEN" device info to dg1, create stolen memory
region from upper portion of local device memory, starting
from DSMBASE.
v2:
- s/drm_info/drm_dbg; userspace likely doesn't care about stolen.
- mem->type is only setup after the region probe, so setting the name
as stolen-local or stolen-system based on this value won't work. Split
system vs local stolen setup to fix this.
- kill all the region->devmem/is_devmem stuff. We already differentiate
the different types of stolen so such things shouldn't be needed
anymore.
Signed-off-by: CQ Tang <cq.tang@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 90 ++++++++++++++++++++--
drivers/gpu/drm/i915/gem/i915_gem_stolen.h | 3 +
drivers/gpu/drm/i915/i915_pci.c | 2 +-
drivers/gpu/drm/i915/i915_reg.h | 1 +
drivers/gpu/drm/i915/intel_memory_region.c | 6 ++
drivers/gpu/drm/i915/intel_memory_region.h | 5 +-
6 files changed, 97 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index c5f85296a45f..dfc3076abd0c 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -10,6 +10,7 @@
#include <drm/drm_mm.h>
#include <drm/i915_drm.h>
+#include "gem/i915_gem_lmem.h"
#include "gem/i915_gem_region.h"
#include "i915_drv.h"
#include "i915_gem_stolen.h"
@@ -121,6 +122,14 @@ static int i915_adjust_stolen(struct drm_i915_private *i915,
}
}
+ /*
+ * With device local memory, we don't need to check the address range,
+ * this is device memory physical address, could overlap with system
+ * memory.
+ */
+ if (HAS_LMEM(i915))
+ return 0;
+
/*
* Verify that nothing else uses this physical address. Stolen
* memory should be reserved by the BIOS and hidden from the
@@ -682,17 +691,30 @@ static int _i915_gem_object_stolen_init(struct intel_memory_region *mem,
return ret;
}
+struct intel_memory_region *i915_stolen_region(struct drm_i915_private *i915)
+{
+ if (HAS_LMEM(i915))
+ return i915->mm.regions[INTEL_REGION_STOLEN_LMEM];
+
+ return i915->mm.regions[INTEL_REGION_STOLEN_SMEM];
+}
+
struct drm_i915_gem_object *
i915_gem_object_create_stolen(struct drm_i915_private *i915,
resource_size_t size)
{
- return i915_gem_object_create_region(i915->mm.regions[INTEL_REGION_STOLEN_SMEM],
+ return i915_gem_object_create_region(i915_stolen_region(i915),
size, I915_BO_ALLOC_CONTIGUOUS);
}
static int init_stolen(struct intel_memory_region *mem)
{
- intel_memory_region_set_name(mem, "stolen");
+ if (HAS_LMEM(mem->i915)) {
+ if (!io_mapping_init_wc(&mem->iomap,
+ mem->io_start,
+ resource_size(&mem->region)))
+ return -EIO;
+ }
/*
* Initialise stolen early so that we may reserve preallocated
@@ -712,13 +734,65 @@ static const struct intel_memory_region_ops i915_region_stolen_ops = {
.init_object = _i915_gem_object_stolen_init,
};
+static struct intel_memory_region *
+setup_lmem_stolen(struct drm_i915_private *i915)
+{
+ struct intel_uncore *uncore = &i915->uncore;
+ struct pci_dev *pdev = i915->drm.pdev;
+ struct intel_memory_region *mem;
+ resource_size_t io_start;
+ resource_size_t lmem_size;
+ u64 lmem_base;
+
+ if (!IS_DGFX(i915))
+ return ERR_PTR(-ENODEV);
+
+ lmem_base = intel_uncore_read64(uncore, GEN12_DSMBASE);
+ lmem_size = pci_resource_len(pdev, 2) - lmem_base;
+ io_start = pci_resource_start(pdev, 2) + lmem_base;
+
+ mem = intel_memory_region_create(i915, lmem_base, lmem_size,
+ I915_GTT_PAGE_SIZE_4K, io_start,
+ &i915_region_stolen_ops);
+ if (IS_ERR(mem))
+ return mem;
+
+ drm_dbg(&i915->drm, "Stolen Local memory: %pR\n", &mem->region);
+ drm_dbg(&i915->drm, "Stolen Local memory IO start: %pa\n",
+ &mem->io_start);
+
+ intel_memory_region_set_name(mem, "stolen-local");
+
+ return mem;
+}
+
+static struct intel_memory_region*
+setup_smem_stolen(struct drm_i915_private *i915)
+{
+ struct intel_memory_region *mem;
+
+ mem = intel_memory_region_create(i915,
+ intel_graphics_stolen_res.start,
+ resource_size(&intel_graphics_stolen_res),
+ PAGE_SIZE, 0,
+ &i915_region_stolen_ops);
+ if (IS_ERR(mem))
+ return mem;
+
+ intel_memory_region_set_name(mem, "stolen-system");
+
+ return mem;
+}
+
struct intel_memory_region *i915_gem_stolen_setup(struct drm_i915_private *i915)
{
- return intel_memory_region_create(i915,
- intel_graphics_stolen_res.start,
- resource_size(&intel_graphics_stolen_res),
- PAGE_SIZE, 0,
- &i915_region_stolen_ops);
+ struct intel_memory_region *mem;
+
+ mem = setup_lmem_stolen(i915);
+ if (mem == ERR_PTR(-ENODEV))
+ mem = setup_smem_stolen(i915);
+
+ return mem;
}
struct drm_i915_gem_object *
@@ -726,7 +800,7 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_i915_private *i915,
resource_size_t stolen_offset,
resource_size_t size)
{
- struct intel_memory_region *mem = i915->mm.regions[INTEL_REGION_STOLEN_SMEM];
+ struct intel_memory_region *mem = i915_stolen_region(i915);
struct drm_i915_gem_object *obj;
struct drm_mm_node *stolen;
int ret;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
index b03489706796..2d1ce7fec61c 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
@@ -22,6 +22,9 @@ int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *dev_priv,
void i915_gem_stolen_remove_node(struct drm_i915_private *dev_priv,
struct drm_mm_node *node);
struct intel_memory_region *i915_gem_stolen_setup(struct drm_i915_private *i915);
+
+struct intel_memory_region *i915_stolen_region(struct drm_i915_private *i915);
+
struct drm_i915_gem_object *
i915_gem_object_create_stolen(struct drm_i915_private *dev_priv,
resource_size_t size);
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index d09db36b8287..c8309fb5e307 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -906,7 +906,7 @@ static const struct intel_device_info rkl_info = {
#define GEN12_DGFX_FEATURES \
GEN12_FEATURES, \
- .memory_regions = REGION_SMEM | REGION_LMEM, \
+ .memory_regions = REGION_SMEM | REGION_LMEM | REGION_STOLEN_LMEM, \
.has_master_unit_irq = 1, \
.has_llc = 0, \
.has_snoop = 1, \
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 224ad897af34..22e4ad440238 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -12164,6 +12164,7 @@ enum skl_power_gate {
#define GEN12_GLOBAL_MOCS(i) _MMIO(0x4000 + (i) * 4) /* Global MOCS regs */
#define GEN12_GSMBASE _MMIO(0x108100)
+#define GEN12_DSMBASE _MMIO(0x1080C0)
/* gamt regs */
#define GEN8_L3_LRA_1_GPGPU _MMIO(0x4dd4)
diff --git a/drivers/gpu/drm/i915/intel_memory_region.c b/drivers/gpu/drm/i915/intel_memory_region.c
index bf837b6bb185..ac90b76a3fa0 100644
--- a/drivers/gpu/drm/i915/intel_memory_region.c
+++ b/drivers/gpu/drm/i915/intel_memory_region.c
@@ -22,6 +22,10 @@ static const struct {
.class = INTEL_MEMORY_STOLEN_SYSTEM,
.instance = 0,
},
+ [INTEL_REGION_STOLEN_LMEM] = {
+ .class = INTEL_MEMORY_STOLEN_LOCAL,
+ .instance = 0,
+ },
};
struct intel_memory_region *
@@ -278,6 +282,8 @@ int intel_memory_regions_hw_probe(struct drm_i915_private *i915)
case INTEL_MEMORY_SYSTEM:
mem = i915_gem_shmem_setup(i915);
break;
+ case INTEL_MEMORY_STOLEN_LOCAL:
+ fallthrough;
case INTEL_MEMORY_STOLEN_SYSTEM:
mem = i915_gem_stolen_setup(i915);
break;
diff --git a/drivers/gpu/drm/i915/intel_memory_region.h b/drivers/gpu/drm/i915/intel_memory_region.h
index edd49067c8ca..4c8ec15af55f 100644
--- a/drivers/gpu/drm/i915/intel_memory_region.h
+++ b/drivers/gpu/drm/i915/intel_memory_region.h
@@ -26,18 +26,21 @@ enum intel_memory_type {
INTEL_MEMORY_SYSTEM = 0,
INTEL_MEMORY_LOCAL,
INTEL_MEMORY_STOLEN_SYSTEM,
+ INTEL_MEMORY_STOLEN_LOCAL,
};
enum intel_region_id {
INTEL_REGION_SMEM = 0,
INTEL_REGION_LMEM,
INTEL_REGION_STOLEN_SMEM,
+ INTEL_REGION_STOLEN_LMEM,
INTEL_REGION_UNKNOWN, /* Should be last */
};
#define REGION_SMEM BIT(INTEL_REGION_SMEM)
#define REGION_LMEM BIT(INTEL_REGION_LMEM)
#define REGION_STOLEN_SMEM BIT(INTEL_REGION_STOLEN_SMEM)
+#define REGION_STOLEN_LMEM BIT(INTEL_REGION_STOLEN_LMEM)
#define I915_ALLOC_MIN_PAGE_SIZE BIT(0)
#define I915_ALLOC_CONTIGUOUS BIT(1)
@@ -82,7 +85,7 @@ struct intel_memory_region {
u16 type;
u16 instance;
enum intel_region_id id;
- char name[8];
+ char name[16];
struct list_head reserved;
--
2.26.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 10+ messages in thread* [Intel-gfx] [PATCH v2 2/4] drm/i915/stolen: treat stolen local as normal local memory
2021-02-09 12:00 [Intel-gfx] [PATCH v2 1/4] drm/i915: Create stolen memory region from local memory Matthew Auld
@ 2021-02-09 12:00 ` Matthew Auld
2021-02-09 12:00 ` [Intel-gfx] [PATCH v2 3/4] drm/i915/stolen: enforce the min_page_size contract Matthew Auld
` (5 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Matthew Auld @ 2021-02-09 12:00 UTC (permalink / raw)
To: intel-gfx
Underneath it's the same stuff, so things like the PTE_LM bits for the
GTT should just keep working as-is.
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_lmem.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_lmem.c b/drivers/gpu/drm/i915/gem/i915_gem_lmem.c
index 194f35342710..078484d5e3f5 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_lmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_lmem.c
@@ -19,7 +19,10 @@ const struct drm_i915_gem_object_ops i915_gem_lmem_obj_ops = {
bool i915_gem_object_is_lmem(struct drm_i915_gem_object *obj)
{
- return obj->ops == &i915_gem_lmem_obj_ops;
+ struct intel_memory_region *mr = obj->mm.region;
+
+ return mr && (mr->type == INTEL_MEMORY_LOCAL ||
+ mr->type == INTEL_MEMORY_STOLEN_LOCAL);
}
struct drm_i915_gem_object *
--
2.26.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 10+ messages in thread* [Intel-gfx] [PATCH v2 3/4] drm/i915/stolen: enforce the min_page_size contract
2021-02-09 12:00 [Intel-gfx] [PATCH v2 1/4] drm/i915: Create stolen memory region from local memory Matthew Auld
2021-02-09 12:00 ` [Intel-gfx] [PATCH v2 2/4] drm/i915/stolen: treat stolen local as normal " Matthew Auld
@ 2021-02-09 12:00 ` Matthew Auld
2021-02-09 12:00 ` [Intel-gfx] [PATCH v2 4/4] drm/i915/stolen: pass the allocation flags Matthew Auld
` (4 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Matthew Auld @ 2021-02-09 12:00 UTC (permalink / raw)
To: intel-gfx
From: CQ Tang <cq.tang@intel.com>
Since stolen can now be device local-memory underneath, we should try to
enforce any min_page_size restrictions when allocating pages.
v2: Drop the min_page_size sanity checking around
stolen_insert_node_in_range. Given that this is a low-level interface we
shouldn't just assume that the chunks are pages intended to be inserted
into the GTT.
Signed-off-by: CQ Tang <cq.tang@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index dfc3076abd0c..320270c35949 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -674,7 +674,8 @@ static int _i915_gem_object_stolen_init(struct intel_memory_region *mem,
if (!stolen)
return -ENOMEM;
- ret = i915_gem_stolen_insert_node(i915, stolen, size, 4096);
+ ret = i915_gem_stolen_insert_node(i915, stolen, size,
+ mem->min_page_size);
if (ret)
goto err_free;
@@ -814,8 +815,8 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_i915_private *i915,
/* KISS and expect everything to be page-aligned */
if (GEM_WARN_ON(size == 0) ||
- GEM_WARN_ON(!IS_ALIGNED(size, I915_GTT_PAGE_SIZE)) ||
- GEM_WARN_ON(!IS_ALIGNED(stolen_offset, I915_GTT_MIN_ALIGNMENT)))
+ GEM_WARN_ON(!IS_ALIGNED(size, mem->min_page_size)) ||
+ GEM_WARN_ON(!IS_ALIGNED(stolen_offset, mem->min_page_size)))
return ERR_PTR(-EINVAL);
stolen = kzalloc(sizeof(*stolen), GFP_KERNEL);
--
2.26.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 10+ messages in thread* [Intel-gfx] [PATCH v2 4/4] drm/i915/stolen: pass the allocation flags
2021-02-09 12:00 [Intel-gfx] [PATCH v2 1/4] drm/i915: Create stolen memory region from local memory Matthew Auld
2021-02-09 12:00 ` [Intel-gfx] [PATCH v2 2/4] drm/i915/stolen: treat stolen local as normal " Matthew Auld
2021-02-09 12:00 ` [Intel-gfx] [PATCH v2 3/4] drm/i915/stolen: enforce the min_page_size contract Matthew Auld
@ 2021-02-09 12:00 ` Matthew Auld
2021-02-09 14:59 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v2,1/4] drm/i915: Create stolen memory region from local memory Patchwork
` (3 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Matthew Auld @ 2021-02-09 12:00 UTC (permalink / raw)
To: intel-gfx
From: CQ Tang <cq.tang@intel.com>
Stolen memory is always allocated as physically contiguous pages, mark
the object flags as such.
Signed-off-by: CQ Tang <cq.tang@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index 320270c35949..7e06636f7f24 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -632,7 +632,8 @@ static const struct drm_i915_gem_object_ops i915_gem_object_stolen_ops = {
static int __i915_gem_object_create_stolen(struct intel_memory_region *mem,
struct drm_i915_gem_object *obj,
- struct drm_mm_node *stolen)
+ struct drm_mm_node *stolen,
+ unsigned int flags)
{
static struct lock_class_key lock_class;
unsigned int cache_level;
@@ -650,7 +651,7 @@ static int __i915_gem_object_create_stolen(struct intel_memory_region *mem,
if (err)
return err;
- i915_gem_object_init_memory_region(obj, mem, 0);
+ i915_gem_object_init_memory_region(obj, mem, flags);
return 0;
}
@@ -679,7 +680,7 @@ static int _i915_gem_object_stolen_init(struct intel_memory_region *mem,
if (ret)
goto err_free;
- ret = __i915_gem_object_create_stolen(mem, obj, stolen);
+ ret = __i915_gem_object_create_stolen(mem, obj, stolen, flags);
if (ret)
goto err_remove;
@@ -837,7 +838,8 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_i915_private *i915,
goto err_stolen;
}
- ret = __i915_gem_object_create_stolen(mem, obj, stolen);
+ ret = __i915_gem_object_create_stolen(mem, obj, stolen,
+ I915_BO_ALLOC_CONTIGUOUS);
if (ret)
goto err_object_free;
--
2.26.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 10+ messages in thread* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v2,1/4] drm/i915: Create stolen memory region from local memory
2021-02-09 12:00 [Intel-gfx] [PATCH v2 1/4] drm/i915: Create stolen memory region from local memory Matthew Auld
` (2 preceding siblings ...)
2021-02-09 12:00 ` [Intel-gfx] [PATCH v2 4/4] drm/i915/stolen: pass the allocation flags Matthew Auld
@ 2021-02-09 14:59 ` Patchwork
2021-02-09 15:00 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
` (2 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2021-02-09 14:59 UTC (permalink / raw)
To: Matthew Auld; +Cc: intel-gfx
== Series Details ==
Series: series starting with [v2,1/4] drm/i915: Create stolen memory region from local memory
URL : https://patchwork.freedesktop.org/series/86895/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
e8b34b3c94ee drm/i915: Create stolen memory region from local memory
-:13: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#13:
as stolen-local or stolen-system based on this value won't work. Split
total: 0 errors, 1 warnings, 0 checks, 202 lines checked
30478535a4b4 drm/i915/stolen: treat stolen local as normal local memory
f1fe786eeec6 drm/i915/stolen: enforce the min_page_size contract
0dffdf690010 drm/i915/stolen: pass the allocation flags
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [v2,1/4] drm/i915: Create stolen memory region from local memory
2021-02-09 12:00 [Intel-gfx] [PATCH v2 1/4] drm/i915: Create stolen memory region from local memory Matthew Auld
` (3 preceding siblings ...)
2021-02-09 14:59 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v2,1/4] drm/i915: Create stolen memory region from local memory Patchwork
@ 2021-02-09 15:00 ` Patchwork
2021-02-09 15:28 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-02-09 17:53 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
6 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2021-02-09 15:00 UTC (permalink / raw)
To: Matthew Auld; +Cc: intel-gfx
== Series Details ==
Series: series starting with [v2,1/4] drm/i915: Create stolen memory region from local memory
URL : https://patchwork.freedesktop.org/series/86895/
State : warning
== Summary ==
$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/i915/gt/intel_reset.c:1323:5: warning: context imbalance in 'intel_gt_reset_trylock' - different lock contexts for basic block
+drivers/gpu/drm/i915/gvt/mmio.c:295:23: warning: memcpy with byte count of 279040
+drivers/gpu/drm/i915/i915_perf.c:1442:15: warning: memset with byte count of 16777216
+drivers/gpu/drm/i915/i915_perf.c:1496:15: warning: memset with byte count of 16777216
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write8' - different lock contexts for basic block
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread* [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2,1/4] drm/i915: Create stolen memory region from local memory
2021-02-09 12:00 [Intel-gfx] [PATCH v2 1/4] drm/i915: Create stolen memory region from local memory Matthew Auld
` (4 preceding siblings ...)
2021-02-09 15:00 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
@ 2021-02-09 15:28 ` Patchwork
2021-02-09 17:53 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
6 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2021-02-09 15:28 UTC (permalink / raw)
To: Matthew Auld; +Cc: intel-gfx
[-- Attachment #1.1: Type: text/plain, Size: 4082 bytes --]
== Series Details ==
Series: series starting with [v2,1/4] drm/i915: Create stolen memory region from local memory
URL : https://patchwork.freedesktop.org/series/86895/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_9750 -> Patchwork_19641
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/index.html
Known issues
------------
Here are the changes found in Patchwork_19641 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@amdgpu/amd_basic@semaphore:
- fi-bdw-5557u: NOTRUN -> [SKIP][1] ([fdo#109271]) +22 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/fi-bdw-5557u/igt@amdgpu/amd_basic@semaphore.html
* igt@core_hotunplug@unbind-rebind:
- fi-kbl-7500u: [PASS][2] -> [DMESG-WARN][3] ([i915#2605])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/fi-kbl-7500u/igt@core_hotunplug@unbind-rebind.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/fi-kbl-7500u/igt@core_hotunplug@unbind-rebind.html
- fi-bdw-5557u: NOTRUN -> [WARN][4] ([i915#2283])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/fi-bdw-5557u/igt@core_hotunplug@unbind-rebind.html
* igt@kms_chamelium@dp-crc-fast:
- fi-kbl-7500u: [PASS][5] -> [FAIL][6] ([i915#1372])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/fi-kbl-7500u/igt@kms_chamelium@dp-crc-fast.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/fi-kbl-7500u/igt@kms_chamelium@dp-crc-fast.html
* igt@prime_self_import@basic-with_two_bos:
- fi-tgl-y: [PASS][7] -> [DMESG-WARN][8] ([i915#402])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s3:
- fi-tgl-y: [DMESG-WARN][9] ([i915#2411] / [i915#402]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/fi-tgl-y/igt@gem_exec_suspend@basic-s3.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/fi-tgl-y/igt@gem_exec_suspend@basic-s3.html
* igt@prime_vgem@basic-fence-flip:
- fi-tgl-y: [DMESG-WARN][11] ([i915#402]) -> [PASS][12] +1 similar issue
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/fi-tgl-y/igt@prime_vgem@basic-fence-flip.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/fi-tgl-y/igt@prime_vgem@basic-fence-flip.html
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[i915#1372]: https://gitlab.freedesktop.org/drm/intel/issues/1372
[i915#2283]: https://gitlab.freedesktop.org/drm/intel/issues/2283
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#2605]: https://gitlab.freedesktop.org/drm/intel/issues/2605
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
Participating hosts (44 -> 39)
------------------------------
Missing (5): fi-jsl-1 fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-bdw-samus
Build changes
-------------
* Linux: CI_DRM_9750 -> Patchwork_19641
CI-20190529: 20190529
CI_DRM_9750: 8ab525b5fa9cbe46bde6340351e84a501c64fd47 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5999: 2982c998a9cb79095611fba018d5df3eec5eab88 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_19641: 0dffdf690010564b2273c27eaea2e7786d7f6bcb @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
0dffdf690010 drm/i915/stolen: pass the allocation flags
f1fe786eeec6 drm/i915/stolen: enforce the min_page_size contract
30478535a4b4 drm/i915/stolen: treat stolen local as normal local memory
e8b34b3c94ee drm/i915: Create stolen memory region from local memory
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/index.html
[-- Attachment #1.2: Type: text/html, Size: 4998 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread* [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [v2,1/4] drm/i915: Create stolen memory region from local memory
2021-02-09 12:00 [Intel-gfx] [PATCH v2 1/4] drm/i915: Create stolen memory region from local memory Matthew Auld
` (5 preceding siblings ...)
2021-02-09 15:28 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2021-02-09 17:53 ` Patchwork
6 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2021-02-09 17:53 UTC (permalink / raw)
To: Matthew Auld; +Cc: intel-gfx
[-- Attachment #1.1: Type: text/plain, Size: 30308 bytes --]
== Series Details ==
Series: series starting with [v2,1/4] drm/i915: Create stolen memory region from local memory
URL : https://patchwork.freedesktop.org/series/86895/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_9750_full -> Patchwork_19641_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Known issues
------------
Here are the changes found in Patchwork_19641_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_ctx_persistence@hang:
- shard-hsw: NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#1099])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-hsw6/igt@gem_ctx_persistence@hang.html
* igt@gem_exec_fair@basic-none-share@rcs0:
- shard-iclb: [PASS][2] -> [FAIL][3] ([i915#2842])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-iclb7/igt@gem_exec_fair@basic-none-share@rcs0.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb1/igt@gem_exec_fair@basic-none-share@rcs0.html
- shard-tglb: [PASS][4] -> [FAIL][5] ([i915#2842])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-tglb1/igt@gem_exec_fair@basic-none-share@rcs0.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-tglb2/igt@gem_exec_fair@basic-none-share@rcs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [PASS][6] -> [FAIL][7] ([i915#2842]) +1 similar issue
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-glk2/igt@gem_exec_fair@basic-pace-share@rcs0.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-glk2/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_fair@basic-pace@rcs0:
- shard-kbl: [PASS][8] -> [FAIL][9] ([i915#2842]) +1 similar issue
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl2/igt@gem_exec_fair@basic-pace@rcs0.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl2/igt@gem_exec_fair@basic-pace@rcs0.html
* igt@gem_exec_fair@basic-pace@vcs1:
- shard-iclb: NOTRUN -> [FAIL][10] ([i915#2842])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb4/igt@gem_exec_fair@basic-pace@vcs1.html
* igt@gem_exec_reloc@basic-many-active@vcs1:
- shard-iclb: NOTRUN -> [FAIL][11] ([i915#2389])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb2/igt@gem_exec_reloc@basic-many-active@vcs1.html
* igt@gem_exec_reloc@basic-parallel:
- shard-kbl: NOTRUN -> [TIMEOUT][12] ([i915#1729])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl1/igt@gem_exec_reloc@basic-parallel.html
* igt@gem_exec_schedule@u-fairslice@rcs0:
- shard-skl: [PASS][13] -> [DMESG-WARN][14] ([i915#2803])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-skl3/igt@gem_exec_schedule@u-fairslice@rcs0.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl2/igt@gem_exec_schedule@u-fairslice@rcs0.html
* igt@gem_exec_schedule@u-fairslice@vcs1:
- shard-kbl: [PASS][15] -> [DMESG-WARN][16] ([i915#1610] / [i915#2803])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl4/igt@gem_exec_schedule@u-fairslice@vcs1.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl2/igt@gem_exec_schedule@u-fairslice@vcs1.html
* igt@gem_exec_whisper@basic-queues-priority:
- shard-iclb: [PASS][17] -> [INCOMPLETE][18] ([i915#1895])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-iclb3/igt@gem_exec_whisper@basic-queues-priority.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb2/igt@gem_exec_whisper@basic-queues-priority.html
* igt@gem_userptr_blits@input-checking:
- shard-apl: NOTRUN -> [DMESG-WARN][19] ([i915#3002])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-apl4/igt@gem_userptr_blits@input-checking.html
* igt@gem_userptr_blits@vma-merge:
- shard-iclb: NOTRUN -> [INCOMPLETE][20] ([i915#2502] / [i915#2667])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb6/igt@gem_userptr_blits@vma-merge.html
* igt@gem_workarounds@suspend-resume:
- shard-apl: [PASS][21] -> [INCOMPLETE][22] ([i915#1630])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-apl8/igt@gem_workarounds@suspend-resume.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-apl7/igt@gem_workarounds@suspend-resume.html
* igt@gen9_exec_parse@allowed-single:
- shard-kbl: [PASS][23] -> [DMESG-WARN][24] ([i915#1436] / [i915#716])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl7/igt@gen9_exec_parse@allowed-single.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl7/igt@gen9_exec_parse@allowed-single.html
* igt@i915_hangman@engine-error@vecs0:
- shard-kbl: NOTRUN -> [SKIP][25] ([fdo#109271]) +137 similar issues
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl2/igt@i915_hangman@engine-error@vecs0.html
* igt@i915_pm_dc@dc6-psr:
- shard-iclb: [PASS][26] -> [FAIL][27] ([i915#454])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-iclb3/igt@i915_pm_dc@dc6-psr.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb2/igt@i915_pm_dc@dc6-psr.html
* igt@kms_async_flips@test-time-stamp:
- shard-tglb: [PASS][28] -> [FAIL][29] ([i915#2597])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-tglb3/igt@kms_async_flips@test-time-stamp.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-tglb6/igt@kms_async_flips@test-time-stamp.html
* igt@kms_big_fb@yf-tiled-64bpp-rotate-270:
- shard-tglb: NOTRUN -> [SKIP][30] ([fdo#111615])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-tglb6/igt@kms_big_fb@yf-tiled-64bpp-rotate-270.html
* igt@kms_big_joiner@basic:
- shard-skl: NOTRUN -> [SKIP][31] ([fdo#109271] / [i915#2705])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl2/igt@kms_big_joiner@basic.html
* igt@kms_ccs@pipe-d-crc-sprite-planes-basic:
- shard-iclb: NOTRUN -> [SKIP][32] ([fdo#109278])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb6/igt@kms_ccs@pipe-d-crc-sprite-planes-basic.html
* igt@kms_chamelium@vga-hpd-for-each-pipe:
- shard-kbl: NOTRUN -> [SKIP][33] ([fdo#109271] / [fdo#111827]) +13 similar issues
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl3/igt@kms_chamelium@vga-hpd-for-each-pipe.html
* igt@kms_color_chamelium@pipe-b-ctm-green-to-red:
- shard-hsw: NOTRUN -> [SKIP][34] ([fdo#109271] / [fdo#111827]) +5 similar issues
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-hsw6/igt@kms_color_chamelium@pipe-b-ctm-green-to-red.html
* igt@kms_color_chamelium@pipe-b-ctm-max:
- shard-skl: NOTRUN -> [SKIP][35] ([fdo#109271] / [fdo#111827]) +11 similar issues
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl6/igt@kms_color_chamelium@pipe-b-ctm-max.html
* igt@kms_color_chamelium@pipe-b-ctm-red-to-blue:
- shard-iclb: NOTRUN -> [SKIP][36] ([fdo#109284] / [fdo#111827]) +1 similar issue
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb6/igt@kms_color_chamelium@pipe-b-ctm-red-to-blue.html
* igt@kms_content_protection@atomic-dpms:
- shard-apl: NOTRUN -> [TIMEOUT][37] ([i915#1319])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-apl4/igt@kms_content_protection@atomic-dpms.html
* igt@kms_content_protection@uevent:
- shard-kbl: NOTRUN -> [FAIL][38] ([i915#2105])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl3/igt@kms_content_protection@uevent.html
* igt@kms_cursor_crc@pipe-b-cursor-128x128-sliding:
- shard-skl: NOTRUN -> [FAIL][39] ([i915#54]) +1 similar issue
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl9/igt@kms_cursor_crc@pipe-b-cursor-128x128-sliding.html
* igt@kms_cursor_crc@pipe-c-cursor-64x21-random:
- shard-skl: [PASS][40] -> [FAIL][41] ([i915#54]) +3 similar issues
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-skl3/igt@kms_cursor_crc@pipe-c-cursor-64x21-random.html
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl2/igt@kms_cursor_crc@pipe-c-cursor-64x21-random.html
* igt@kms_cursor_crc@pipe-d-cursor-512x170-random:
- shard-hsw: NOTRUN -> [SKIP][42] ([fdo#109271] / [i915#533]) +7 similar issues
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-hsw8/igt@kms_cursor_crc@pipe-d-cursor-512x170-random.html
* igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size:
- shard-hsw: [PASS][43] -> [FAIL][44] ([i915#2370])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-hsw2/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-hsw6/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-skl: [PASS][45] -> [FAIL][46] ([i915#79])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-skl3/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl4/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
* igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
- shard-kbl: NOTRUN -> [DMESG-WARN][47] ([i915#180]) +3 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl1/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
* igt@kms_flip@flip-vs-suspend-interruptible@c-edp1:
- shard-skl: [PASS][48] -> [INCOMPLETE][49] ([i915#2295])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-skl2/igt@kms_flip@flip-vs-suspend-interruptible@c-edp1.html
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl9/igt@kms_flip@flip-vs-suspend-interruptible@c-edp1.html
* igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a1:
- shard-hsw: NOTRUN -> [INCOMPLETE][50] ([i915#2055] / [i915#2295])
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-hsw6/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a1.html
* igt@kms_flip@flip-vs-suspend@b-dp1:
- shard-apl: [PASS][51] -> [DMESG-WARN][52] ([i915#180]) +1 similar issue
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-apl1/igt@kms_flip@flip-vs-suspend@b-dp1.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-apl1/igt@kms_flip@flip-vs-suspend@b-dp1.html
* igt@kms_flip@flip-vs-suspend@c-hdmi-a1:
- shard-hsw: NOTRUN -> [INCOMPLETE][53] ([i915#2055])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-hsw8/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile:
- shard-skl: NOTRUN -> [FAIL][54] ([i915#2628])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc:
- shard-kbl: [PASS][55] -> [FAIL][56] ([i915#49])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc.html
- shard-apl: [PASS][57] -> [FAIL][58] ([i915#49])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-apl2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-apl3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-pwrite:
- shard-tglb: NOTRUN -> [SKIP][59] ([fdo#111825]) +2 similar issues
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-tglb6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt:
- shard-iclb: NOTRUN -> [SKIP][60] ([fdo#109280]) +1 similar issue
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack:
- shard-skl: NOTRUN -> [SKIP][61] ([fdo#109271]) +128 similar issues
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl7/igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack.html
* igt@kms_hdr@bpc-switch-suspend:
- shard-skl: [PASS][62] -> [FAIL][63] ([i915#1188])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-skl7/igt@kms_hdr@bpc-switch-suspend.html
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl7/igt@kms_hdr@bpc-switch-suspend.html
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- shard-kbl: [PASS][64] -> [DMESG-WARN][65] ([i915#180]) +1 similar issue
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl4/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl7/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d:
- shard-skl: NOTRUN -> [SKIP][66] ([fdo#109271] / [i915#533]) +1 similar issue
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl6/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d.html
* igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
- shard-apl: [PASS][67] -> [DMESG-WARN][68] ([i915#180] / [i915#533])
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-apl1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-apl6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
* igt@kms_plane_alpha_blend@pipe-a-alpha-7efc:
- shard-skl: NOTRUN -> [FAIL][69] ([fdo#108145] / [i915#265]) +3 similar issues
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl2/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html
* igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
- shard-kbl: NOTRUN -> [FAIL][70] ([fdo#108145] / [i915#265]) +2 similar issues
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl1/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html
* igt@kms_plane_lowres@pipe-b-tiling-yf:
- shard-hsw: NOTRUN -> [SKIP][71] ([fdo#109271]) +73 similar issues
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-hsw6/igt@kms_plane_lowres@pipe-b-tiling-yf.html
* igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping:
- shard-kbl: NOTRUN -> [SKIP][72] ([fdo#109271] / [i915#2733])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl1/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping.html
* igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3:
- shard-kbl: NOTRUN -> [SKIP][73] ([fdo#109271] / [i915#658]) +4 similar issues
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl1/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3.html
* igt@kms_psr2_su@frontbuffer:
- shard-skl: NOTRUN -> [SKIP][74] ([fdo#109271] / [i915#658]) +3 similar issues
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl8/igt@kms_psr2_su@frontbuffer.html
* igt@kms_psr2_su@page_flip:
- shard-iclb: [PASS][75] -> [SKIP][76] ([fdo#109642] / [fdo#111068] / [i915#658])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-iclb2/igt@kms_psr2_su@page_flip.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb7/igt@kms_psr2_su@page_flip.html
* igt@kms_psr@psr2_no_drrs:
- shard-iclb: [PASS][77] -> [SKIP][78] ([fdo#109441]) +1 similar issue
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-iclb2/igt@kms_psr@psr2_no_drrs.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb8/igt@kms_psr@psr2_no_drrs.html
* igt@kms_psr@psr2_sprite_plane_onoff:
- shard-hsw: NOTRUN -> [SKIP][79] ([fdo#109271] / [i915#1072]) +2 similar issues
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-hsw8/igt@kms_psr@psr2_sprite_plane_onoff.html
* igt@kms_vblank@pipe-b-ts-continuation-modeset-rpm:
- shard-skl: [PASS][80] -> [DMESG-WARN][81] ([i915#1982])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-skl9/igt@kms_vblank@pipe-b-ts-continuation-modeset-rpm.html
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl5/igt@kms_vblank@pipe-b-ts-continuation-modeset-rpm.html
* igt@nouveau_crc@pipe-b-ctx-flip-skip-current-frame:
- shard-apl: NOTRUN -> [SKIP][82] ([fdo#109271]) +13 similar issues
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-apl7/igt@nouveau_crc@pipe-b-ctx-flip-skip-current-frame.html
* igt@nouveau_crc@pipe-d-source-outp-complete:
- shard-iclb: NOTRUN -> [SKIP][83] ([fdo#109278] / [i915#2530])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb6/igt@nouveau_crc@pipe-d-source-outp-complete.html
* igt@sysfs_clients@sema-10@vcs0:
- shard-kbl: NOTRUN -> [SKIP][84] ([fdo#109271] / [i915#3026]) +3 similar issues
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl1/igt@sysfs_clients@sema-10@vcs0.html
#### Possible fixes ####
* igt@feature_discovery@psr2:
- shard-iclb: [SKIP][85] ([i915#658]) -> [PASS][86]
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-iclb3/igt@feature_discovery@psr2.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb2/igt@feature_discovery@psr2.html
* igt@gem_eio@in-flight-suspend:
- shard-kbl: [DMESG-WARN][87] ([i915#1037] / [i915#180]) -> [PASS][88]
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl7/igt@gem_eio@in-flight-suspend.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl3/igt@gem_eio@in-flight-suspend.html
* igt@gem_eio@unwedge-stress:
- shard-tglb: [TIMEOUT][89] ([i915#1037] / [i915#3063]) -> [PASS][90]
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-tglb6/igt@gem_eio@unwedge-stress.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-tglb3/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_balancer@hang:
- shard-iclb: [INCOMPLETE][91] ([i915#1895] / [i915#2295] / [i915#3031]) -> [PASS][92]
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-iclb1/igt@gem_exec_balancer@hang.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb6/igt@gem_exec_balancer@hang.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-tglb: [FAIL][93] ([i915#2842]) -> [PASS][94] +1 similar issue
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-tglb7/igt@gem_exec_fair@basic-pace-share@rcs0.html
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-tglb8/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_schedule@u-fairslice@vecs0:
- shard-skl: [DMESG-WARN][95] ([i915#1610] / [i915#2803]) -> [PASS][96]
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-skl3/igt@gem_exec_schedule@u-fairslice@vecs0.html
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl2/igt@gem_exec_schedule@u-fairslice@vecs0.html
* igt@gem_exec_whisper@basic-fds:
- shard-glk: [DMESG-WARN][97] ([i915#118] / [i915#95]) -> [PASS][98]
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-glk9/igt@gem_exec_whisper@basic-fds.html
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-glk5/igt@gem_exec_whisper@basic-fds.html
* igt@i915_pm_dc@dc5-psr:
- shard-skl: [INCOMPLETE][99] ([i915#198]) -> [PASS][100]
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-skl8/igt@i915_pm_dc@dc5-psr.html
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl9/igt@i915_pm_dc@dc5-psr.html
* igt@i915_suspend@fence-restore-tiled2untiled:
- shard-apl: [DMESG-WARN][101] ([i915#180]) -> [PASS][102] +2 similar issues
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-apl6/igt@i915_suspend@fence-restore-tiled2untiled.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-apl8/igt@i915_suspend@fence-restore-tiled2untiled.html
* igt@i915_suspend@forcewake:
- shard-kbl: [DMESG-WARN][103] ([i915#180]) -> [PASS][104] +2 similar issues
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl7/igt@i915_suspend@forcewake.html
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl3/igt@i915_suspend@forcewake.html
* igt@kms_async_flips@alternate-sync-async-flip:
- shard-snb: [FAIL][105] ([i915#2521]) -> [PASS][106]
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-snb6/igt@kms_async_flips@alternate-sync-async-flip.html
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-snb2/igt@kms_async_flips@alternate-sync-async-flip.html
* igt@kms_cursor_crc@pipe-a-cursor-dpms:
- shard-snb: [SKIP][107] ([fdo#109271]) -> [PASS][108]
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-snb2/igt@kms_cursor_crc@pipe-a-cursor-dpms.html
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-snb4/igt@kms_cursor_crc@pipe-a-cursor-dpms.html
* igt@kms_cursor_crc@pipe-b-cursor-128x128-random:
- shard-skl: [FAIL][109] ([i915#54]) -> [PASS][110] +7 similar issues
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-skl6/igt@kms_cursor_crc@pipe-b-cursor-128x128-random.html
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl1/igt@kms_cursor_crc@pipe-b-cursor-128x128-random.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-skl: [FAIL][111] ([i915#2346]) -> [PASS][112]
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-skl9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-kbl: [INCOMPLETE][113] ([i915#155] / [i915#180] / [i915#636]) -> [PASS][114]
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl1/igt@kms_fbcon_fbt@fbc-suspend.html
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl1/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_flip@plain-flip-fb-recreate-interruptible@c-edp1:
- shard-skl: [FAIL][115] ([i915#2122]) -> [PASS][116]
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-skl8/igt@kms_flip@plain-flip-fb-recreate-interruptible@c-edp1.html
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl3/igt@kms_flip@plain-flip-fb-recreate-interruptible@c-edp1.html
* igt@kms_plane@plane-position-hole-dpms-pipe-a-planes:
- shard-iclb: [FAIL][117] ([i915#2472]) -> [PASS][118]
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-iclb6/igt@kms_plane@plane-position-hole-dpms-pipe-a-planes.html
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb7/igt@kms_plane@plane-position-hole-dpms-pipe-a-planes.html
* igt@kms_psr@psr2_cursor_render:
- shard-iclb: [SKIP][119] ([fdo#109441]) -> [PASS][120] +1 similar issue
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-iclb3/igt@kms_psr@psr2_cursor_render.html
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb2/igt@kms_psr@psr2_cursor_render.html
* {igt@sysfs_clients@recycle-many}:
- shard-iclb: [FAIL][121] ([i915#3028]) -> [PASS][122]
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-iclb3/igt@sysfs_clients@recycle-many.html
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb3/igt@sysfs_clients@recycle-many.html
- shard-glk: [FAIL][123] ([i915#3028]) -> [PASS][124]
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-glk9/igt@sysfs_clients@recycle-many.html
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-glk5/igt@sysfs_clients@recycle-many.html
* igt@sysfs_clients@sema-25@rcs0:
- shard-skl: [SKIP][125] ([fdo#109271]) -> [PASS][126]
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-skl3/igt@sysfs_clients@sema-25@rcs0.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-skl2/igt@sysfs_clients@sema-25@rcs0.html
* igt@sysfs_heartbeat_interval@mixed@rcs0:
- shard-kbl: [INCOMPLETE][127] ([i915#1731]) -> [PASS][128]
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl6/igt@sysfs_heartbeat_interval@mixed@rcs0.html
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl3/igt@sysfs_heartbeat_interval@mixed@rcs0.html
#### Warnings ####
* igt@i915_pm_dc@dc3co-vpb-simulation:
- shard-iclb: [SKIP][129] ([i915#658]) -> [SKIP][130] ([i915#588])
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-iclb7/igt@i915_pm_dc@dc3co-vpb-simulation.html
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb2/igt@i915_pm_dc@dc3co-vpb-simulation.html
* igt@i915_pm_rc6_residency@rc6-fence:
- shard-iclb: [WARN][131] ([i915#2684]) -> [WARN][132] ([i915#1804] / [i915#2684]) +1 similar issue
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-iclb2/igt@i915_pm_rc6_residency@rc6-fence.html
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb7/igt@i915_pm_rc6_residency@rc6-fence.html
* igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [DMESG-WARN][133] ([i915#1226]) -> [SKIP][134] ([fdo#109349])
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb8/igt@kms_dp_dsc@basic-dsc-enable-edp.html
* igt@kms_psr2_sf@cursor-plane-update-sf:
- shard-iclb: [SKIP][135] ([i915#2920]) -> [SKIP][136] ([i915#658]) +1 similar issue
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-iclb2/igt@kms_psr2_sf@cursor-plane-update-sf.html
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-iclb7/igt@kms_psr2_sf@cursor-plane-update-sf.html
* igt@runner@aborted:
- shard-kbl: ([FAIL][137], [FAIL][138], [FAIL][139], [FAIL][140], [FAIL][141], [FAIL][142], [FAIL][143], [FAIL][144], [FAIL][145]) ([i915#1436] / [i915#1814] / [i915#2295] / [i915#3002] / [i915#92]) -> ([FAIL][146], [FAIL][147], [FAIL][148], [FAIL][149], [FAIL][150], [FAIL][151], [FAIL][152], [FAIL][153], [FAIL][154]) ([fdo#109271] / [i915#1436] / [i915#1814] / [i915#2295] / [i915#2426] / [i915#2505] / [i915#3002] / [i915#716])
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl7/igt@runner@aborted.html
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl7/igt@runner@aborted.html
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl7/igt@runner@aborted.html
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl7/igt@runner@aborted.html
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl3/igt@runner@aborted.html
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl4/igt@runner@aborted.html
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl7/igt@runner@aborted.html
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl7/igt@runner@aborted.html
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9750/shard-kbl1/igt@runner@aborted.html
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl4/igt@runner@aborted.html
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl7/igt@runner@aborted.html
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl2/igt@runner@aborted.html
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl1/igt@runner@aborted.html
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl3/igt@runner@aborted.html
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl7/igt@runner@aborted.html
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl6/igt@runner@aborted.html
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl7/igt@runner@aborted.html
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/shard-kbl1/igt@runner@aborted.html
- shard-apl: ([FAIL][155], [FAIL][156], [FAIL][157], [FAIL][158], [FAIL
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19641/index.html
[-- Attachment #1.2: Type: text/html, Size: 33795 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Intel-gfx] [PATCH v2 1/4] drm/i915: Create stolen memory region from local memory
@ 2021-04-21 10:46 Matthew Auld
2021-04-21 14:35 ` Tvrtko Ursulin
0 siblings, 1 reply; 10+ messages in thread
From: Matthew Auld @ 2021-04-21 10:46 UTC (permalink / raw)
To: intel-gfx; +Cc: Xinyun Liu, dri-devel
From: CQ Tang <cq.tang@intel.com>
Add "REGION_STOLEN" device info to dg1, create stolen memory
region from upper portion of local device memory, starting
from DSMBASE.
v2:
- s/drm_info/drm_dbg; userspace likely doesn't care about stolen.
- mem->type is only setup after the region probe, so setting the name
as stolen-local or stolen-system based on this value won't work. Split
system vs local stolen setup to fix this.
- kill all the region->devmem/is_devmem stuff. We already differentiate
the different types of stolen so such things shouldn't be needed
anymore.
v3:
- split stolen lmem vs smem ops(Tvrtko)
- add shortcut for stolen region in i915(Tvrtko)
- sanity check dsm base vs bar size(Xinyun)
v4(Tvrtko):
- more cleanup
- add some TODOs
Signed-off-by: CQ Tang <cq.tang@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Xinyun Liu <xinyun.liu@intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 132 ++++++++++++++++++---
drivers/gpu/drm/i915/gem/i915_gem_stolen.h | 3 +-
drivers/gpu/drm/i915/i915_drv.h | 7 ++
drivers/gpu/drm/i915/i915_pci.c | 2 +-
drivers/gpu/drm/i915/i915_reg.h | 1 +
drivers/gpu/drm/i915/intel_memory_region.c | 13 +-
drivers/gpu/drm/i915/intel_memory_region.h | 5 +-
7 files changed, 140 insertions(+), 23 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index b0597de206de..13a7932cfe1a 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -10,6 +10,7 @@
#include <drm/drm_mm.h>
#include <drm/i915_drm.h>
+#include "gem/i915_gem_lmem.h"
#include "gem/i915_gem_region.h"
#include "i915_drv.h"
#include "i915_gem_stolen.h"
@@ -121,6 +122,14 @@ static int i915_adjust_stolen(struct drm_i915_private *i915,
}
}
+ /*
+ * With stolen lmem, we don't need to check if the address range
+ * overlaps with the non-stolen system memory range, since lmem is local
+ * to the gpu.
+ */
+ if (HAS_LMEM(i915))
+ return 0;
+
/*
* Verify that nothing else uses this physical address. Stolen
* memory should be reserved by the BIOS and hidden from the
@@ -374,8 +383,9 @@ static void icl_get_stolen_reserved(struct drm_i915_private *i915,
}
}
-static int i915_gem_init_stolen(struct drm_i915_private *i915)
+static int i915_gem_init_stolen(struct intel_memory_region *mem)
{
+ struct drm_i915_private *i915 = mem->i915;
struct intel_uncore *uncore = &i915->uncore;
resource_size_t reserved_base, stolen_top;
resource_size_t reserved_total, reserved_size;
@@ -396,10 +406,10 @@ static int i915_gem_init_stolen(struct drm_i915_private *i915)
return 0;
}
- if (resource_size(&intel_graphics_stolen_res) == 0)
+ if (resource_size(&mem->region) == 0)
return 0;
- i915->dsm = intel_graphics_stolen_res;
+ i915->dsm = mem->region;
if (i915_adjust_stolen(i915, &i915->dsm))
return 0;
@@ -688,39 +698,123 @@ struct drm_i915_gem_object *
i915_gem_object_create_stolen(struct drm_i915_private *i915,
resource_size_t size)
{
- return i915_gem_object_create_region(i915->mm.regions[INTEL_REGION_STOLEN_SMEM],
+ return i915_gem_object_create_region(i915->mm.stolen_region,
size, I915_BO_ALLOC_CONTIGUOUS);
}
-static int init_stolen(struct intel_memory_region *mem)
+static int init_stolen_smem(struct intel_memory_region *mem)
{
- intel_memory_region_set_name(mem, "stolen");
-
/*
* Initialise stolen early so that we may reserve preallocated
* objects for the BIOS to KMS transition.
*/
- return i915_gem_init_stolen(mem->i915);
+ return i915_gem_init_stolen(mem);
}
-static void release_stolen(struct intel_memory_region *mem)
+static void release_stolen_smem(struct intel_memory_region *mem)
{
i915_gem_cleanup_stolen(mem->i915);
}
-static const struct intel_memory_region_ops i915_region_stolen_ops = {
- .init = init_stolen,
- .release = release_stolen,
+static const struct intel_memory_region_ops i915_region_stolen_smem_ops = {
+ .init = init_stolen_smem,
+ .release = release_stolen_smem,
.init_object = _i915_gem_object_stolen_init,
};
-struct intel_memory_region *i915_gem_stolen_setup(struct drm_i915_private *i915)
+static int init_stolen_lmem(struct intel_memory_region *mem)
+{
+ int err;
+
+ if (GEM_WARN_ON(resource_size(&mem->region) == 0))
+ return -ENODEV;
+
+ if (!io_mapping_init_wc(&mem->iomap,
+ mem->io_start,
+ resource_size(&mem->region)))
+ return -EIO;
+
+ /*
+ * TODO: For stolen lmem we mostly just care about populating the dsm
+ * related bits and setting up the drm_mm allocator for the range.
+ * Perhaps split up i915_gem_init_stolen() for this.
+ */
+ err = i915_gem_init_stolen(mem);
+ if (err)
+ goto err_fini;
+
+ return 0;
+
+err_fini:
+ io_mapping_fini(&mem->iomap);
+ return err;
+}
+
+static void release_stolen_lmem(struct intel_memory_region *mem)
{
- return intel_memory_region_create(i915,
- intel_graphics_stolen_res.start,
- resource_size(&intel_graphics_stolen_res),
- PAGE_SIZE, 0,
- &i915_region_stolen_ops);
+ io_mapping_fini(&mem->iomap);
+ i915_gem_cleanup_stolen(mem->i915);
+}
+
+static const struct intel_memory_region_ops i915_region_stolen_lmem_ops = {
+ .init = init_stolen_lmem,
+ .release = release_stolen_lmem,
+ .init_object = _i915_gem_object_stolen_init,
+};
+
+struct intel_memory_region *
+i915_gem_stolen_lmem_setup(struct drm_i915_private *i915)
+{
+ struct intel_uncore *uncore = &i915->uncore;
+ struct pci_dev *pdev = i915->drm.pdev;
+ struct intel_memory_region *mem;
+ resource_size_t io_start;
+ resource_size_t lmem_size;
+ u64 lmem_base;
+
+ lmem_base = intel_uncore_read64(uncore, GEN12_DSMBASE);
+ if (GEM_WARN_ON(lmem_base >= pci_resource_len(pdev, 2)))
+ return ERR_PTR(-ENODEV);
+
+ lmem_size = pci_resource_len(pdev, 2) - lmem_base;
+ io_start = pci_resource_start(pdev, 2) + lmem_base;
+
+ mem = intel_memory_region_create(i915, lmem_base, lmem_size,
+ I915_GTT_PAGE_SIZE_4K, io_start,
+ &i915_region_stolen_lmem_ops);
+ if (IS_ERR(mem))
+ return mem;
+
+ /*
+ * TODO: consider creating common helper to just print all the
+ * interesting stuff from intel_memory_region, which we can use for all
+ * our probed regions.
+ */
+
+ drm_dbg(&i915->drm, "Stolen Local memory IO start: %pa\n",
+ &mem->io_start);
+
+ intel_memory_region_set_name(mem, "stolen-local");
+
+ return mem;
+}
+
+struct intel_memory_region*
+i915_gem_stolen_smem_setup(struct drm_i915_private *i915)
+{
+ struct intel_memory_region *mem;
+
+ mem = intel_memory_region_create(i915,
+ intel_graphics_stolen_res.start,
+ resource_size(&intel_graphics_stolen_res),
+ PAGE_SIZE, 0,
+ &i915_region_stolen_smem_ops);
+ if (IS_ERR(mem))
+ return mem;
+
+ intel_memory_region_set_name(mem, "stolen-system");
+
+ return mem;
}
struct drm_i915_gem_object *
@@ -728,7 +822,7 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_i915_private *i915,
resource_size_t stolen_offset,
resource_size_t size)
{
- struct intel_memory_region *mem = i915->mm.regions[INTEL_REGION_STOLEN_SMEM];
+ struct intel_memory_region *mem = i915->mm.stolen_region;
struct drm_i915_gem_object *obj;
struct drm_mm_node *stolen;
int ret;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
index b03489706796..2bec6c367b9c 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
@@ -21,7 +21,8 @@ int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *dev_priv,
u64 end);
void i915_gem_stolen_remove_node(struct drm_i915_private *dev_priv,
struct drm_mm_node *node);
-struct intel_memory_region *i915_gem_stolen_setup(struct drm_i915_private *i915);
+struct intel_memory_region *i915_gem_stolen_smem_setup(struct drm_i915_private *i915);
+struct intel_memory_region *i915_gem_stolen_lmem_setup(struct drm_i915_private *i915);
struct drm_i915_gem_object *
i915_gem_object_create_stolen(struct drm_i915_private *dev_priv,
resource_size_t size);
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index e20294e9227a..0b44333eb703 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -514,6 +514,13 @@ struct intel_l3_parity {
};
struct i915_gem_mm {
+ /*
+ * Shortcut for the stolen region. This points to either
+ * INTEL_REGION_STOLEN_SMEM for integrated platforms, or
+ * INTEL_REGION_STOLEN_LMEM for discrete, or NULL if the device doesn't
+ * support stolen.
+ */
+ struct intel_memory_region *stolen_region;
/** Memory allocator for GTT stolen memory */
struct drm_mm stolen;
/** Protects the usage of the GTT stolen memory allocator. This is
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index 7786217638ed..c678e0663d80 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -908,7 +908,7 @@ static const struct intel_device_info rkl_info = {
};
#define DGFX_FEATURES \
- .memory_regions = REGION_SMEM | REGION_LMEM, \
+ .memory_regions = REGION_SMEM | REGION_LMEM | REGION_STOLEN_LMEM, \
.has_master_unit_irq = 1, \
.has_llc = 0, \
.has_snoop = 1, \
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index f80d656331f4..ea20058bc13f 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -12191,6 +12191,7 @@ enum skl_power_gate {
#define GEN12_GLOBAL_MOCS(i) _MMIO(0x4000 + (i) * 4) /* Global MOCS regs */
#define GEN12_GSMBASE _MMIO(0x108100)
+#define GEN12_DSMBASE _MMIO(0x1080C0)
/* gamt regs */
#define GEN8_L3_LRA_1_GPGPU _MMIO(0x4dd4)
diff --git a/drivers/gpu/drm/i915/intel_memory_region.c b/drivers/gpu/drm/i915/intel_memory_region.c
index bf837b6bb185..481a487faca6 100644
--- a/drivers/gpu/drm/i915/intel_memory_region.c
+++ b/drivers/gpu/drm/i915/intel_memory_region.c
@@ -22,6 +22,10 @@ static const struct {
.class = INTEL_MEMORY_STOLEN_SYSTEM,
.instance = 0,
},
+ [INTEL_REGION_STOLEN_LMEM] = {
+ .class = INTEL_MEMORY_STOLEN_LOCAL,
+ .instance = 0,
+ },
};
struct intel_memory_region *
@@ -278,8 +282,15 @@ int intel_memory_regions_hw_probe(struct drm_i915_private *i915)
case INTEL_MEMORY_SYSTEM:
mem = i915_gem_shmem_setup(i915);
break;
+ case INTEL_MEMORY_STOLEN_LOCAL:
+ mem = i915_gem_stolen_lmem_setup(i915);
+ if (!IS_ERR(mem))
+ i915->mm.stolen_region = mem;
+ break;
case INTEL_MEMORY_STOLEN_SYSTEM:
- mem = i915_gem_stolen_setup(i915);
+ mem = i915_gem_stolen_smem_setup(i915);
+ if (!IS_ERR(mem))
+ i915->mm.stolen_region = mem;
break;
default:
continue;
diff --git a/drivers/gpu/drm/i915/intel_memory_region.h b/drivers/gpu/drm/i915/intel_memory_region.h
index edd49067c8ca..4c8ec15af55f 100644
--- a/drivers/gpu/drm/i915/intel_memory_region.h
+++ b/drivers/gpu/drm/i915/intel_memory_region.h
@@ -26,18 +26,21 @@ enum intel_memory_type {
INTEL_MEMORY_SYSTEM = 0,
INTEL_MEMORY_LOCAL,
INTEL_MEMORY_STOLEN_SYSTEM,
+ INTEL_MEMORY_STOLEN_LOCAL,
};
enum intel_region_id {
INTEL_REGION_SMEM = 0,
INTEL_REGION_LMEM,
INTEL_REGION_STOLEN_SMEM,
+ INTEL_REGION_STOLEN_LMEM,
INTEL_REGION_UNKNOWN, /* Should be last */
};
#define REGION_SMEM BIT(INTEL_REGION_SMEM)
#define REGION_LMEM BIT(INTEL_REGION_LMEM)
#define REGION_STOLEN_SMEM BIT(INTEL_REGION_STOLEN_SMEM)
+#define REGION_STOLEN_LMEM BIT(INTEL_REGION_STOLEN_LMEM)
#define I915_ALLOC_MIN_PAGE_SIZE BIT(0)
#define I915_ALLOC_CONTIGUOUS BIT(1)
@@ -82,7 +85,7 @@ struct intel_memory_region {
u16 type;
u16 instance;
enum intel_region_id id;
- char name[8];
+ char name[16];
struct list_head reserved;
--
2.26.3
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [Intel-gfx] [PATCH v2 1/4] drm/i915: Create stolen memory region from local memory
2021-04-21 10:46 [Intel-gfx] [PATCH v2 1/4] " Matthew Auld
@ 2021-04-21 14:35 ` Tvrtko Ursulin
0 siblings, 0 replies; 10+ messages in thread
From: Tvrtko Ursulin @ 2021-04-21 14:35 UTC (permalink / raw)
To: Matthew Auld, intel-gfx; +Cc: Xinyun Liu, dri-devel
On 21/04/2021 11:46, Matthew Auld wrote:
> From: CQ Tang <cq.tang@intel.com>
>
> Add "REGION_STOLEN" device info to dg1, create stolen memory
> region from upper portion of local device memory, starting
> from DSMBASE.
>
> v2:
> - s/drm_info/drm_dbg; userspace likely doesn't care about stolen.
> - mem->type is only setup after the region probe, so setting the name
> as stolen-local or stolen-system based on this value won't work. Split
> system vs local stolen setup to fix this.
> - kill all the region->devmem/is_devmem stuff. We already differentiate
> the different types of stolen so such things shouldn't be needed
> anymore.
> v3:
> - split stolen lmem vs smem ops(Tvrtko)
> - add shortcut for stolen region in i915(Tvrtko)
> - sanity check dsm base vs bar size(Xinyun)
> v4(Tvrtko):
> - more cleanup
> - add some TODOs
>
> Signed-off-by: CQ Tang <cq.tang@intel.com>
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> Cc: Xinyun Liu <xinyun.liu@intel.com>
> ---
> drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 132 ++++++++++++++++++---
> drivers/gpu/drm/i915/gem/i915_gem_stolen.h | 3 +-
> drivers/gpu/drm/i915/i915_drv.h | 7 ++
> drivers/gpu/drm/i915/i915_pci.c | 2 +-
> drivers/gpu/drm/i915/i915_reg.h | 1 +
> drivers/gpu/drm/i915/intel_memory_region.c | 13 +-
> drivers/gpu/drm/i915/intel_memory_region.h | 5 +-
> 7 files changed, 140 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> index b0597de206de..13a7932cfe1a 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> @@ -10,6 +10,7 @@
> #include <drm/drm_mm.h>
> #include <drm/i915_drm.h>
>
> +#include "gem/i915_gem_lmem.h"
> #include "gem/i915_gem_region.h"
> #include "i915_drv.h"
> #include "i915_gem_stolen.h"
> @@ -121,6 +122,14 @@ static int i915_adjust_stolen(struct drm_i915_private *i915,
> }
> }
>
> + /*
> + * With stolen lmem, we don't need to check if the address range
> + * overlaps with the non-stolen system memory range, since lmem is local
> + * to the gpu.
> + */
> + if (HAS_LMEM(i915))
> + return 0;
> +
> /*
> * Verify that nothing else uses this physical address. Stolen
> * memory should be reserved by the BIOS and hidden from the
> @@ -374,8 +383,9 @@ static void icl_get_stolen_reserved(struct drm_i915_private *i915,
> }
> }
>
> -static int i915_gem_init_stolen(struct drm_i915_private *i915)
> +static int i915_gem_init_stolen(struct intel_memory_region *mem)
> {
> + struct drm_i915_private *i915 = mem->i915;
> struct intel_uncore *uncore = &i915->uncore;
> resource_size_t reserved_base, stolen_top;
> resource_size_t reserved_total, reserved_size;
> @@ -396,10 +406,10 @@ static int i915_gem_init_stolen(struct drm_i915_private *i915)
> return 0;
> }
>
> - if (resource_size(&intel_graphics_stolen_res) == 0)
> + if (resource_size(&mem->region) == 0)
> return 0;
>
> - i915->dsm = intel_graphics_stolen_res;
> + i915->dsm = mem->region;
>
> if (i915_adjust_stolen(i915, &i915->dsm))
> return 0;
> @@ -688,39 +698,123 @@ struct drm_i915_gem_object *
> i915_gem_object_create_stolen(struct drm_i915_private *i915,
> resource_size_t size)
> {
> - return i915_gem_object_create_region(i915->mm.regions[INTEL_REGION_STOLEN_SMEM],
> + return i915_gem_object_create_region(i915->mm.stolen_region,
> size, I915_BO_ALLOC_CONTIGUOUS);
> }
>
> -static int init_stolen(struct intel_memory_region *mem)
> +static int init_stolen_smem(struct intel_memory_region *mem)
> {
> - intel_memory_region_set_name(mem, "stolen");
> -
> /*
> * Initialise stolen early so that we may reserve preallocated
> * objects for the BIOS to KMS transition.
> */
> - return i915_gem_init_stolen(mem->i915);
> + return i915_gem_init_stolen(mem);
> }
>
> -static void release_stolen(struct intel_memory_region *mem)
> +static void release_stolen_smem(struct intel_memory_region *mem)
> {
> i915_gem_cleanup_stolen(mem->i915);
> }
>
> -static const struct intel_memory_region_ops i915_region_stolen_ops = {
> - .init = init_stolen,
> - .release = release_stolen,
> +static const struct intel_memory_region_ops i915_region_stolen_smem_ops = {
> + .init = init_stolen_smem,
> + .release = release_stolen_smem,
> .init_object = _i915_gem_object_stolen_init,
> };
>
> -struct intel_memory_region *i915_gem_stolen_setup(struct drm_i915_private *i915)
> +static int init_stolen_lmem(struct intel_memory_region *mem)
> +{
> + int err;
> +
> + if (GEM_WARN_ON(resource_size(&mem->region) == 0))
> + return -ENODEV;
> +
> + if (!io_mapping_init_wc(&mem->iomap,
> + mem->io_start,
> + resource_size(&mem->region)))
> + return -EIO;
> +
> + /*
> + * TODO: For stolen lmem we mostly just care about populating the dsm
> + * related bits and setting up the drm_mm allocator for the range.
> + * Perhaps split up i915_gem_init_stolen() for this.
> + */
> + err = i915_gem_init_stolen(mem);
> + if (err)
> + goto err_fini;
> +
> + return 0;
> +
> +err_fini:
> + io_mapping_fini(&mem->iomap);
> + return err;
> +}
> +
> +static void release_stolen_lmem(struct intel_memory_region *mem)
> {
> - return intel_memory_region_create(i915,
> - intel_graphics_stolen_res.start,
> - resource_size(&intel_graphics_stolen_res),
> - PAGE_SIZE, 0,
> - &i915_region_stolen_ops);
> + io_mapping_fini(&mem->iomap);
> + i915_gem_cleanup_stolen(mem->i915);
> +}
> +
> +static const struct intel_memory_region_ops i915_region_stolen_lmem_ops = {
> + .init = init_stolen_lmem,
> + .release = release_stolen_lmem,
> + .init_object = _i915_gem_object_stolen_init,
> +};
> +
> +struct intel_memory_region *
> +i915_gem_stolen_lmem_setup(struct drm_i915_private *i915)
> +{
> + struct intel_uncore *uncore = &i915->uncore;
> + struct pci_dev *pdev = i915->drm.pdev;
> + struct intel_memory_region *mem;
> + resource_size_t io_start;
> + resource_size_t lmem_size;
> + u64 lmem_base;
> +
> + lmem_base = intel_uncore_read64(uncore, GEN12_DSMBASE);
> + if (GEM_WARN_ON(lmem_base >= pci_resource_len(pdev, 2)))
> + return ERR_PTR(-ENODEV);
> +
> + lmem_size = pci_resource_len(pdev, 2) - lmem_base;
> + io_start = pci_resource_start(pdev, 2) + lmem_base;
> +
> + mem = intel_memory_region_create(i915, lmem_base, lmem_size,
> + I915_GTT_PAGE_SIZE_4K, io_start,
> + &i915_region_stolen_lmem_ops);
> + if (IS_ERR(mem))
> + return mem;
> +
> + /*
> + * TODO: consider creating common helper to just print all the
> + * interesting stuff from intel_memory_region, which we can use for all
> + * our probed regions.
> + */
> +
> + drm_dbg(&i915->drm, "Stolen Local memory IO start: %pa\n",
> + &mem->io_start);
> +
> + intel_memory_region_set_name(mem, "stolen-local");
> +
> + return mem;
> +}
> +
> +struct intel_memory_region*
> +i915_gem_stolen_smem_setup(struct drm_i915_private *i915)
> +{
> + struct intel_memory_region *mem;
> +
> + mem = intel_memory_region_create(i915,
> + intel_graphics_stolen_res.start,
> + resource_size(&intel_graphics_stolen_res),
> + PAGE_SIZE, 0,
> + &i915_region_stolen_smem_ops);
> + if (IS_ERR(mem))
> + return mem;
> +
> + intel_memory_region_set_name(mem, "stolen-system");
> +
> + return mem;
> }
>
> struct drm_i915_gem_object *
> @@ -728,7 +822,7 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_i915_private *i915,
> resource_size_t stolen_offset,
> resource_size_t size)
> {
> - struct intel_memory_region *mem = i915->mm.regions[INTEL_REGION_STOLEN_SMEM];
> + struct intel_memory_region *mem = i915->mm.stolen_region;
> struct drm_i915_gem_object *obj;
> struct drm_mm_node *stolen;
> int ret;
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
> index b03489706796..2bec6c367b9c 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
> @@ -21,7 +21,8 @@ int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *dev_priv,
> u64 end);
> void i915_gem_stolen_remove_node(struct drm_i915_private *dev_priv,
> struct drm_mm_node *node);
> -struct intel_memory_region *i915_gem_stolen_setup(struct drm_i915_private *i915);
> +struct intel_memory_region *i915_gem_stolen_smem_setup(struct drm_i915_private *i915);
> +struct intel_memory_region *i915_gem_stolen_lmem_setup(struct drm_i915_private *i915);
> struct drm_i915_gem_object *
> i915_gem_object_create_stolen(struct drm_i915_private *dev_priv,
> resource_size_t size);
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index e20294e9227a..0b44333eb703 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -514,6 +514,13 @@ struct intel_l3_parity {
> };
>
> struct i915_gem_mm {
> + /*
> + * Shortcut for the stolen region. This points to either
> + * INTEL_REGION_STOLEN_SMEM for integrated platforms, or
> + * INTEL_REGION_STOLEN_LMEM for discrete, or NULL if the device doesn't
> + * support stolen.
> + */
> + struct intel_memory_region *stolen_region;
> /** Memory allocator for GTT stolen memory */
> struct drm_mm stolen;
> /** Protects the usage of the GTT stolen memory allocator. This is
> diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
> index 7786217638ed..c678e0663d80 100644
> --- a/drivers/gpu/drm/i915/i915_pci.c
> +++ b/drivers/gpu/drm/i915/i915_pci.c
> @@ -908,7 +908,7 @@ static const struct intel_device_info rkl_info = {
> };
>
> #define DGFX_FEATURES \
> - .memory_regions = REGION_SMEM | REGION_LMEM, \
> + .memory_regions = REGION_SMEM | REGION_LMEM | REGION_STOLEN_LMEM, \
> .has_master_unit_irq = 1, \
> .has_llc = 0, \
> .has_snoop = 1, \
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index f80d656331f4..ea20058bc13f 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -12191,6 +12191,7 @@ enum skl_power_gate {
> #define GEN12_GLOBAL_MOCS(i) _MMIO(0x4000 + (i) * 4) /* Global MOCS regs */
>
> #define GEN12_GSMBASE _MMIO(0x108100)
> +#define GEN12_DSMBASE _MMIO(0x1080C0)
>
> /* gamt regs */
> #define GEN8_L3_LRA_1_GPGPU _MMIO(0x4dd4)
> diff --git a/drivers/gpu/drm/i915/intel_memory_region.c b/drivers/gpu/drm/i915/intel_memory_region.c
> index bf837b6bb185..481a487faca6 100644
> --- a/drivers/gpu/drm/i915/intel_memory_region.c
> +++ b/drivers/gpu/drm/i915/intel_memory_region.c
> @@ -22,6 +22,10 @@ static const struct {
> .class = INTEL_MEMORY_STOLEN_SYSTEM,
> .instance = 0,
> },
> + [INTEL_REGION_STOLEN_LMEM] = {
> + .class = INTEL_MEMORY_STOLEN_LOCAL,
> + .instance = 0,
> + },
> };
>
> struct intel_memory_region *
> @@ -278,8 +282,15 @@ int intel_memory_regions_hw_probe(struct drm_i915_private *i915)
> case INTEL_MEMORY_SYSTEM:
> mem = i915_gem_shmem_setup(i915);
> break;
> + case INTEL_MEMORY_STOLEN_LOCAL:
> + mem = i915_gem_stolen_lmem_setup(i915);
> + if (!IS_ERR(mem))
> + i915->mm.stolen_region = mem;
> + break;
> case INTEL_MEMORY_STOLEN_SYSTEM:
> - mem = i915_gem_stolen_setup(i915);
> + mem = i915_gem_stolen_smem_setup(i915);
> + if (!IS_ERR(mem))
> + i915->mm.stolen_region = mem;
> break;
> default:
> continue;
> diff --git a/drivers/gpu/drm/i915/intel_memory_region.h b/drivers/gpu/drm/i915/intel_memory_region.h
> index edd49067c8ca..4c8ec15af55f 100644
> --- a/drivers/gpu/drm/i915/intel_memory_region.h
> +++ b/drivers/gpu/drm/i915/intel_memory_region.h
> @@ -26,18 +26,21 @@ enum intel_memory_type {
> INTEL_MEMORY_SYSTEM = 0,
> INTEL_MEMORY_LOCAL,
> INTEL_MEMORY_STOLEN_SYSTEM,
> + INTEL_MEMORY_STOLEN_LOCAL,
> };
>
> enum intel_region_id {
> INTEL_REGION_SMEM = 0,
> INTEL_REGION_LMEM,
> INTEL_REGION_STOLEN_SMEM,
> + INTEL_REGION_STOLEN_LMEM,
> INTEL_REGION_UNKNOWN, /* Should be last */
> };
>
> #define REGION_SMEM BIT(INTEL_REGION_SMEM)
> #define REGION_LMEM BIT(INTEL_REGION_LMEM)
> #define REGION_STOLEN_SMEM BIT(INTEL_REGION_STOLEN_SMEM)
> +#define REGION_STOLEN_LMEM BIT(INTEL_REGION_STOLEN_LMEM)
>
> #define I915_ALLOC_MIN_PAGE_SIZE BIT(0)
> #define I915_ALLOC_CONTIGUOUS BIT(1)
> @@ -82,7 +85,7 @@ struct intel_memory_region {
> u16 type;
> u16 instance;
> enum intel_region_id id;
> - char name[8];
> + char name[16];
>
> struct list_head reserved;
>
>
With the TODOs in place, I think I can finally see the road to clean
stolen setup. Thanks for refining it at this stage.
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2021-04-21 14:35 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-02-09 12:00 [Intel-gfx] [PATCH v2 1/4] drm/i915: Create stolen memory region from local memory Matthew Auld
2021-02-09 12:00 ` [Intel-gfx] [PATCH v2 2/4] drm/i915/stolen: treat stolen local as normal " Matthew Auld
2021-02-09 12:00 ` [Intel-gfx] [PATCH v2 3/4] drm/i915/stolen: enforce the min_page_size contract Matthew Auld
2021-02-09 12:00 ` [Intel-gfx] [PATCH v2 4/4] drm/i915/stolen: pass the allocation flags Matthew Auld
2021-02-09 14:59 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v2,1/4] drm/i915: Create stolen memory region from local memory Patchwork
2021-02-09 15:00 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2021-02-09 15:28 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-02-09 17:53 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2021-04-21 10:46 [Intel-gfx] [PATCH v2 1/4] " Matthew Auld
2021-04-21 14:35 ` Tvrtko Ursulin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox