* [Intel-gfx] [PATCH v4] drm/doc: add rfc section for small BAR uapi
@ 2022-05-17 10:52 ` Matthew Auld
0 siblings, 0 replies; 9+ messages in thread
From: Matthew Auld @ 2022-05-17 10:52 UTC (permalink / raw)
To: intel-gfx
Cc: Thomas Hellström, Daniel Vetter, Kenneth Graunke, dri-devel,
mesa-dev
Add an entry for the new uapi needed for small BAR on DG2+.
v2:
- Some spelling fixes and other small tweaks. (Akeem & Thomas)
- Rework error capture interactions, including no longer needing
NEEDS_CPU_ACCESS for objects marked for capture. (Thomas)
- Add probed_cpu_visible_size. (Lionel)
v3:
- Drop the vma query for now.
- Add unallocated_cpu_visible_size as part of the region query.
- Improve the docs some more, including documenting the expected
behaviour on older kernels, since this came up in some offline
discussion.
v4:
- Various improvements all over. (Tvrtko)
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Jon Bloomfield <jon.bloomfield@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Jon Bloomfield <jon.bloomfield@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Kenneth Graunke <kenneth@whitecape.org>
Cc: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>
Cc: mesa-dev@lists.freedesktop.org
---
Documentation/gpu/rfc/i915_small_bar.h | 189 +++++++++++++++++++++++
Documentation/gpu/rfc/i915_small_bar.rst | 47 ++++++
Documentation/gpu/rfc/index.rst | 4 +
3 files changed, 240 insertions(+)
create mode 100644 Documentation/gpu/rfc/i915_small_bar.h
create mode 100644 Documentation/gpu/rfc/i915_small_bar.rst
diff --git a/Documentation/gpu/rfc/i915_small_bar.h b/Documentation/gpu/rfc/i915_small_bar.h
new file mode 100644
index 000000000000..c676640b23ef
--- /dev/null
+++ b/Documentation/gpu/rfc/i915_small_bar.h
@@ -0,0 +1,189 @@
+/**
+ * struct __drm_i915_memory_region_info - Describes one region as known to the
+ * driver.
+ *
+ * Note this is using both struct drm_i915_query_item and struct drm_i915_query.
+ * For this new query we are adding the new query id DRM_I915_QUERY_MEMORY_REGIONS
+ * at &drm_i915_query_item.query_id.
+ */
+struct __drm_i915_memory_region_info {
+ /** @region: The class:instance pair encoding */
+ struct drm_i915_gem_memory_class_instance region;
+
+ /** @rsvd0: MBZ */
+ __u32 rsvd0;
+
+ /**
+ * @probed_size: Memory probed by the driver (-1 = unknown)
+ *
+ * Note that it should not be possible to ever encounter a zero value
+ * here, also note that no current region type will ever return -1 here.
+ * Although for future region types, this might be a possibility. The
+ * same applies to the other size fields.
+ */
+ __u64 probed_size;
+
+ /**
+ * @unallocated_size: Estimate of memory remaining (-1 = unknown)
+ *
+ * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable accounting.
+ * Without this (or if this is an older kernel) the value here will
+ * always equal the @probed_size. Note this is only currently tracked
+ * for I915_MEMORY_CLASS_DEVICE regions (for other types the value here
+ * will always equal the @probed_size).
+ */
+ __u64 unallocated_size;
+
+ union {
+ /** @rsvd1: MBZ */
+ __u64 rsvd1[8];
+ struct {
+ /**
+ * @probed_cpu_visible_size: Memory probed by the driver
+ * that is CPU accessible. (-1 = unknown).
+ *
+ * This will be always be <= @probed_size, and the
+ * remainder (if there is any) will not be CPU
+ * accessible.
+ *
+ * On systems without small BAR, the @probed_size will
+ * always equal the @probed_cpu_visible_size, since all
+ * of it will be CPU accessible.
+ *
+ * Note this is only tracked for
+ * I915_MEMORY_CLASS_DEVICE regions (for other types the
+ * value here will always equal the @probed_size).
+ *
+ * Note that if the value returned here is zero, then
+ * this must be an old kernel which lacks the relevant
+ * small-bar uAPI support (including
+ * I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS), but on
+ * such systems we should never actually end up with a
+ * small BAR configuration, assuming we are able to load
+ * the kernel module. Hence it should be safe to treat
+ * this the same as when @probed_cpu_visible_size ==
+ * @probed_size.
+ */
+ __u64 probed_cpu_visible_size;
+
+ /**
+ * @unallocated_cpu_visible_size: Estimate of CPU
+ * visible memory remaining (-1 = unknown).
+ *
+ * Note this is only tracked for
+ * I915_MEMORY_CLASS_DEVICE regions (for other types the
+ * value here will always equal the
+ * @probed_cpu_visible_size).
+ *
+ * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable
+ * accounting. Without this the value here will always
+ * equal the @probed_cpu_visible_size. Note this is only
+ * currently tracked for I915_MEMORY_CLASS_DEVICE
+ * regions (for other types the value here will also
+ * always equal the @probed_cpu_visible_size).
+ *
+ * If this is an older kernel the value here will be
+ * zero, see also @probed_cpu_visible_size.
+ */
+ __u64 unallocated_cpu_visible_size;
+ };
+ };
+};
+
+/**
+ * struct __drm_i915_gem_create_ext - Existing gem_create behaviour, with added
+ * extension support using struct i915_user_extension.
+ *
+ * Note that new buffer flags should be added here, at least for the stuff that
+ * is immutable. Previously we would have two ioctls, one to create the object
+ * with gem_create, and another to apply various parameters, however this
+ * creates some ambiguity for the params which are considered immutable. Also in
+ * general we're phasing out the various SET/GET ioctls.
+ */
+struct __drm_i915_gem_create_ext {
+ /**
+ * @size: Requested size for the object.
+ *
+ * The (page-aligned) allocated size for the object will be returned.
+ *
+ * Note that for some devices we have might have further minimum
+ * page-size restrictions (larger than 4K), like for device local-memory.
+ * However in general the final size here should always reflect any
+ * rounding up, if for example using the I915_GEM_CREATE_EXT_MEMORY_REGIONS
+ * extension to place the object in device local-memory. The kernel will
+ * always select the largest minimum page-size for the set of possible
+ * placements as the value to use when rounding up the @size.
+ */
+ __u64 size;
+
+ /**
+ * @handle: Returned handle for the object.
+ *
+ * Object handles are nonzero.
+ */
+ __u32 handle;
+
+ /**
+ * @flags: Optional flags.
+ *
+ * Supported values:
+ *
+ * I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS - Signal to the kernel that
+ * the object will need to be accessed via the CPU.
+ *
+ * Only valid when placing objects in I915_MEMORY_CLASS_DEVICE, and only
+ * strictly required on configurations where some subset of the device
+ * memory is directly visible/mappable through the CPU (which we also
+ * call small BAR), like on some DG2+ systems. Note that this is quite
+ * undesirable, but due to various factors like the client CPU, BIOS etc
+ * it's something we can expect to see in the wild. See struct
+ * __drm_i915_memory_region_info.probed_cpu_visible_size for how to
+ * determine if this system applies.
+ *
+ * Note that one of the placements MUST be I915_MEMORY_CLASS_SYSTEM, to
+ * ensure the kernel can always spill the allocation to system memory,
+ * if the object can't be allocated in the mappable part of
+ * I915_MEMORY_CLASS_DEVICE.
+ *
+ * Also note that since the kernel only supports flat-CCS on objects
+ * that can *only* be placed in I915_MEMORY_CLASS_DEVICE, we therefore
+ * don't support I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS together with
+ * flat-CCS.
+ *
+ * Without this hint, the kernel will assume that non-mappable
+ * I915_MEMORY_CLASS_DEVICE is preferred for this object. Note that the
+ * kernel can still migrate the object to the mappable part, as a last
+ * resort, if userspace ever CPU faults this object, but this might be
+ * expensive, and so ideally should be avoided.
+ *
+ * On older kernels which lack the relevant small-bar uAPI support (see
+ * also struct __drm_i915_memory_region_info.probed_cpu_visible_size),
+ * usage of the flag will result in an error, but it should NEVER be
+ * possible to end up with a small BAR configuration, assuming we can
+ * also successfully load the i915 kernel module. In such cases the
+ * entire I915_MEMORY_CLASS_DEVICE region will be CPU accessible, and as
+ * such there are zero restrictions on where the object can be placed.
+ */
+#define I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS (1 << 0)
+ __u32 flags;
+
+ /**
+ * @extensions: The chain of extensions to apply to this object.
+ *
+ * This will be useful in the future when we need to support several
+ * different extensions, and we need to apply more than one when
+ * creating the object. See struct i915_user_extension.
+ *
+ * If we don't supply any extensions then we get the same old gem_create
+ * behaviour.
+ *
+ * For I915_GEM_CREATE_EXT_MEMORY_REGIONS usage see
+ * struct drm_i915_gem_create_ext_memory_regions.
+ *
+ * For I915_GEM_CREATE_EXT_PROTECTED_CONTENT usage see
+ * struct drm_i915_gem_create_ext_protected_content.
+ */
+#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0
+#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1
+ __u64 extensions;
+};
diff --git a/Documentation/gpu/rfc/i915_small_bar.rst b/Documentation/gpu/rfc/i915_small_bar.rst
new file mode 100644
index 000000000000..a322481cea8b
--- /dev/null
+++ b/Documentation/gpu/rfc/i915_small_bar.rst
@@ -0,0 +1,47 @@
+==========================
+I915 Small BAR RFC Section
+==========================
+Starting from DG2 we will have resizable BAR support for device local-memory(i.e
+I915_MEMORY_CLASS_DEVICE), but in some cases the final BAR size might still be
+smaller than the total probed_size. In such cases, only some subset of
+I915_MEMORY_CLASS_DEVICE will be CPU accessible(for example the first 256M),
+while the remainder is only accessible via the GPU.
+
+I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS flag
+----------------------------------------------
+New gem_create_ext flag to tell the kernel that a BO will require CPU access.
+This becomes important when placing an object in I915_MEMORY_CLASS_DEVICE, where
+underneath the device has a small BAR, meaning only some portion of it is CPU
+accessible. Without this flag the kernel will assume that CPU access is not
+required, and prioritize using the non-CPU visible portion of
+I915_MEMORY_CLASS_DEVICE.
+
+.. kernel-doc:: Documentation/gpu/rfc/i915_small_bar.h
+ :functions: __drm_i915_gem_create_ext
+
+probed_cpu_visible_size attribute
+---------------------------------
+New struct__drm_i915_memory_region attribute which returns the total size of the
+CPU accessible portion, for the particular region. This should only be
+applicable for I915_MEMORY_CLASS_DEVICE. We also report the
+unallocated_cpu_visible_size, alongside the unallocated_size.
+
+Vulkan will need this as part of creating a separate VkMemoryHeap with the
+VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT set, to represent the CPU visible portion,
+where the total size of the heap needs to be known. It also wants to be able to
+give a rough estimate of how memory can potentially be allocated.
+
+.. kernel-doc:: Documentation/gpu/rfc/i915_small_bar.h
+ :functions: __drm_i915_memory_region_info
+
+Error Capture restrictions
+--------------------------
+With error capture we have two new restrictions:
+
+ 1) Error capture is best effort on small BAR systems; if the pages are not
+ CPU accessible, at the time of capture, then the kernel is free to skip
+ trying to capture them.
+
+ 2) On discrete we now reject error capture on recoverable contexts. In the
+ future the kernel may want to blit during error capture, when for example
+ something is not currently CPU accessible.
diff --git a/Documentation/gpu/rfc/index.rst b/Documentation/gpu/rfc/index.rst
index 91e93a705230..5a3bd3924ba6 100644
--- a/Documentation/gpu/rfc/index.rst
+++ b/Documentation/gpu/rfc/index.rst
@@ -23,3 +23,7 @@ host such documentation:
.. toctree::
i915_scheduler.rst
+
+.. toctree::
+
+ i915_small_bar.rst
--
2.34.3
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v4] drm/doc: add rfc section for small BAR uapi @ 2022-05-17 10:52 ` Matthew Auld 0 siblings, 0 replies; 9+ messages in thread From: Matthew Auld @ 2022-05-17 10:52 UTC (permalink / raw) To: intel-gfx Cc: Thomas Hellström, Tvrtko Ursulin, Daniel Vetter, Lionel Landwerlin, Kenneth Graunke, Jon Bloomfield, dri-devel, Jordan Justen, mesa-dev, Akeem G Abodunrin Add an entry for the new uapi needed for small BAR on DG2+. v2: - Some spelling fixes and other small tweaks. (Akeem & Thomas) - Rework error capture interactions, including no longer needing NEEDS_CPU_ACCESS for objects marked for capture. (Thomas) - Add probed_cpu_visible_size. (Lionel) v3: - Drop the vma query for now. - Add unallocated_cpu_visible_size as part of the region query. - Improve the docs some more, including documenting the expected behaviour on older kernels, since this came up in some offline discussion. v4: - Various improvements all over. (Tvrtko) Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Cc: Jon Bloomfield <jon.bloomfield@intel.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Jon Bloomfield <jon.bloomfield@intel.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Kenneth Graunke <kenneth@whitecape.org> Cc: Akeem G Abodunrin <akeem.g.abodunrin@intel.com> Cc: mesa-dev@lists.freedesktop.org --- Documentation/gpu/rfc/i915_small_bar.h | 189 +++++++++++++++++++++++ Documentation/gpu/rfc/i915_small_bar.rst | 47 ++++++ Documentation/gpu/rfc/index.rst | 4 + 3 files changed, 240 insertions(+) create mode 100644 Documentation/gpu/rfc/i915_small_bar.h create mode 100644 Documentation/gpu/rfc/i915_small_bar.rst diff --git a/Documentation/gpu/rfc/i915_small_bar.h b/Documentation/gpu/rfc/i915_small_bar.h new file mode 100644 index 000000000000..c676640b23ef --- /dev/null +++ b/Documentation/gpu/rfc/i915_small_bar.h @@ -0,0 +1,189 @@ +/** + * struct __drm_i915_memory_region_info - Describes one region as known to the + * driver. + * + * Note this is using both struct drm_i915_query_item and struct drm_i915_query. + * For this new query we are adding the new query id DRM_I915_QUERY_MEMORY_REGIONS + * at &drm_i915_query_item.query_id. + */ +struct __drm_i915_memory_region_info { + /** @region: The class:instance pair encoding */ + struct drm_i915_gem_memory_class_instance region; + + /** @rsvd0: MBZ */ + __u32 rsvd0; + + /** + * @probed_size: Memory probed by the driver (-1 = unknown) + * + * Note that it should not be possible to ever encounter a zero value + * here, also note that no current region type will ever return -1 here. + * Although for future region types, this might be a possibility. The + * same applies to the other size fields. + */ + __u64 probed_size; + + /** + * @unallocated_size: Estimate of memory remaining (-1 = unknown) + * + * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable accounting. + * Without this (or if this is an older kernel) the value here will + * always equal the @probed_size. Note this is only currently tracked + * for I915_MEMORY_CLASS_DEVICE regions (for other types the value here + * will always equal the @probed_size). + */ + __u64 unallocated_size; + + union { + /** @rsvd1: MBZ */ + __u64 rsvd1[8]; + struct { + /** + * @probed_cpu_visible_size: Memory probed by the driver + * that is CPU accessible. (-1 = unknown). + * + * This will be always be <= @probed_size, and the + * remainder (if there is any) will not be CPU + * accessible. + * + * On systems without small BAR, the @probed_size will + * always equal the @probed_cpu_visible_size, since all + * of it will be CPU accessible. + * + * Note this is only tracked for + * I915_MEMORY_CLASS_DEVICE regions (for other types the + * value here will always equal the @probed_size). + * + * Note that if the value returned here is zero, then + * this must be an old kernel which lacks the relevant + * small-bar uAPI support (including + * I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS), but on + * such systems we should never actually end up with a + * small BAR configuration, assuming we are able to load + * the kernel module. Hence it should be safe to treat + * this the same as when @probed_cpu_visible_size == + * @probed_size. + */ + __u64 probed_cpu_visible_size; + + /** + * @unallocated_cpu_visible_size: Estimate of CPU + * visible memory remaining (-1 = unknown). + * + * Note this is only tracked for + * I915_MEMORY_CLASS_DEVICE regions (for other types the + * value here will always equal the + * @probed_cpu_visible_size). + * + * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable + * accounting. Without this the value here will always + * equal the @probed_cpu_visible_size. Note this is only + * currently tracked for I915_MEMORY_CLASS_DEVICE + * regions (for other types the value here will also + * always equal the @probed_cpu_visible_size). + * + * If this is an older kernel the value here will be + * zero, see also @probed_cpu_visible_size. + */ + __u64 unallocated_cpu_visible_size; + }; + }; +}; + +/** + * struct __drm_i915_gem_create_ext - Existing gem_create behaviour, with added + * extension support using struct i915_user_extension. + * + * Note that new buffer flags should be added here, at least for the stuff that + * is immutable. Previously we would have two ioctls, one to create the object + * with gem_create, and another to apply various parameters, however this + * creates some ambiguity for the params which are considered immutable. Also in + * general we're phasing out the various SET/GET ioctls. + */ +struct __drm_i915_gem_create_ext { + /** + * @size: Requested size for the object. + * + * The (page-aligned) allocated size for the object will be returned. + * + * Note that for some devices we have might have further minimum + * page-size restrictions (larger than 4K), like for device local-memory. + * However in general the final size here should always reflect any + * rounding up, if for example using the I915_GEM_CREATE_EXT_MEMORY_REGIONS + * extension to place the object in device local-memory. The kernel will + * always select the largest minimum page-size for the set of possible + * placements as the value to use when rounding up the @size. + */ + __u64 size; + + /** + * @handle: Returned handle for the object. + * + * Object handles are nonzero. + */ + __u32 handle; + + /** + * @flags: Optional flags. + * + * Supported values: + * + * I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS - Signal to the kernel that + * the object will need to be accessed via the CPU. + * + * Only valid when placing objects in I915_MEMORY_CLASS_DEVICE, and only + * strictly required on configurations where some subset of the device + * memory is directly visible/mappable through the CPU (which we also + * call small BAR), like on some DG2+ systems. Note that this is quite + * undesirable, but due to various factors like the client CPU, BIOS etc + * it's something we can expect to see in the wild. See struct + * __drm_i915_memory_region_info.probed_cpu_visible_size for how to + * determine if this system applies. + * + * Note that one of the placements MUST be I915_MEMORY_CLASS_SYSTEM, to + * ensure the kernel can always spill the allocation to system memory, + * if the object can't be allocated in the mappable part of + * I915_MEMORY_CLASS_DEVICE. + * + * Also note that since the kernel only supports flat-CCS on objects + * that can *only* be placed in I915_MEMORY_CLASS_DEVICE, we therefore + * don't support I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS together with + * flat-CCS. + * + * Without this hint, the kernel will assume that non-mappable + * I915_MEMORY_CLASS_DEVICE is preferred for this object. Note that the + * kernel can still migrate the object to the mappable part, as a last + * resort, if userspace ever CPU faults this object, but this might be + * expensive, and so ideally should be avoided. + * + * On older kernels which lack the relevant small-bar uAPI support (see + * also struct __drm_i915_memory_region_info.probed_cpu_visible_size), + * usage of the flag will result in an error, but it should NEVER be + * possible to end up with a small BAR configuration, assuming we can + * also successfully load the i915 kernel module. In such cases the + * entire I915_MEMORY_CLASS_DEVICE region will be CPU accessible, and as + * such there are zero restrictions on where the object can be placed. + */ +#define I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS (1 << 0) + __u32 flags; + + /** + * @extensions: The chain of extensions to apply to this object. + * + * This will be useful in the future when we need to support several + * different extensions, and we need to apply more than one when + * creating the object. See struct i915_user_extension. + * + * If we don't supply any extensions then we get the same old gem_create + * behaviour. + * + * For I915_GEM_CREATE_EXT_MEMORY_REGIONS usage see + * struct drm_i915_gem_create_ext_memory_regions. + * + * For I915_GEM_CREATE_EXT_PROTECTED_CONTENT usage see + * struct drm_i915_gem_create_ext_protected_content. + */ +#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0 +#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1 + __u64 extensions; +}; diff --git a/Documentation/gpu/rfc/i915_small_bar.rst b/Documentation/gpu/rfc/i915_small_bar.rst new file mode 100644 index 000000000000..a322481cea8b --- /dev/null +++ b/Documentation/gpu/rfc/i915_small_bar.rst @@ -0,0 +1,47 @@ +========================== +I915 Small BAR RFC Section +========================== +Starting from DG2 we will have resizable BAR support for device local-memory(i.e +I915_MEMORY_CLASS_DEVICE), but in some cases the final BAR size might still be +smaller than the total probed_size. In such cases, only some subset of +I915_MEMORY_CLASS_DEVICE will be CPU accessible(for example the first 256M), +while the remainder is only accessible via the GPU. + +I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS flag +---------------------------------------------- +New gem_create_ext flag to tell the kernel that a BO will require CPU access. +This becomes important when placing an object in I915_MEMORY_CLASS_DEVICE, where +underneath the device has a small BAR, meaning only some portion of it is CPU +accessible. Without this flag the kernel will assume that CPU access is not +required, and prioritize using the non-CPU visible portion of +I915_MEMORY_CLASS_DEVICE. + +.. kernel-doc:: Documentation/gpu/rfc/i915_small_bar.h + :functions: __drm_i915_gem_create_ext + +probed_cpu_visible_size attribute +--------------------------------- +New struct__drm_i915_memory_region attribute which returns the total size of the +CPU accessible portion, for the particular region. This should only be +applicable for I915_MEMORY_CLASS_DEVICE. We also report the +unallocated_cpu_visible_size, alongside the unallocated_size. + +Vulkan will need this as part of creating a separate VkMemoryHeap with the +VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT set, to represent the CPU visible portion, +where the total size of the heap needs to be known. It also wants to be able to +give a rough estimate of how memory can potentially be allocated. + +.. kernel-doc:: Documentation/gpu/rfc/i915_small_bar.h + :functions: __drm_i915_memory_region_info + +Error Capture restrictions +-------------------------- +With error capture we have two new restrictions: + + 1) Error capture is best effort on small BAR systems; if the pages are not + CPU accessible, at the time of capture, then the kernel is free to skip + trying to capture them. + + 2) On discrete we now reject error capture on recoverable contexts. In the + future the kernel may want to blit during error capture, when for example + something is not currently CPU accessible. diff --git a/Documentation/gpu/rfc/index.rst b/Documentation/gpu/rfc/index.rst index 91e93a705230..5a3bd3924ba6 100644 --- a/Documentation/gpu/rfc/index.rst +++ b/Documentation/gpu/rfc/index.rst @@ -23,3 +23,7 @@ host such documentation: .. toctree:: i915_scheduler.rst + +.. toctree:: + + i915_small_bar.rst -- 2.34.3 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Intel-gfx] [PATCH v4] drm/doc: add rfc section for small BAR uapi 2022-05-17 10:52 ` Matthew Auld @ 2022-05-17 13:48 ` Tvrtko Ursulin -1 siblings, 0 replies; 9+ messages in thread From: Tvrtko Ursulin @ 2022-05-17 13:48 UTC (permalink / raw) To: Matthew Auld, intel-gfx Cc: Thomas Hellström, Kenneth Graunke, dri-devel, Daniel Vetter, mesa-dev On 17/05/2022 11:52, Matthew Auld wrote: > Add an entry for the new uapi needed for small BAR on DG2+. > > v2: > - Some spelling fixes and other small tweaks. (Akeem & Thomas) > - Rework error capture interactions, including no longer needing > NEEDS_CPU_ACCESS for objects marked for capture. (Thomas) > - Add probed_cpu_visible_size. (Lionel) > v3: > - Drop the vma query for now. > - Add unallocated_cpu_visible_size as part of the region query. > - Improve the docs some more, including documenting the expected > behaviour on older kernels, since this came up in some offline > discussion. > v4: > - Various improvements all over. (Tvrtko) You can ignore my previous reply, the clarifications from v4 read good to me. Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Regards, Tvrtko > > Signed-off-by: Matthew Auld <matthew.auld@intel.com> > Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> > Cc: Jon Bloomfield <jon.bloomfield@intel.com> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > Cc: Jon Bloomfield <jon.bloomfield@intel.com> > Cc: Jordan Justen <jordan.l.justen@intel.com> > Cc: Kenneth Graunke <kenneth@whitecape.org> > Cc: Akeem G Abodunrin <akeem.g.abodunrin@intel.com> > Cc: mesa-dev@lists.freedesktop.org > --- > Documentation/gpu/rfc/i915_small_bar.h | 189 +++++++++++++++++++++++ > Documentation/gpu/rfc/i915_small_bar.rst | 47 ++++++ > Documentation/gpu/rfc/index.rst | 4 + > 3 files changed, 240 insertions(+) > create mode 100644 Documentation/gpu/rfc/i915_small_bar.h > create mode 100644 Documentation/gpu/rfc/i915_small_bar.rst > > diff --git a/Documentation/gpu/rfc/i915_small_bar.h b/Documentation/gpu/rfc/i915_small_bar.h > new file mode 100644 > index 000000000000..c676640b23ef > --- /dev/null > +++ b/Documentation/gpu/rfc/i915_small_bar.h > @@ -0,0 +1,189 @@ > +/** > + * struct __drm_i915_memory_region_info - Describes one region as known to the > + * driver. > + * > + * Note this is using both struct drm_i915_query_item and struct drm_i915_query. > + * For this new query we are adding the new query id DRM_I915_QUERY_MEMORY_REGIONS > + * at &drm_i915_query_item.query_id. > + */ > +struct __drm_i915_memory_region_info { > + /** @region: The class:instance pair encoding */ > + struct drm_i915_gem_memory_class_instance region; > + > + /** @rsvd0: MBZ */ > + __u32 rsvd0; > + > + /** > + * @probed_size: Memory probed by the driver (-1 = unknown) > + * > + * Note that it should not be possible to ever encounter a zero value > + * here, also note that no current region type will ever return -1 here. > + * Although for future region types, this might be a possibility. The > + * same applies to the other size fields. > + */ > + __u64 probed_size; > + > + /** > + * @unallocated_size: Estimate of memory remaining (-1 = unknown) > + * > + * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable accounting. > + * Without this (or if this is an older kernel) the value here will > + * always equal the @probed_size. Note this is only currently tracked > + * for I915_MEMORY_CLASS_DEVICE regions (for other types the value here > + * will always equal the @probed_size). > + */ > + __u64 unallocated_size; > + > + union { > + /** @rsvd1: MBZ */ > + __u64 rsvd1[8]; > + struct { > + /** > + * @probed_cpu_visible_size: Memory probed by the driver > + * that is CPU accessible. (-1 = unknown). > + * > + * This will be always be <= @probed_size, and the > + * remainder (if there is any) will not be CPU > + * accessible. > + * > + * On systems without small BAR, the @probed_size will > + * always equal the @probed_cpu_visible_size, since all > + * of it will be CPU accessible. > + * > + * Note this is only tracked for > + * I915_MEMORY_CLASS_DEVICE regions (for other types the > + * value here will always equal the @probed_size). > + * > + * Note that if the value returned here is zero, then > + * this must be an old kernel which lacks the relevant > + * small-bar uAPI support (including > + * I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS), but on > + * such systems we should never actually end up with a > + * small BAR configuration, assuming we are able to load > + * the kernel module. Hence it should be safe to treat > + * this the same as when @probed_cpu_visible_size == > + * @probed_size. > + */ > + __u64 probed_cpu_visible_size; > + > + /** > + * @unallocated_cpu_visible_size: Estimate of CPU > + * visible memory remaining (-1 = unknown). > + * > + * Note this is only tracked for > + * I915_MEMORY_CLASS_DEVICE regions (for other types the > + * value here will always equal the > + * @probed_cpu_visible_size). > + * > + * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable > + * accounting. Without this the value here will always > + * equal the @probed_cpu_visible_size. Note this is only > + * currently tracked for I915_MEMORY_CLASS_DEVICE > + * regions (for other types the value here will also > + * always equal the @probed_cpu_visible_size). > + * > + * If this is an older kernel the value here will be > + * zero, see also @probed_cpu_visible_size. > + */ > + __u64 unallocated_cpu_visible_size; > + }; > + }; > +}; > + > +/** > + * struct __drm_i915_gem_create_ext - Existing gem_create behaviour, with added > + * extension support using struct i915_user_extension. > + * > + * Note that new buffer flags should be added here, at least for the stuff that > + * is immutable. Previously we would have two ioctls, one to create the object > + * with gem_create, and another to apply various parameters, however this > + * creates some ambiguity for the params which are considered immutable. Also in > + * general we're phasing out the various SET/GET ioctls. > + */ > +struct __drm_i915_gem_create_ext { > + /** > + * @size: Requested size for the object. > + * > + * The (page-aligned) allocated size for the object will be returned. > + * > + * Note that for some devices we have might have further minimum > + * page-size restrictions (larger than 4K), like for device local-memory. > + * However in general the final size here should always reflect any > + * rounding up, if for example using the I915_GEM_CREATE_EXT_MEMORY_REGIONS > + * extension to place the object in device local-memory. The kernel will > + * always select the largest minimum page-size for the set of possible > + * placements as the value to use when rounding up the @size. > + */ > + __u64 size; > + > + /** > + * @handle: Returned handle for the object. > + * > + * Object handles are nonzero. > + */ > + __u32 handle; > + > + /** > + * @flags: Optional flags. > + * > + * Supported values: > + * > + * I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS - Signal to the kernel that > + * the object will need to be accessed via the CPU. > + * > + * Only valid when placing objects in I915_MEMORY_CLASS_DEVICE, and only > + * strictly required on configurations where some subset of the device > + * memory is directly visible/mappable through the CPU (which we also > + * call small BAR), like on some DG2+ systems. Note that this is quite > + * undesirable, but due to various factors like the client CPU, BIOS etc > + * it's something we can expect to see in the wild. See struct > + * __drm_i915_memory_region_info.probed_cpu_visible_size for how to > + * determine if this system applies. > + * > + * Note that one of the placements MUST be I915_MEMORY_CLASS_SYSTEM, to > + * ensure the kernel can always spill the allocation to system memory, > + * if the object can't be allocated in the mappable part of > + * I915_MEMORY_CLASS_DEVICE. > + * > + * Also note that since the kernel only supports flat-CCS on objects > + * that can *only* be placed in I915_MEMORY_CLASS_DEVICE, we therefore > + * don't support I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS together with > + * flat-CCS. > + * > + * Without this hint, the kernel will assume that non-mappable > + * I915_MEMORY_CLASS_DEVICE is preferred for this object. Note that the > + * kernel can still migrate the object to the mappable part, as a last > + * resort, if userspace ever CPU faults this object, but this might be > + * expensive, and so ideally should be avoided. > + * > + * On older kernels which lack the relevant small-bar uAPI support (see > + * also struct __drm_i915_memory_region_info.probed_cpu_visible_size), > + * usage of the flag will result in an error, but it should NEVER be > + * possible to end up with a small BAR configuration, assuming we can > + * also successfully load the i915 kernel module. In such cases the > + * entire I915_MEMORY_CLASS_DEVICE region will be CPU accessible, and as > + * such there are zero restrictions on where the object can be placed. > + */ > +#define I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS (1 << 0) > + __u32 flags; > + > + /** > + * @extensions: The chain of extensions to apply to this object. > + * > + * This will be useful in the future when we need to support several > + * different extensions, and we need to apply more than one when > + * creating the object. See struct i915_user_extension. > + * > + * If we don't supply any extensions then we get the same old gem_create > + * behaviour. > + * > + * For I915_GEM_CREATE_EXT_MEMORY_REGIONS usage see > + * struct drm_i915_gem_create_ext_memory_regions. > + * > + * For I915_GEM_CREATE_EXT_PROTECTED_CONTENT usage see > + * struct drm_i915_gem_create_ext_protected_content. > + */ > +#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0 > +#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1 > + __u64 extensions; > +}; > diff --git a/Documentation/gpu/rfc/i915_small_bar.rst b/Documentation/gpu/rfc/i915_small_bar.rst > new file mode 100644 > index 000000000000..a322481cea8b > --- /dev/null > +++ b/Documentation/gpu/rfc/i915_small_bar.rst > @@ -0,0 +1,47 @@ > +========================== > +I915 Small BAR RFC Section > +========================== > +Starting from DG2 we will have resizable BAR support for device local-memory(i.e > +I915_MEMORY_CLASS_DEVICE), but in some cases the final BAR size might still be > +smaller than the total probed_size. In such cases, only some subset of > +I915_MEMORY_CLASS_DEVICE will be CPU accessible(for example the first 256M), > +while the remainder is only accessible via the GPU. > + > +I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS flag > +---------------------------------------------- > +New gem_create_ext flag to tell the kernel that a BO will require CPU access. > +This becomes important when placing an object in I915_MEMORY_CLASS_DEVICE, where > +underneath the device has a small BAR, meaning only some portion of it is CPU > +accessible. Without this flag the kernel will assume that CPU access is not > +required, and prioritize using the non-CPU visible portion of > +I915_MEMORY_CLASS_DEVICE. > + > +.. kernel-doc:: Documentation/gpu/rfc/i915_small_bar.h > + :functions: __drm_i915_gem_create_ext > + > +probed_cpu_visible_size attribute > +--------------------------------- > +New struct__drm_i915_memory_region attribute which returns the total size of the > +CPU accessible portion, for the particular region. This should only be > +applicable for I915_MEMORY_CLASS_DEVICE. We also report the > +unallocated_cpu_visible_size, alongside the unallocated_size. > + > +Vulkan will need this as part of creating a separate VkMemoryHeap with the > +VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT set, to represent the CPU visible portion, > +where the total size of the heap needs to be known. It also wants to be able to > +give a rough estimate of how memory can potentially be allocated. > + > +.. kernel-doc:: Documentation/gpu/rfc/i915_small_bar.h > + :functions: __drm_i915_memory_region_info > + > +Error Capture restrictions > +-------------------------- > +With error capture we have two new restrictions: > + > + 1) Error capture is best effort on small BAR systems; if the pages are not > + CPU accessible, at the time of capture, then the kernel is free to skip > + trying to capture them. > + > + 2) On discrete we now reject error capture on recoverable contexts. In the > + future the kernel may want to blit during error capture, when for example > + something is not currently CPU accessible. > diff --git a/Documentation/gpu/rfc/index.rst b/Documentation/gpu/rfc/index.rst > index 91e93a705230..5a3bd3924ba6 100644 > --- a/Documentation/gpu/rfc/index.rst > +++ b/Documentation/gpu/rfc/index.rst > @@ -23,3 +23,7 @@ host such documentation: > .. toctree:: > > i915_scheduler.rst > + > +.. toctree:: > + > + i915_small_bar.rst ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4] drm/doc: add rfc section for small BAR uapi @ 2022-05-17 13:48 ` Tvrtko Ursulin 0 siblings, 0 replies; 9+ messages in thread From: Tvrtko Ursulin @ 2022-05-17 13:48 UTC (permalink / raw) To: Matthew Auld, intel-gfx Cc: Thomas Hellström, Jordan Justen, Lionel Landwerlin, Kenneth Graunke, Jon Bloomfield, dri-devel, Daniel Vetter, mesa-dev, Akeem G Abodunrin On 17/05/2022 11:52, Matthew Auld wrote: > Add an entry for the new uapi needed for small BAR on DG2+. > > v2: > - Some spelling fixes and other small tweaks. (Akeem & Thomas) > - Rework error capture interactions, including no longer needing > NEEDS_CPU_ACCESS for objects marked for capture. (Thomas) > - Add probed_cpu_visible_size. (Lionel) > v3: > - Drop the vma query for now. > - Add unallocated_cpu_visible_size as part of the region query. > - Improve the docs some more, including documenting the expected > behaviour on older kernels, since this came up in some offline > discussion. > v4: > - Various improvements all over. (Tvrtko) You can ignore my previous reply, the clarifications from v4 read good to me. Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Regards, Tvrtko > > Signed-off-by: Matthew Auld <matthew.auld@intel.com> > Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> > Cc: Jon Bloomfield <jon.bloomfield@intel.com> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > Cc: Jon Bloomfield <jon.bloomfield@intel.com> > Cc: Jordan Justen <jordan.l.justen@intel.com> > Cc: Kenneth Graunke <kenneth@whitecape.org> > Cc: Akeem G Abodunrin <akeem.g.abodunrin@intel.com> > Cc: mesa-dev@lists.freedesktop.org > --- > Documentation/gpu/rfc/i915_small_bar.h | 189 +++++++++++++++++++++++ > Documentation/gpu/rfc/i915_small_bar.rst | 47 ++++++ > Documentation/gpu/rfc/index.rst | 4 + > 3 files changed, 240 insertions(+) > create mode 100644 Documentation/gpu/rfc/i915_small_bar.h > create mode 100644 Documentation/gpu/rfc/i915_small_bar.rst > > diff --git a/Documentation/gpu/rfc/i915_small_bar.h b/Documentation/gpu/rfc/i915_small_bar.h > new file mode 100644 > index 000000000000..c676640b23ef > --- /dev/null > +++ b/Documentation/gpu/rfc/i915_small_bar.h > @@ -0,0 +1,189 @@ > +/** > + * struct __drm_i915_memory_region_info - Describes one region as known to the > + * driver. > + * > + * Note this is using both struct drm_i915_query_item and struct drm_i915_query. > + * For this new query we are adding the new query id DRM_I915_QUERY_MEMORY_REGIONS > + * at &drm_i915_query_item.query_id. > + */ > +struct __drm_i915_memory_region_info { > + /** @region: The class:instance pair encoding */ > + struct drm_i915_gem_memory_class_instance region; > + > + /** @rsvd0: MBZ */ > + __u32 rsvd0; > + > + /** > + * @probed_size: Memory probed by the driver (-1 = unknown) > + * > + * Note that it should not be possible to ever encounter a zero value > + * here, also note that no current region type will ever return -1 here. > + * Although for future region types, this might be a possibility. The > + * same applies to the other size fields. > + */ > + __u64 probed_size; > + > + /** > + * @unallocated_size: Estimate of memory remaining (-1 = unknown) > + * > + * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable accounting. > + * Without this (or if this is an older kernel) the value here will > + * always equal the @probed_size. Note this is only currently tracked > + * for I915_MEMORY_CLASS_DEVICE regions (for other types the value here > + * will always equal the @probed_size). > + */ > + __u64 unallocated_size; > + > + union { > + /** @rsvd1: MBZ */ > + __u64 rsvd1[8]; > + struct { > + /** > + * @probed_cpu_visible_size: Memory probed by the driver > + * that is CPU accessible. (-1 = unknown). > + * > + * This will be always be <= @probed_size, and the > + * remainder (if there is any) will not be CPU > + * accessible. > + * > + * On systems without small BAR, the @probed_size will > + * always equal the @probed_cpu_visible_size, since all > + * of it will be CPU accessible. > + * > + * Note this is only tracked for > + * I915_MEMORY_CLASS_DEVICE regions (for other types the > + * value here will always equal the @probed_size). > + * > + * Note that if the value returned here is zero, then > + * this must be an old kernel which lacks the relevant > + * small-bar uAPI support (including > + * I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS), but on > + * such systems we should never actually end up with a > + * small BAR configuration, assuming we are able to load > + * the kernel module. Hence it should be safe to treat > + * this the same as when @probed_cpu_visible_size == > + * @probed_size. > + */ > + __u64 probed_cpu_visible_size; > + > + /** > + * @unallocated_cpu_visible_size: Estimate of CPU > + * visible memory remaining (-1 = unknown). > + * > + * Note this is only tracked for > + * I915_MEMORY_CLASS_DEVICE regions (for other types the > + * value here will always equal the > + * @probed_cpu_visible_size). > + * > + * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable > + * accounting. Without this the value here will always > + * equal the @probed_cpu_visible_size. Note this is only > + * currently tracked for I915_MEMORY_CLASS_DEVICE > + * regions (for other types the value here will also > + * always equal the @probed_cpu_visible_size). > + * > + * If this is an older kernel the value here will be > + * zero, see also @probed_cpu_visible_size. > + */ > + __u64 unallocated_cpu_visible_size; > + }; > + }; > +}; > + > +/** > + * struct __drm_i915_gem_create_ext - Existing gem_create behaviour, with added > + * extension support using struct i915_user_extension. > + * > + * Note that new buffer flags should be added here, at least for the stuff that > + * is immutable. Previously we would have two ioctls, one to create the object > + * with gem_create, and another to apply various parameters, however this > + * creates some ambiguity for the params which are considered immutable. Also in > + * general we're phasing out the various SET/GET ioctls. > + */ > +struct __drm_i915_gem_create_ext { > + /** > + * @size: Requested size for the object. > + * > + * The (page-aligned) allocated size for the object will be returned. > + * > + * Note that for some devices we have might have further minimum > + * page-size restrictions (larger than 4K), like for device local-memory. > + * However in general the final size here should always reflect any > + * rounding up, if for example using the I915_GEM_CREATE_EXT_MEMORY_REGIONS > + * extension to place the object in device local-memory. The kernel will > + * always select the largest minimum page-size for the set of possible > + * placements as the value to use when rounding up the @size. > + */ > + __u64 size; > + > + /** > + * @handle: Returned handle for the object. > + * > + * Object handles are nonzero. > + */ > + __u32 handle; > + > + /** > + * @flags: Optional flags. > + * > + * Supported values: > + * > + * I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS - Signal to the kernel that > + * the object will need to be accessed via the CPU. > + * > + * Only valid when placing objects in I915_MEMORY_CLASS_DEVICE, and only > + * strictly required on configurations where some subset of the device > + * memory is directly visible/mappable through the CPU (which we also > + * call small BAR), like on some DG2+ systems. Note that this is quite > + * undesirable, but due to various factors like the client CPU, BIOS etc > + * it's something we can expect to see in the wild. See struct > + * __drm_i915_memory_region_info.probed_cpu_visible_size for how to > + * determine if this system applies. > + * > + * Note that one of the placements MUST be I915_MEMORY_CLASS_SYSTEM, to > + * ensure the kernel can always spill the allocation to system memory, > + * if the object can't be allocated in the mappable part of > + * I915_MEMORY_CLASS_DEVICE. > + * > + * Also note that since the kernel only supports flat-CCS on objects > + * that can *only* be placed in I915_MEMORY_CLASS_DEVICE, we therefore > + * don't support I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS together with > + * flat-CCS. > + * > + * Without this hint, the kernel will assume that non-mappable > + * I915_MEMORY_CLASS_DEVICE is preferred for this object. Note that the > + * kernel can still migrate the object to the mappable part, as a last > + * resort, if userspace ever CPU faults this object, but this might be > + * expensive, and so ideally should be avoided. > + * > + * On older kernels which lack the relevant small-bar uAPI support (see > + * also struct __drm_i915_memory_region_info.probed_cpu_visible_size), > + * usage of the flag will result in an error, but it should NEVER be > + * possible to end up with a small BAR configuration, assuming we can > + * also successfully load the i915 kernel module. In such cases the > + * entire I915_MEMORY_CLASS_DEVICE region will be CPU accessible, and as > + * such there are zero restrictions on where the object can be placed. > + */ > +#define I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS (1 << 0) > + __u32 flags; > + > + /** > + * @extensions: The chain of extensions to apply to this object. > + * > + * This will be useful in the future when we need to support several > + * different extensions, and we need to apply more than one when > + * creating the object. See struct i915_user_extension. > + * > + * If we don't supply any extensions then we get the same old gem_create > + * behaviour. > + * > + * For I915_GEM_CREATE_EXT_MEMORY_REGIONS usage see > + * struct drm_i915_gem_create_ext_memory_regions. > + * > + * For I915_GEM_CREATE_EXT_PROTECTED_CONTENT usage see > + * struct drm_i915_gem_create_ext_protected_content. > + */ > +#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0 > +#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1 > + __u64 extensions; > +}; > diff --git a/Documentation/gpu/rfc/i915_small_bar.rst b/Documentation/gpu/rfc/i915_small_bar.rst > new file mode 100644 > index 000000000000..a322481cea8b > --- /dev/null > +++ b/Documentation/gpu/rfc/i915_small_bar.rst > @@ -0,0 +1,47 @@ > +========================== > +I915 Small BAR RFC Section > +========================== > +Starting from DG2 we will have resizable BAR support for device local-memory(i.e > +I915_MEMORY_CLASS_DEVICE), but in some cases the final BAR size might still be > +smaller than the total probed_size. In such cases, only some subset of > +I915_MEMORY_CLASS_DEVICE will be CPU accessible(for example the first 256M), > +while the remainder is only accessible via the GPU. > + > +I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS flag > +---------------------------------------------- > +New gem_create_ext flag to tell the kernel that a BO will require CPU access. > +This becomes important when placing an object in I915_MEMORY_CLASS_DEVICE, where > +underneath the device has a small BAR, meaning only some portion of it is CPU > +accessible. Without this flag the kernel will assume that CPU access is not > +required, and prioritize using the non-CPU visible portion of > +I915_MEMORY_CLASS_DEVICE. > + > +.. kernel-doc:: Documentation/gpu/rfc/i915_small_bar.h > + :functions: __drm_i915_gem_create_ext > + > +probed_cpu_visible_size attribute > +--------------------------------- > +New struct__drm_i915_memory_region attribute which returns the total size of the > +CPU accessible portion, for the particular region. This should only be > +applicable for I915_MEMORY_CLASS_DEVICE. We also report the > +unallocated_cpu_visible_size, alongside the unallocated_size. > + > +Vulkan will need this as part of creating a separate VkMemoryHeap with the > +VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT set, to represent the CPU visible portion, > +where the total size of the heap needs to be known. It also wants to be able to > +give a rough estimate of how memory can potentially be allocated. > + > +.. kernel-doc:: Documentation/gpu/rfc/i915_small_bar.h > + :functions: __drm_i915_memory_region_info > + > +Error Capture restrictions > +-------------------------- > +With error capture we have two new restrictions: > + > + 1) Error capture is best effort on small BAR systems; if the pages are not > + CPU accessible, at the time of capture, then the kernel is free to skip > + trying to capture them. > + > + 2) On discrete we now reject error capture on recoverable contexts. In the > + future the kernel may want to blit during error capture, when for example > + something is not currently CPU accessible. > diff --git a/Documentation/gpu/rfc/index.rst b/Documentation/gpu/rfc/index.rst > index 91e93a705230..5a3bd3924ba6 100644 > --- a/Documentation/gpu/rfc/index.rst > +++ b/Documentation/gpu/rfc/index.rst > @@ -23,3 +23,7 @@ host such documentation: > .. toctree:: > > i915_scheduler.rst > + > +.. toctree:: > + > + i915_small_bar.rst ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Intel-gfx] [PATCH v4] drm/doc: add rfc section for small BAR uapi 2022-05-17 13:48 ` Tvrtko Ursulin @ 2022-05-17 18:02 ` Abodunrin, Akeem G -1 siblings, 0 replies; 9+ messages in thread From: Abodunrin, Akeem G @ 2022-05-17 18:02 UTC (permalink / raw) To: Tvrtko Ursulin, Auld, Matthew, intel-gfx@lists.freedesktop.org Cc: Thomas Hellström, Kenneth Graunke, dri-devel@lists.freedesktop.org, Daniel Vetter, mesa-dev@lists.freedesktop.org > -----Original Message----- > From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> > Sent: Tuesday, May 17, 2022 6:49 AM > To: Auld, Matthew <matthew.auld@intel.com>; intel-gfx@lists.freedesktop.org > Cc: dri-devel@lists.freedesktop.org; Thomas Hellström > <thomas.hellstrom@linux.intel.com>; Landwerlin, Lionel G > <lionel.g.landwerlin@intel.com>; Bloomfield, Jon <jon.bloomfield@intel.com>; > Daniel Vetter <daniel.vetter@ffwll.ch>; Justen, Jordan L > <jordan.l.justen@intel.com>; Kenneth Graunke <kenneth@whitecape.org>; > Abodunrin, Akeem G <akeem.g.abodunrin@intel.com>; mesa- > dev@lists.freedesktop.org > Subject: Re: [PATCH v4] drm/doc: add rfc section for small BAR uapi > > > On 17/05/2022 11:52, Matthew Auld wrote: > > Add an entry for the new uapi needed for small BAR on DG2+. > > > > v2: > > - Some spelling fixes and other small tweaks. (Akeem & Thomas) > > - Rework error capture interactions, including no longer needing > > NEEDS_CPU_ACCESS for objects marked for capture. (Thomas) > > - Add probed_cpu_visible_size. (Lionel) > > v3: > > - Drop the vma query for now. > > - Add unallocated_cpu_visible_size as part of the region query. > > - Improve the docs some more, including documenting the expected > > behaviour on older kernels, since this came up in some offline > > discussion. > > v4: > > - Various improvements all over. (Tvrtko) > > You can ignore my previous reply, the clarifications from v4 read good to me. > > Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> The patch looks good to me as well... Acked-by: Akeem G Abodunrin <akeem.g.abodunrin@intel.com> > > Regards, > > Tvrtko > > > > > Signed-off-by: Matthew Auld <matthew.auld@intel.com> > > Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> > > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> > > Cc: Jon Bloomfield <jon.bloomfield@intel.com> > > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > > Cc: Jon Bloomfield <jon.bloomfield@intel.com> > > Cc: Jordan Justen <jordan.l.justen@intel.com> > > Cc: Kenneth Graunke <kenneth@whitecape.org> > > Cc: Akeem G Abodunrin <akeem.g.abodunrin@intel.com> > > Cc: mesa-dev@lists.freedesktop.org > > --- > > Documentation/gpu/rfc/i915_small_bar.h | 189 > +++++++++++++++++++++++ > > Documentation/gpu/rfc/i915_small_bar.rst | 47 ++++++ > > Documentation/gpu/rfc/index.rst | 4 + > > 3 files changed, 240 insertions(+) > > create mode 100644 Documentation/gpu/rfc/i915_small_bar.h > > create mode 100644 Documentation/gpu/rfc/i915_small_bar.rst > > > > diff --git a/Documentation/gpu/rfc/i915_small_bar.h > > b/Documentation/gpu/rfc/i915_small_bar.h > > new file mode 100644 > > index 000000000000..c676640b23ef > > --- /dev/null > > +++ b/Documentation/gpu/rfc/i915_small_bar.h > > @@ -0,0 +1,189 @@ > > +/** > > + * struct __drm_i915_memory_region_info - Describes one region as > > +known to the > > + * driver. > > + * > > + * Note this is using both struct drm_i915_query_item and struct > drm_i915_query. > > + * For this new query we are adding the new query id > > +DRM_I915_QUERY_MEMORY_REGIONS > > + * at &drm_i915_query_item.query_id. > > + */ > > +struct __drm_i915_memory_region_info { > > + /** @region: The class:instance pair encoding */ > > + struct drm_i915_gem_memory_class_instance region; > > + > > + /** @rsvd0: MBZ */ > > + __u32 rsvd0; > > + > > + /** > > + * @probed_size: Memory probed by the driver (-1 = unknown) > > + * > > + * Note that it should not be possible to ever encounter a zero value > > + * here, also note that no current region type will ever return -1 here. > > + * Although for future region types, this might be a possibility. The > > + * same applies to the other size fields. > > + */ > > + __u64 probed_size; > > + > > + /** > > + * @unallocated_size: Estimate of memory remaining (-1 = unknown) > > + * > > + * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable > accounting. > > + * Without this (or if this is an older kernel) the value here will > > + * always equal the @probed_size. Note this is only currently tracked > > + * for I915_MEMORY_CLASS_DEVICE regions (for other types the value > here > > + * will always equal the @probed_size). > > + */ > > + __u64 unallocated_size; > > + > > + union { > > + /** @rsvd1: MBZ */ > > + __u64 rsvd1[8]; > > + struct { > > + /** > > + * @probed_cpu_visible_size: Memory probed by the > driver > > + * that is CPU accessible. (-1 = unknown). > > + * > > + * This will be always be <= @probed_size, and the > > + * remainder (if there is any) will not be CPU > > + * accessible. > > + * > > + * On systems without small BAR, the @probed_size will > > + * always equal the @probed_cpu_visible_size, since all > > + * of it will be CPU accessible. > > + * > > + * Note this is only tracked for > > + * I915_MEMORY_CLASS_DEVICE regions (for other > types the > > + * value here will always equal the @probed_size). > > + * > > + * Note that if the value returned here is zero, then > > + * this must be an old kernel which lacks the relevant > > + * small-bar uAPI support (including > > + * > I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS), but on > > + * such systems we should never actually end up with a > > + * small BAR configuration, assuming we are able to > load > > + * the kernel module. Hence it should be safe to treat > > + * this the same as when @probed_cpu_visible_size == > > + * @probed_size. > > + */ > > + __u64 probed_cpu_visible_size; > > + > > + /** > > + * @unallocated_cpu_visible_size: Estimate of CPU > > + * visible memory remaining (-1 = unknown). > > + * > > + * Note this is only tracked for > > + * I915_MEMORY_CLASS_DEVICE regions (for other > types the > > + * value here will always equal the > > + * @probed_cpu_visible_size). > > + * > > + * Requires CAP_PERFMON or CAP_SYS_ADMIN to get > reliable > > + * accounting. Without this the value here will always > > + * equal the @probed_cpu_visible_size. Note this is only > > + * currently tracked for I915_MEMORY_CLASS_DEVICE > > + * regions (for other types the value here will also > > + * always equal the @probed_cpu_visible_size). > > + * > > + * If this is an older kernel the value here will be > > + * zero, see also @probed_cpu_visible_size. > > + */ > > + __u64 unallocated_cpu_visible_size; > > + }; > > + }; > > +}; > > + > > +/** > > + * struct __drm_i915_gem_create_ext - Existing gem_create behaviour, > > +with added > > + * extension support using struct i915_user_extension. > > + * > > + * Note that new buffer flags should be added here, at least for the > > +stuff that > > + * is immutable. Previously we would have two ioctls, one to create > > +the object > > + * with gem_create, and another to apply various parameters, however > > +this > > + * creates some ambiguity for the params which are considered > > +immutable. Also in > > + * general we're phasing out the various SET/GET ioctls. > > + */ > > +struct __drm_i915_gem_create_ext { > > + /** > > + * @size: Requested size for the object. > > + * > > + * The (page-aligned) allocated size for the object will be returned. > > + * > > + * Note that for some devices we have might have further minimum > > + * page-size restrictions (larger than 4K), like for device local-memory. > > + * However in general the final size here should always reflect any > > + * rounding up, if for example using the > I915_GEM_CREATE_EXT_MEMORY_REGIONS > > + * extension to place the object in device local-memory. The kernel will > > + * always select the largest minimum page-size for the set of possible > > + * placements as the value to use when rounding up the @size. > > + */ > > + __u64 size; > > + > > + /** > > + * @handle: Returned handle for the object. > > + * > > + * Object handles are nonzero. > > + */ > > + __u32 handle; > > + > > + /** > > + * @flags: Optional flags. > > + * > > + * Supported values: > > + * > > + * I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS - Signal to the > kernel that > > + * the object will need to be accessed via the CPU. > > + * > > + * Only valid when placing objects in I915_MEMORY_CLASS_DEVICE, > and only > > + * strictly required on configurations where some subset of the device > > + * memory is directly visible/mappable through the CPU (which we also > > + * call small BAR), like on some DG2+ systems. Note that this is quite > > + * undesirable, but due to various factors like the client CPU, BIOS etc > > + * it's something we can expect to see in the wild. See struct > > + * __drm_i915_memory_region_info.probed_cpu_visible_size for how > to > > + * determine if this system applies. > > + * > > + * Note that one of the placements MUST be > I915_MEMORY_CLASS_SYSTEM, to > > + * ensure the kernel can always spill the allocation to system memory, > > + * if the object can't be allocated in the mappable part of > > + * I915_MEMORY_CLASS_DEVICE. > > + * > > + * Also note that since the kernel only supports flat-CCS on objects > > + * that can *only* be placed in I915_MEMORY_CLASS_DEVICE, we > therefore > > + * don't support I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS > together with > > + * flat-CCS. > > + * > > + * Without this hint, the kernel will assume that non-mappable > > + * I915_MEMORY_CLASS_DEVICE is preferred for this object. Note that > the > > + * kernel can still migrate the object to the mappable part, as a last > > + * resort, if userspace ever CPU faults this object, but this might be > > + * expensive, and so ideally should be avoided. > > + * > > + * On older kernels which lack the relevant small-bar uAPI support (see > > + * also struct > __drm_i915_memory_region_info.probed_cpu_visible_size), > > + * usage of the flag will result in an error, but it should NEVER be > > + * possible to end up with a small BAR configuration, assuming we can > > + * also successfully load the i915 kernel module. In such cases the > > + * entire I915_MEMORY_CLASS_DEVICE region will be CPU accessible, > and as > > + * such there are zero restrictions on where the object can be placed. > > + */ > > +#define I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS (1 << 0) > > + __u32 flags; > > + > > + /** > > + * @extensions: The chain of extensions to apply to this object. > > + * > > + * This will be useful in the future when we need to support several > > + * different extensions, and we need to apply more than one when > > + * creating the object. See struct i915_user_extension. > > + * > > + * If we don't supply any extensions then we get the same old > gem_create > > + * behaviour. > > + * > > + * For I915_GEM_CREATE_EXT_MEMORY_REGIONS usage see > > + * struct drm_i915_gem_create_ext_memory_regions. > > + * > > + * For I915_GEM_CREATE_EXT_PROTECTED_CONTENT usage see > > + * struct drm_i915_gem_create_ext_protected_content. > > + */ > > +#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0 #define > > +I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1 > > + __u64 extensions; > > +}; > > diff --git a/Documentation/gpu/rfc/i915_small_bar.rst > > b/Documentation/gpu/rfc/i915_small_bar.rst > > new file mode 100644 > > index 000000000000..a322481cea8b > > --- /dev/null > > +++ b/Documentation/gpu/rfc/i915_small_bar.rst > > @@ -0,0 +1,47 @@ > > +========================== > > +I915 Small BAR RFC Section > > +========================== > > +Starting from DG2 we will have resizable BAR support for device > > +local-memory(i.e I915_MEMORY_CLASS_DEVICE), but in some cases the > > +final BAR size might still be smaller than the total probed_size. In > > +such cases, only some subset of I915_MEMORY_CLASS_DEVICE will be CPU > > +accessible(for example the first 256M), while the remainder is only accessible > via the GPU. > > + > > +I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS flag > > +---------------------------------------------- > > +New gem_create_ext flag to tell the kernel that a BO will require CPU access. > > +This becomes important when placing an object in > > +I915_MEMORY_CLASS_DEVICE, where underneath the device has a small > > +BAR, meaning only some portion of it is CPU accessible. Without this > > +flag the kernel will assume that CPU access is not required, and > > +prioritize using the non-CPU visible portion of > I915_MEMORY_CLASS_DEVICE. > > + > > +.. kernel-doc:: Documentation/gpu/rfc/i915_small_bar.h > > + :functions: __drm_i915_gem_create_ext > > + > > +probed_cpu_visible_size attribute > > +--------------------------------- > > +New struct__drm_i915_memory_region attribute which returns the total > > +size of the CPU accessible portion, for the particular region. This > > +should only be applicable for I915_MEMORY_CLASS_DEVICE. We also > > +report the unallocated_cpu_visible_size, alongside the unallocated_size. > > + > > +Vulkan will need this as part of creating a separate VkMemoryHeap > > +with the VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT set, to represent the > > +CPU visible portion, where the total size of the heap needs to be > > +known. It also wants to be able to give a rough estimate of how memory can > potentially be allocated. > > + > > +.. kernel-doc:: Documentation/gpu/rfc/i915_small_bar.h > > + :functions: __drm_i915_memory_region_info > > + > > +Error Capture restrictions > > +-------------------------- > > +With error capture we have two new restrictions: > > + > > + 1) Error capture is best effort on small BAR systems; if the pages are not > > + CPU accessible, at the time of capture, then the kernel is free to skip > > + trying to capture them. > > + > > + 2) On discrete we now reject error capture on recoverable contexts. In the > > + future the kernel may want to blit during error capture, when for example > > + something is not currently CPU accessible. > > diff --git a/Documentation/gpu/rfc/index.rst > > b/Documentation/gpu/rfc/index.rst index 91e93a705230..5a3bd3924ba6 > > 100644 > > --- a/Documentation/gpu/rfc/index.rst > > +++ b/Documentation/gpu/rfc/index.rst > > @@ -23,3 +23,7 @@ host such documentation: > > .. toctree:: > > > > i915_scheduler.rst > > + > > +.. toctree:: > > + > > + i915_small_bar.rst ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH v4] drm/doc: add rfc section for small BAR uapi @ 2022-05-17 18:02 ` Abodunrin, Akeem G 0 siblings, 0 replies; 9+ messages in thread From: Abodunrin, Akeem G @ 2022-05-17 18:02 UTC (permalink / raw) To: Tvrtko Ursulin, Auld, Matthew, intel-gfx@lists.freedesktop.org Cc: Thomas Hellström, Justen, Jordan L, Landwerlin, Lionel G, Kenneth Graunke, Bloomfield, Jon, dri-devel@lists.freedesktop.org, Daniel Vetter, mesa-dev@lists.freedesktop.org > -----Original Message----- > From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> > Sent: Tuesday, May 17, 2022 6:49 AM > To: Auld, Matthew <matthew.auld@intel.com>; intel-gfx@lists.freedesktop.org > Cc: dri-devel@lists.freedesktop.org; Thomas Hellström > <thomas.hellstrom@linux.intel.com>; Landwerlin, Lionel G > <lionel.g.landwerlin@intel.com>; Bloomfield, Jon <jon.bloomfield@intel.com>; > Daniel Vetter <daniel.vetter@ffwll.ch>; Justen, Jordan L > <jordan.l.justen@intel.com>; Kenneth Graunke <kenneth@whitecape.org>; > Abodunrin, Akeem G <akeem.g.abodunrin@intel.com>; mesa- > dev@lists.freedesktop.org > Subject: Re: [PATCH v4] drm/doc: add rfc section for small BAR uapi > > > On 17/05/2022 11:52, Matthew Auld wrote: > > Add an entry for the new uapi needed for small BAR on DG2+. > > > > v2: > > - Some spelling fixes and other small tweaks. (Akeem & Thomas) > > - Rework error capture interactions, including no longer needing > > NEEDS_CPU_ACCESS for objects marked for capture. (Thomas) > > - Add probed_cpu_visible_size. (Lionel) > > v3: > > - Drop the vma query for now. > > - Add unallocated_cpu_visible_size as part of the region query. > > - Improve the docs some more, including documenting the expected > > behaviour on older kernels, since this came up in some offline > > discussion. > > v4: > > - Various improvements all over. (Tvrtko) > > You can ignore my previous reply, the clarifications from v4 read good to me. > > Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> The patch looks good to me as well... Acked-by: Akeem G Abodunrin <akeem.g.abodunrin@intel.com> > > Regards, > > Tvrtko > > > > > Signed-off-by: Matthew Auld <matthew.auld@intel.com> > > Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> > > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> > > Cc: Jon Bloomfield <jon.bloomfield@intel.com> > > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > > Cc: Jon Bloomfield <jon.bloomfield@intel.com> > > Cc: Jordan Justen <jordan.l.justen@intel.com> > > Cc: Kenneth Graunke <kenneth@whitecape.org> > > Cc: Akeem G Abodunrin <akeem.g.abodunrin@intel.com> > > Cc: mesa-dev@lists.freedesktop.org > > --- > > Documentation/gpu/rfc/i915_small_bar.h | 189 > +++++++++++++++++++++++ > > Documentation/gpu/rfc/i915_small_bar.rst | 47 ++++++ > > Documentation/gpu/rfc/index.rst | 4 + > > 3 files changed, 240 insertions(+) > > create mode 100644 Documentation/gpu/rfc/i915_small_bar.h > > create mode 100644 Documentation/gpu/rfc/i915_small_bar.rst > > > > diff --git a/Documentation/gpu/rfc/i915_small_bar.h > > b/Documentation/gpu/rfc/i915_small_bar.h > > new file mode 100644 > > index 000000000000..c676640b23ef > > --- /dev/null > > +++ b/Documentation/gpu/rfc/i915_small_bar.h > > @@ -0,0 +1,189 @@ > > +/** > > + * struct __drm_i915_memory_region_info - Describes one region as > > +known to the > > + * driver. > > + * > > + * Note this is using both struct drm_i915_query_item and struct > drm_i915_query. > > + * For this new query we are adding the new query id > > +DRM_I915_QUERY_MEMORY_REGIONS > > + * at &drm_i915_query_item.query_id. > > + */ > > +struct __drm_i915_memory_region_info { > > + /** @region: The class:instance pair encoding */ > > + struct drm_i915_gem_memory_class_instance region; > > + > > + /** @rsvd0: MBZ */ > > + __u32 rsvd0; > > + > > + /** > > + * @probed_size: Memory probed by the driver (-1 = unknown) > > + * > > + * Note that it should not be possible to ever encounter a zero value > > + * here, also note that no current region type will ever return -1 here. > > + * Although for future region types, this might be a possibility. The > > + * same applies to the other size fields. > > + */ > > + __u64 probed_size; > > + > > + /** > > + * @unallocated_size: Estimate of memory remaining (-1 = unknown) > > + * > > + * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable > accounting. > > + * Without this (or if this is an older kernel) the value here will > > + * always equal the @probed_size. Note this is only currently tracked > > + * for I915_MEMORY_CLASS_DEVICE regions (for other types the value > here > > + * will always equal the @probed_size). > > + */ > > + __u64 unallocated_size; > > + > > + union { > > + /** @rsvd1: MBZ */ > > + __u64 rsvd1[8]; > > + struct { > > + /** > > + * @probed_cpu_visible_size: Memory probed by the > driver > > + * that is CPU accessible. (-1 = unknown). > > + * > > + * This will be always be <= @probed_size, and the > > + * remainder (if there is any) will not be CPU > > + * accessible. > > + * > > + * On systems without small BAR, the @probed_size will > > + * always equal the @probed_cpu_visible_size, since all > > + * of it will be CPU accessible. > > + * > > + * Note this is only tracked for > > + * I915_MEMORY_CLASS_DEVICE regions (for other > types the > > + * value here will always equal the @probed_size). > > + * > > + * Note that if the value returned here is zero, then > > + * this must be an old kernel which lacks the relevant > > + * small-bar uAPI support (including > > + * > I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS), but on > > + * such systems we should never actually end up with a > > + * small BAR configuration, assuming we are able to > load > > + * the kernel module. Hence it should be safe to treat > > + * this the same as when @probed_cpu_visible_size == > > + * @probed_size. > > + */ > > + __u64 probed_cpu_visible_size; > > + > > + /** > > + * @unallocated_cpu_visible_size: Estimate of CPU > > + * visible memory remaining (-1 = unknown). > > + * > > + * Note this is only tracked for > > + * I915_MEMORY_CLASS_DEVICE regions (for other > types the > > + * value here will always equal the > > + * @probed_cpu_visible_size). > > + * > > + * Requires CAP_PERFMON or CAP_SYS_ADMIN to get > reliable > > + * accounting. Without this the value here will always > > + * equal the @probed_cpu_visible_size. Note this is only > > + * currently tracked for I915_MEMORY_CLASS_DEVICE > > + * regions (for other types the value here will also > > + * always equal the @probed_cpu_visible_size). > > + * > > + * If this is an older kernel the value here will be > > + * zero, see also @probed_cpu_visible_size. > > + */ > > + __u64 unallocated_cpu_visible_size; > > + }; > > + }; > > +}; > > + > > +/** > > + * struct __drm_i915_gem_create_ext - Existing gem_create behaviour, > > +with added > > + * extension support using struct i915_user_extension. > > + * > > + * Note that new buffer flags should be added here, at least for the > > +stuff that > > + * is immutable. Previously we would have two ioctls, one to create > > +the object > > + * with gem_create, and another to apply various parameters, however > > +this > > + * creates some ambiguity for the params which are considered > > +immutable. Also in > > + * general we're phasing out the various SET/GET ioctls. > > + */ > > +struct __drm_i915_gem_create_ext { > > + /** > > + * @size: Requested size for the object. > > + * > > + * The (page-aligned) allocated size for the object will be returned. > > + * > > + * Note that for some devices we have might have further minimum > > + * page-size restrictions (larger than 4K), like for device local-memory. > > + * However in general the final size here should always reflect any > > + * rounding up, if for example using the > I915_GEM_CREATE_EXT_MEMORY_REGIONS > > + * extension to place the object in device local-memory. The kernel will > > + * always select the largest minimum page-size for the set of possible > > + * placements as the value to use when rounding up the @size. > > + */ > > + __u64 size; > > + > > + /** > > + * @handle: Returned handle for the object. > > + * > > + * Object handles are nonzero. > > + */ > > + __u32 handle; > > + > > + /** > > + * @flags: Optional flags. > > + * > > + * Supported values: > > + * > > + * I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS - Signal to the > kernel that > > + * the object will need to be accessed via the CPU. > > + * > > + * Only valid when placing objects in I915_MEMORY_CLASS_DEVICE, > and only > > + * strictly required on configurations where some subset of the device > > + * memory is directly visible/mappable through the CPU (which we also > > + * call small BAR), like on some DG2+ systems. Note that this is quite > > + * undesirable, but due to various factors like the client CPU, BIOS etc > > + * it's something we can expect to see in the wild. See struct > > + * __drm_i915_memory_region_info.probed_cpu_visible_size for how > to > > + * determine if this system applies. > > + * > > + * Note that one of the placements MUST be > I915_MEMORY_CLASS_SYSTEM, to > > + * ensure the kernel can always spill the allocation to system memory, > > + * if the object can't be allocated in the mappable part of > > + * I915_MEMORY_CLASS_DEVICE. > > + * > > + * Also note that since the kernel only supports flat-CCS on objects > > + * that can *only* be placed in I915_MEMORY_CLASS_DEVICE, we > therefore > > + * don't support I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS > together with > > + * flat-CCS. > > + * > > + * Without this hint, the kernel will assume that non-mappable > > + * I915_MEMORY_CLASS_DEVICE is preferred for this object. Note that > the > > + * kernel can still migrate the object to the mappable part, as a last > > + * resort, if userspace ever CPU faults this object, but this might be > > + * expensive, and so ideally should be avoided. > > + * > > + * On older kernels which lack the relevant small-bar uAPI support (see > > + * also struct > __drm_i915_memory_region_info.probed_cpu_visible_size), > > + * usage of the flag will result in an error, but it should NEVER be > > + * possible to end up with a small BAR configuration, assuming we can > > + * also successfully load the i915 kernel module. In such cases the > > + * entire I915_MEMORY_CLASS_DEVICE region will be CPU accessible, > and as > > + * such there are zero restrictions on where the object can be placed. > > + */ > > +#define I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS (1 << 0) > > + __u32 flags; > > + > > + /** > > + * @extensions: The chain of extensions to apply to this object. > > + * > > + * This will be useful in the future when we need to support several > > + * different extensions, and we need to apply more than one when > > + * creating the object. See struct i915_user_extension. > > + * > > + * If we don't supply any extensions then we get the same old > gem_create > > + * behaviour. > > + * > > + * For I915_GEM_CREATE_EXT_MEMORY_REGIONS usage see > > + * struct drm_i915_gem_create_ext_memory_regions. > > + * > > + * For I915_GEM_CREATE_EXT_PROTECTED_CONTENT usage see > > + * struct drm_i915_gem_create_ext_protected_content. > > + */ > > +#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0 #define > > +I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1 > > + __u64 extensions; > > +}; > > diff --git a/Documentation/gpu/rfc/i915_small_bar.rst > > b/Documentation/gpu/rfc/i915_small_bar.rst > > new file mode 100644 > > index 000000000000..a322481cea8b > > --- /dev/null > > +++ b/Documentation/gpu/rfc/i915_small_bar.rst > > @@ -0,0 +1,47 @@ > > +========================== > > +I915 Small BAR RFC Section > > +========================== > > +Starting from DG2 we will have resizable BAR support for device > > +local-memory(i.e I915_MEMORY_CLASS_DEVICE), but in some cases the > > +final BAR size might still be smaller than the total probed_size. In > > +such cases, only some subset of I915_MEMORY_CLASS_DEVICE will be CPU > > +accessible(for example the first 256M), while the remainder is only accessible > via the GPU. > > + > > +I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS flag > > +---------------------------------------------- > > +New gem_create_ext flag to tell the kernel that a BO will require CPU access. > > +This becomes important when placing an object in > > +I915_MEMORY_CLASS_DEVICE, where underneath the device has a small > > +BAR, meaning only some portion of it is CPU accessible. Without this > > +flag the kernel will assume that CPU access is not required, and > > +prioritize using the non-CPU visible portion of > I915_MEMORY_CLASS_DEVICE. > > + > > +.. kernel-doc:: Documentation/gpu/rfc/i915_small_bar.h > > + :functions: __drm_i915_gem_create_ext > > + > > +probed_cpu_visible_size attribute > > +--------------------------------- > > +New struct__drm_i915_memory_region attribute which returns the total > > +size of the CPU accessible portion, for the particular region. This > > +should only be applicable for I915_MEMORY_CLASS_DEVICE. We also > > +report the unallocated_cpu_visible_size, alongside the unallocated_size. > > + > > +Vulkan will need this as part of creating a separate VkMemoryHeap > > +with the VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT set, to represent the > > +CPU visible portion, where the total size of the heap needs to be > > +known. It also wants to be able to give a rough estimate of how memory can > potentially be allocated. > > + > > +.. kernel-doc:: Documentation/gpu/rfc/i915_small_bar.h > > + :functions: __drm_i915_memory_region_info > > + > > +Error Capture restrictions > > +-------------------------- > > +With error capture we have two new restrictions: > > + > > + 1) Error capture is best effort on small BAR systems; if the pages are not > > + CPU accessible, at the time of capture, then the kernel is free to skip > > + trying to capture them. > > + > > + 2) On discrete we now reject error capture on recoverable contexts. In the > > + future the kernel may want to blit during error capture, when for example > > + something is not currently CPU accessible. > > diff --git a/Documentation/gpu/rfc/index.rst > > b/Documentation/gpu/rfc/index.rst index 91e93a705230..5a3bd3924ba6 > > 100644 > > --- a/Documentation/gpu/rfc/index.rst > > +++ b/Documentation/gpu/rfc/index.rst > > @@ -23,3 +23,7 @@ host such documentation: > > .. toctree:: > > > > i915_scheduler.rst > > + > > +.. toctree:: > > + > > + i915_small_bar.rst ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/doc: add rfc section for small BAR uapi (rev3) 2022-05-17 10:52 ` Matthew Auld (?) (?) @ 2022-05-17 15:42 ` Patchwork -1 siblings, 0 replies; 9+ messages in thread From: Patchwork @ 2022-05-17 15:42 UTC (permalink / raw) To: Matthew Auld; +Cc: intel-gfx == Series Details == Series: drm/doc: add rfc section for small BAR uapi (rev3) URL : https://patchwork.freedesktop.org/series/102875/ State : warning == Summary == Error: dim checkpatch failed 9a6a6e3a4d2e drm/doc: add rfc section for small BAR uapi -:31: WARNING:BAD_SIGN_OFF: Duplicate signature #31: Cc: Jon Bloomfield <jon.bloomfield@intel.com> -:39: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #39: new file mode 100644 -:44: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier tag in line 1 #44: FILE: Documentation/gpu/rfc/i915_small_bar.h:1: +/** -:239: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier tag in line 1 #239: FILE: Documentation/gpu/rfc/i915_small_bar.rst:1: +========================== total: 0 errors, 4 warnings, 0 checks, 243 lines checked ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/doc: add rfc section for small BAR uapi (rev3) 2022-05-17 10:52 ` Matthew Auld ` (2 preceding siblings ...) (?) @ 2022-05-17 16:03 ` Patchwork -1 siblings, 0 replies; 9+ messages in thread From: Patchwork @ 2022-05-17 16:03 UTC (permalink / raw) To: Matthew Auld; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 11555 bytes --] == Series Details == Series: drm/doc: add rfc section for small BAR uapi (rev3) URL : https://patchwork.freedesktop.org/series/102875/ State : success == Summary == CI Bug Log - changes from CI_DRM_11665 -> Patchwork_102875v3 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/index.html Participating hosts (38 -> 41) ------------------------------ Additional (4): fi-kbl-soraka bat-adlm-1 fi-rkl-11600 bat-dg2-9 Missing (1): fi-hsw-4770 Known issues ------------ Here are the changes found in Patchwork_102875v3 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_exec_fence@basic-busy@bcs0: - fi-kbl-soraka: NOTRUN -> [SKIP][1] ([fdo#109271]) +9 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-kbl-soraka/igt@gem_exec_fence@basic-busy@bcs0.html * igt@gem_huc_copy@huc-copy: - fi-kbl-soraka: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#2190]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html - fi-rkl-11600: NOTRUN -> [SKIP][3] ([i915#2190]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-rkl-11600/igt@gem_huc_copy@huc-copy.html * igt@gem_lmem_swapping@basic: - fi-rkl-11600: NOTRUN -> [SKIP][4] ([i915#4613]) +3 similar issues [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-rkl-11600/igt@gem_lmem_swapping@basic.html - fi-kbl-soraka: NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#4613]) +3 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html * igt@gem_tiled_pread_basic: - fi-rkl-11600: NOTRUN -> [SKIP][6] ([i915#3282]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-rkl-11600/igt@gem_tiled_pread_basic.html * igt@i915_pm_backlight@basic-brightness: - fi-rkl-11600: NOTRUN -> [SKIP][7] ([i915#3012]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-rkl-11600/igt@i915_pm_backlight@basic-brightness.html * igt@i915_selftest@live@gt_engines: - bat-dg1-5: [PASS][8] -> [INCOMPLETE][9] ([i915#4418]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/bat-dg1-5/igt@i915_selftest@live@gt_engines.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/bat-dg1-5/igt@i915_selftest@live@gt_engines.html * igt@i915_selftest@live@gt_pm: - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][10] ([i915#1886]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html * igt@i915_selftest@live@mman: - fi-bdw-5557u: [PASS][11] -> [INCOMPLETE][12] ([i915#5704]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/fi-bdw-5557u/igt@i915_selftest@live@mman.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-bdw-5557u/igt@i915_selftest@live@mman.html * igt@i915_selftest@live@requests: - fi-pnv-d510: [PASS][13] -> [DMESG-FAIL][14] ([i915#4528]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/fi-pnv-d510/igt@i915_selftest@live@requests.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-pnv-d510/igt@i915_selftest@live@requests.html * igt@i915_suspend@basic-s3-without-i915: - fi-rkl-11600: NOTRUN -> [INCOMPLETE][15] ([i915#5982]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-rkl-11600/igt@i915_suspend@basic-s3-without-i915.html * igt@kms_chamelium@common-hpd-after-suspend: - fi-ivb-3770: NOTRUN -> [SKIP][16] ([fdo#109271] / [fdo#111827]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-ivb-3770/igt@kms_chamelium@common-hpd-after-suspend.html - fi-snb-2600: NOTRUN -> [SKIP][17] ([fdo#109271] / [fdo#111827]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-snb-2600/igt@kms_chamelium@common-hpd-after-suspend.html * igt@kms_chamelium@dp-crc-fast: - fi-rkl-11600: NOTRUN -> [SKIP][18] ([fdo#111827]) +7 similar issues [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-rkl-11600/igt@kms_chamelium@dp-crc-fast.html * igt@kms_chamelium@dp-edid-read: - fi-kbl-soraka: NOTRUN -> [SKIP][19] ([fdo#109271] / [fdo#111827]) +7 similar issues [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-kbl-soraka/igt@kms_chamelium@dp-edid-read.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic: - fi-rkl-11600: NOTRUN -> [SKIP][20] ([i915#4070] / [i915#4103]) +1 similar issue [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-rkl-11600/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html * igt@kms_force_connector_basic@force-load-detect: - fi-rkl-11600: NOTRUN -> [SKIP][21] ([fdo#109285] / [i915#4098]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-rkl-11600/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d: - fi-rkl-11600: NOTRUN -> [SKIP][22] ([i915#4070] / [i915#533]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-rkl-11600/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html - fi-kbl-soraka: NOTRUN -> [SKIP][23] ([fdo#109271] / [i915#533]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-kbl-soraka/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html * igt@kms_psr@primary_mmap_gtt: - fi-rkl-11600: NOTRUN -> [SKIP][24] ([i915#1072]) +3 similar issues [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-rkl-11600/igt@kms_psr@primary_mmap_gtt.html * igt@kms_setmode@basic-clone-single-crtc: - fi-rkl-11600: NOTRUN -> [SKIP][25] ([i915#3555] / [i915#4098]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-rkl-11600/igt@kms_setmode@basic-clone-single-crtc.html * igt@prime_vgem@basic-userptr: - fi-rkl-11600: NOTRUN -> [SKIP][26] ([i915#3301] / [i915#3708]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-rkl-11600/igt@prime_vgem@basic-userptr.html * igt@prime_vgem@basic-write: - fi-rkl-11600: NOTRUN -> [SKIP][27] ([i915#3291] / [i915#3708]) +2 similar issues [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-rkl-11600/igt@prime_vgem@basic-write.html #### Possible fixes #### * igt@i915_selftest@live@hangcheck: - fi-snb-2600: [INCOMPLETE][28] ([i915#3921]) -> [PASS][29] [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/fi-snb-2600/igt@i915_selftest@live@hangcheck.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-snb-2600/igt@i915_selftest@live@hangcheck.html - fi-ivb-3770: [INCOMPLETE][30] ([i915#3303] / [i915#5370]) -> [PASS][31] [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/fi-ivb-3770/igt@i915_selftest@live@hangcheck.html [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/fi-ivb-3770/igt@i915_selftest@live@hangcheck.html * igt@i915_selftest@live@reset: - {bat-adlp-6}: [DMESG-FAIL][32] ([i915#4983]) -> [PASS][33] [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/bat-adlp-6/igt@i915_selftest@live@reset.html [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/bat-adlp-6/igt@i915_selftest@live@reset.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155 [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291 [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 [i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3576]: https://gitlab.freedesktop.org/drm/intel/issues/3576 [i915#3595]: https://gitlab.freedesktop.org/drm/intel/issues/3595 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921 [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213 [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4418]: https://gitlab.freedesktop.org/drm/intel/issues/4418 [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528 [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5122]: https://gitlab.freedesktop.org/drm/intel/issues/5122 [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190 [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274 [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533 [i915#5370]: https://gitlab.freedesktop.org/drm/intel/issues/5370 [i915#5704]: https://gitlab.freedesktop.org/drm/intel/issues/5704 [i915#5763]: https://gitlab.freedesktop.org/drm/intel/issues/5763 [i915#5801]: https://gitlab.freedesktop.org/drm/intel/issues/5801 [i915#5869]: https://gitlab.freedesktop.org/drm/intel/issues/5869 [i915#5879]: https://gitlab.freedesktop.org/drm/intel/issues/5879 [i915#5885]: https://gitlab.freedesktop.org/drm/intel/issues/5885 [i915#5903]: https://gitlab.freedesktop.org/drm/intel/issues/5903 [i915#5982]: https://gitlab.freedesktop.org/drm/intel/issues/5982 Build changes ------------- * Linux: CI_DRM_11665 -> Patchwork_102875v3 CI-20190529: 20190529 CI_DRM_11665: 685b5d812e88829c72fcb4e72af28e3bef107209 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_6476: 08aa9296163b94cf4c529fc890ae3e90e21c3cdb @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_102875v3: 685b5d812e88829c72fcb4e72af28e3bef107209 @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits ed7d5385c983 drm/doc: add rfc section for small BAR uapi == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/index.html [-- Attachment #2: Type: text/html, Size: 12377 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/doc: add rfc section for small BAR uapi (rev3) 2022-05-17 10:52 ` Matthew Auld ` (3 preceding siblings ...) (?) @ 2022-05-17 17:53 ` Patchwork -1 siblings, 0 replies; 9+ messages in thread From: Patchwork @ 2022-05-17 17:53 UTC (permalink / raw) To: Matthew Auld; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 45243 bytes --] == Series Details == Series: drm/doc: add rfc section for small BAR uapi (rev3) URL : https://patchwork.freedesktop.org/series/102875/ State : failure == Summary == CI Bug Log - changes from CI_DRM_11665_full -> Patchwork_102875v3_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_102875v3_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_102875v3_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (13 -> 11) ------------------------------ Missing (2): shard-rkl shard-dg1 Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_102875v3_full: ### IGT changes ### #### Possible regressions #### * igt@kms_universal_plane@universal-plane-pipe-b-functional: - shard-skl: [PASS][1] -> [DMESG-WARN][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-skl4/igt@kms_universal_plane@universal-plane-pipe-b-functional.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl8/igt@kms_universal_plane@universal-plane-pipe-b-functional.html * igt@perf_pmu@multi-client@rcs0: - shard-skl: [PASS][3] -> [FAIL][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-skl4/igt@perf_pmu@multi-client@rcs0.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl8/igt@perf_pmu@multi-client@rcs0.html Known issues ------------ Here are the changes found in Patchwork_102875v3_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@drm_mm@all@insert: - shard-skl: NOTRUN -> [INCOMPLETE][5] ([i915#4547]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl3/igt@drm_mm@all@insert.html * igt@feature_discovery@display-4x: - shard-tglb: NOTRUN -> [SKIP][6] ([i915#1839]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@feature_discovery@display-4x.html * igt@feature_discovery@psr2: - shard-iclb: NOTRUN -> [SKIP][7] ([i915#658]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@feature_discovery@psr2.html * igt@gem_ccs@suspend-resume: - shard-tglb: NOTRUN -> [SKIP][8] ([i915#5325]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@gem_ccs@suspend-resume.html * igt@gem_ctx_persistence@many-contexts: - shard-tglb: [PASS][9] -> [FAIL][10] ([i915#2410]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-tglb7/igt@gem_ctx_persistence@many-contexts.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@gem_ctx_persistence@many-contexts.html * igt@gem_eio@in-flight-contexts-immediate: - shard-apl: [PASS][11] -> [TIMEOUT][12] ([i915#3063]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-apl8/igt@gem_eio@in-flight-contexts-immediate.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-apl2/igt@gem_eio@in-flight-contexts-immediate.html * igt@gem_exec_balancer@parallel-balancer: - shard-iclb: [PASS][13] -> [SKIP][14] ([i915#4525]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-iclb1/igt@gem_exec_balancer@parallel-balancer.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@gem_exec_balancer@parallel-balancer.html * igt@gem_exec_fair@basic-none-share@rcs0: - shard-iclb: [PASS][15] -> [FAIL][16] ([i915#2842]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-iclb4/igt@gem_exec_fair@basic-none-share@rcs0.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb2/igt@gem_exec_fair@basic-none-share@rcs0.html - shard-tglb: [PASS][17] -> [FAIL][18] ([i915#2842]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-tglb7/igt@gem_exec_fair@basic-none-share@rcs0.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb2/igt@gem_exec_fair@basic-none-share@rcs0.html * igt@gem_exec_fair@basic-none@vecs0: - shard-apl: [PASS][19] -> [FAIL][20] ([i915#2842]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-apl6/igt@gem_exec_fair@basic-none@vecs0.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-apl7/igt@gem_exec_fair@basic-none@vecs0.html * igt@gem_exec_flush@basic-batch-kernel-default-uc: - shard-snb: [PASS][21] -> [SKIP][22] ([fdo#109271]) +4 similar issues [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-snb4/igt@gem_exec_flush@basic-batch-kernel-default-uc.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-snb6/igt@gem_exec_flush@basic-batch-kernel-default-uc.html * igt@gem_exec_suspend@basic-s3@smem: - shard-kbl: [PASS][23] -> [DMESG-WARN][24] ([i915#180]) +1 similar issue [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-kbl6/igt@gem_exec_suspend@basic-s3@smem.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-kbl7/igt@gem_exec_suspend@basic-s3@smem.html * igt@gem_lmem_swapping@heavy-verify-multi: - shard-kbl: NOTRUN -> [SKIP][25] ([fdo#109271] / [i915#4613]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-kbl6/igt@gem_lmem_swapping@heavy-verify-multi.html * igt@gem_lmem_swapping@heavy-verify-multi-ccs: - shard-tglb: NOTRUN -> [SKIP][26] ([i915#4613]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html * igt@gem_lmem_swapping@verify: - shard-iclb: NOTRUN -> [SKIP][27] ([i915#4613]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@gem_lmem_swapping@verify.html - shard-skl: NOTRUN -> [SKIP][28] ([fdo#109271] / [i915#4613]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl1/igt@gem_lmem_swapping@verify.html * igt@gem_pxp@reject-modify-context-protection-off-1: - shard-iclb: NOTRUN -> [SKIP][29] ([i915#4270]) +1 similar issue [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@gem_pxp@reject-modify-context-protection-off-1.html * igt@gem_pxp@reject-modify-context-protection-off-2: - shard-tglb: NOTRUN -> [SKIP][30] ([i915#4270]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@gem_pxp@reject-modify-context-protection-off-2.html * igt@gem_render_copy@yf-tiled-to-vebox-linear: - shard-iclb: NOTRUN -> [SKIP][31] ([i915#768]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@gem_render_copy@yf-tiled-to-vebox-linear.html * igt@gem_softpin@noreloc-s3: - shard-skl: [PASS][32] -> [INCOMPLETE][33] ([i915#4939] / [i915#5230]) [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-skl9/igt@gem_softpin@noreloc-s3.html [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl4/igt@gem_softpin@noreloc-s3.html * igt@gem_userptr_blits@readonly-pwrite-unsync: - shard-tglb: NOTRUN -> [SKIP][34] ([i915#3297]) [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@gem_userptr_blits@readonly-pwrite-unsync.html * igt@gen7_exec_parse@chained-batch: - shard-tglb: NOTRUN -> [SKIP][35] ([fdo#109289]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@gen7_exec_parse@chained-batch.html * igt@gen7_exec_parse@cmd-crossing-page: - shard-iclb: NOTRUN -> [SKIP][36] ([fdo#109289]) [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@gen7_exec_parse@cmd-crossing-page.html * igt@gen9_exec_parse@unaligned-access: - shard-tglb: NOTRUN -> [SKIP][37] ([i915#2527] / [i915#2856]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@gen9_exec_parse@unaligned-access.html * igt@i915_pm_dc@dc6-psr: - shard-iclb: [PASS][38] -> [FAIL][39] ([i915#454]) [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-iclb1/igt@i915_pm_dc@dc6-psr.html [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@i915_pm_dc@dc6-psr.html * igt@i915_query@test-query-geometry-subslices: - shard-tglb: NOTRUN -> [SKIP][40] ([i915#5723]) [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@i915_query@test-query-geometry-subslices.html * igt@i915_selftest@live@gt_lrc: - shard-tglb: NOTRUN -> [DMESG-FAIL][41] ([i915#2373]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@i915_selftest@live@gt_lrc.html * igt@i915_selftest@live@gt_pm: - shard-tglb: NOTRUN -> [DMESG-FAIL][42] ([i915#1759]) [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@i915_selftest@live@gt_pm.html * igt@kms_async_flips@alternate-sync-async-flip: - shard-skl: [PASS][43] -> [FAIL][44] ([i915#2521]) [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-skl4/igt@kms_async_flips@alternate-sync-async-flip.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl8/igt@kms_async_flips@alternate-sync-async-flip.html * igt@kms_big_fb@4-tiled-64bpp-rotate-90: - shard-iclb: NOTRUN -> [SKIP][45] ([i915#5286]) [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180: - shard-tglb: NOTRUN -> [SKIP][46] ([i915#5286]) +3 similar issues [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180.html * igt@kms_big_fb@linear-32bpp-rotate-90: - shard-tglb: NOTRUN -> [SKIP][47] ([fdo#111614]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@kms_big_fb@linear-32bpp-rotate-90.html * igt@kms_big_fb@x-tiled-8bpp-rotate-90: - shard-iclb: NOTRUN -> [SKIP][48] ([fdo#110725] / [fdo#111614]) [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@kms_big_fb@x-tiled-8bpp-rotate-90.html * igt@kms_big_fb@yf-tiled-8bpp-rotate-0: - shard-tglb: NOTRUN -> [SKIP][49] ([fdo#111615]) [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@kms_big_fb@yf-tiled-8bpp-rotate-0.html * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip: - shard-skl: NOTRUN -> [FAIL][50] ([i915#3743]) [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl1/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html * igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc: - shard-skl: NOTRUN -> [SKIP][51] ([fdo#109271] / [i915#3886]) +7 similar issues [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl1/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs: - shard-glk: NOTRUN -> [SKIP][52] ([fdo#109271] / [i915#3886]) [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-glk7/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html - shard-kbl: NOTRUN -> [SKIP][53] ([fdo#109271] / [i915#3886]) +3 similar issues [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-kbl3/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-b-crc-primary-rotation-180-yf_tiled_ccs: - shard-tglb: NOTRUN -> [SKIP][54] ([fdo#111615] / [i915#3689]) +3 similar issues [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@kms_ccs@pipe-b-crc-primary-rotation-180-yf_tiled_ccs.html * igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_gen12_mc_ccs: - shard-iclb: NOTRUN -> [SKIP][55] ([fdo#109278] / [i915#3886]) +2 similar issues [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-c-crc-primary-rotation-180-yf_tiled_ccs: - shard-apl: NOTRUN -> [SKIP][56] ([fdo#109271]) +2 similar issues [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-apl1/igt@kms_ccs@pipe-c-crc-primary-rotation-180-yf_tiled_ccs.html * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_ccs: - shard-tglb: NOTRUN -> [SKIP][57] ([i915#3689]) +1 similar issue [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_ccs.html * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc: - shard-skl: NOTRUN -> [SKIP][58] ([fdo#109271]) +128 similar issues [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl1/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html * igt@kms_chamelium@dp-audio-edid: - shard-apl: NOTRUN -> [SKIP][59] ([fdo#109271] / [fdo#111827]) [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-apl1/igt@kms_chamelium@dp-audio-edid.html * igt@kms_chamelium@dp-hpd-for-each-pipe: - shard-kbl: NOTRUN -> [SKIP][60] ([fdo#109271] / [fdo#111827]) [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-kbl6/igt@kms_chamelium@dp-hpd-for-each-pipe.html * igt@kms_chamelium@dp-hpd-with-enabled-mode: - shard-glk: NOTRUN -> [SKIP][61] ([fdo#109271] / [fdo#111827]) [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-glk7/igt@kms_chamelium@dp-hpd-with-enabled-mode.html * igt@kms_chamelium@vga-hpd-after-suspend: - shard-tglb: NOTRUN -> [SKIP][62] ([fdo#109284] / [fdo#111827]) +5 similar issues [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@kms_chamelium@vga-hpd-after-suspend.html * igt@kms_chamelium@vga-hpd-with-enabled-mode: - shard-skl: NOTRUN -> [SKIP][63] ([fdo#109271] / [fdo#111827]) +4 similar issues [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl7/igt@kms_chamelium@vga-hpd-with-enabled-mode.html * igt@kms_color_chamelium@pipe-d-ctm-negative: - shard-iclb: NOTRUN -> [SKIP][64] ([fdo#109278] / [fdo#109284] / [fdo#111827]) [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@kms_color_chamelium@pipe-d-ctm-negative.html * igt@kms_content_protection@atomic: - shard-kbl: NOTRUN -> [TIMEOUT][65] ([i915#1319]) [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-kbl6/igt@kms_content_protection@atomic.html * igt@kms_content_protection@content_type_change: - shard-tglb: NOTRUN -> [SKIP][66] ([i915#1063]) [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@kms_content_protection@content_type_change.html * igt@kms_content_protection@dp-mst-type-1: - shard-tglb: NOTRUN -> [SKIP][67] ([i915#3116] / [i915#3299]) [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@kms_content_protection@dp-mst-type-1.html * igt@kms_content_protection@uevent: - shard-kbl: NOTRUN -> [FAIL][68] ([i915#2105]) [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-kbl3/igt@kms_content_protection@uevent.html * igt@kms_cursor_crc@pipe-a-cursor-512x170-sliding: - shard-tglb: NOTRUN -> [SKIP][69] ([fdo#109279] / [i915#3359]) +1 similar issue [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@kms_cursor_crc@pipe-a-cursor-512x170-sliding.html * igt@kms_cursor_crc@pipe-b-cursor-32x10-sliding: - shard-tglb: NOTRUN -> [SKIP][70] ([i915#3359]) +4 similar issues [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@kms_cursor_crc@pipe-b-cursor-32x10-sliding.html * igt@kms_cursor_crc@pipe-c-cursor-32x32-onscreen: - shard-tglb: NOTRUN -> [SKIP][71] ([i915#3319]) +1 similar issue [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@kms_cursor_crc@pipe-c-cursor-32x32-onscreen.html * igt@kms_cursor_crc@pipe-d-cursor-256x85-rapid-movement: - shard-iclb: NOTRUN -> [SKIP][72] ([fdo#109278]) +5 similar issues [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@kms_cursor_crc@pipe-d-cursor-256x85-rapid-movement.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-glk: [PASS][73] -> [FAIL][74] ([i915#2346] / [i915#533]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-4tiled: - shard-tglb: NOTRUN -> [SKIP][75] ([i915#5287]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-4tiled.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-apl: NOTRUN -> [INCOMPLETE][76] ([i915#180] / [i915#1982]) [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-apl1/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_flip@2x-absolute-wf_vblank: - shard-tglb: NOTRUN -> [SKIP][77] ([fdo#109274] / [fdo#111825] / [i915#3966]) [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@kms_flip@2x-absolute-wf_vblank.html * igt@kms_flip@2x-flip-vs-suspend-interruptible: - shard-tglb: NOTRUN -> [SKIP][78] ([fdo#109274] / [fdo#111825]) +5 similar issues [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@kms_flip@2x-flip-vs-suspend-interruptible.html * igt@kms_flip@flip-vs-expired-vblank@a-edp1: - shard-skl: [PASS][79] -> [FAIL][80] ([i915#2122]) [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-skl4/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl8/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1: - shard-apl: [PASS][81] -> [DMESG-WARN][82] ([i915#180]) +2 similar issues [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-apl6/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-apl8/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling: - shard-iclb: NOTRUN -> [SKIP][83] ([i915#2587]) [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-cpu: - shard-iclb: NOTRUN -> [SKIP][84] ([fdo#109280]) +2 similar issues [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu: - shard-kbl: NOTRUN -> [SKIP][85] ([fdo#109271]) +65 similar issues [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-kbl3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-gtt: - shard-tglb: NOTRUN -> [SKIP][86] ([fdo#109280] / [fdo#111825]) +18 similar issues [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-gtt.html * igt@kms_hdr@static-toggle-suspend: - shard-tglb: NOTRUN -> [SKIP][87] ([i915#3555]) [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@kms_hdr@static-toggle-suspend.html * igt@kms_pipe_crc_basic@hang-read-crc-pipe-d: - shard-kbl: NOTRUN -> [SKIP][88] ([fdo#109271] / [i915#533]) [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-kbl6/igt@kms_pipe_crc_basic@hang-read-crc-pipe-d.html * igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb: - shard-skl: NOTRUN -> [FAIL][89] ([i915#265]) [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl3/igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb.html * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min: - shard-skl: NOTRUN -> [FAIL][90] ([fdo#108145] / [i915#265]) +2 similar issues [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl4/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc: - shard-skl: [PASS][91] -> [FAIL][92] ([fdo#108145] / [i915#265]) +1 similar issue [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-skl4/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl8/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html * igt@kms_plane_lowres@pipe-a-tiling-yf: - shard-tglb: NOTRUN -> [SKIP][93] ([fdo#111615] / [fdo#112054]) [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@kms_plane_lowres@pipe-a-tiling-yf.html * igt@kms_plane_lowres@pipe-c-tiling-none: - shard-tglb: NOTRUN -> [SKIP][94] ([i915#3536]) +1 similar issue [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@kms_plane_lowres@pipe-c-tiling-none.html * igt@kms_plane_scaling@downscale-with-rotation-factor-0-75@pipe-c-edp-1-downscale-with-rotation: - shard-iclb: NOTRUN -> [SKIP][95] ([i915#5176]) +2 similar issues [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@kms_plane_scaling@downscale-with-rotation-factor-0-75@pipe-c-edp-1-downscale-with-rotation.html * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b-edp-1-planes-upscale-downscale: - shard-iclb: NOTRUN -> [SKIP][96] ([i915#5235]) +2 similar issues [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b-edp-1-planes-upscale-downscale.html * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a-edp-1-planes-upscale-downscale: - shard-iclb: [PASS][97] -> [SKIP][98] ([i915#5235]) +2 similar issues [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-iclb4/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a-edp-1-planes-upscale-downscale.html [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb2/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a-edp-1-planes-upscale-downscale.html * igt@kms_plane_scaling@upscale-with-rotation-20x20@pipe-b-edp-1-upscale-with-rotation: - shard-tglb: NOTRUN -> [SKIP][99] ([i915#5176]) +3 similar issues [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@kms_plane_scaling@upscale-with-rotation-20x20@pipe-b-edp-1-upscale-with-rotation.html * igt@kms_psr2_sf@cursor-plane-update-sf: - shard-skl: NOTRUN -> [SKIP][100] ([fdo#109271] / [i915#658]) [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl3/igt@kms_psr2_sf@cursor-plane-update-sf.html * igt@kms_psr@psr2_primary_mmap_cpu: - shard-iclb: [PASS][101] -> [SKIP][102] ([fdo#109441]) +1 similar issue [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb1/igt@kms_psr@psr2_primary_mmap_cpu.html * igt@kms_psr@psr2_sprite_plane_onoff: - shard-tglb: NOTRUN -> [FAIL][103] ([i915#132] / [i915#3467]) +2 similar issues [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@kms_psr@psr2_sprite_plane_onoff.html * igt@kms_psr@suspend: - shard-skl: [PASS][104] -> [INCOMPLETE][105] ([i915#4939]) [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-skl4/igt@kms_psr@suspend.html [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl9/igt@kms_psr@suspend.html * igt@kms_psr_stress_test@flip-primary-invalidate-overlay: - shard-tglb: [PASS][106] -> [SKIP][107] ([i915#5519]) [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-tglb7/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb2/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html * igt@kms_rotation_crc@primary-4-tiled-reflect-x-0: - shard-tglb: NOTRUN -> [SKIP][108] ([i915#5289]) [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@kms_rotation_crc@primary-4-tiled-reflect-x-0.html * igt@kms_vblank@pipe-d-accuracy-idle: - shard-glk: NOTRUN -> [SKIP][109] ([fdo#109271]) +18 similar issues [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-glk7/igt@kms_vblank@pipe-d-accuracy-idle.html * igt@kms_writeback@writeback-fb-id: - shard-tglb: NOTRUN -> [SKIP][110] ([i915#2437]) [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@kms_writeback@writeback-fb-id.html * igt@nouveau_crc@pipe-b-ctx-flip-skip-current-frame: - shard-tglb: NOTRUN -> [SKIP][111] ([i915#2530]) +1 similar issue [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@nouveau_crc@pipe-b-ctx-flip-skip-current-frame.html * igt@prime_nv_pcopy@test3_5: - shard-iclb: NOTRUN -> [SKIP][112] ([fdo#109291]) [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@prime_nv_pcopy@test3_5.html * igt@prime_nv_test@i915_import_gtt_mmap: - shard-tglb: NOTRUN -> [SKIP][113] ([fdo#109291]) +3 similar issues [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb1/igt@prime_nv_test@i915_import_gtt_mmap.html * igt@syncobj_timeline@invalid-transfer-non-existent-point: - shard-iclb: NOTRUN -> [DMESG-WARN][114] ([i915#5098]) [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@syncobj_timeline@invalid-transfer-non-existent-point.html - shard-skl: NOTRUN -> [DMESG-WARN][115] ([i915#5098]) [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl1/igt@syncobj_timeline@invalid-transfer-non-existent-point.html * igt@sysfs_clients@fair-3: - shard-kbl: NOTRUN -> [SKIP][116] ([fdo#109271] / [i915#2994]) [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-kbl6/igt@sysfs_clients@fair-3.html * igt@sysfs_clients@fair-7: - shard-skl: NOTRUN -> [SKIP][117] ([fdo#109271] / [i915#2994]) +1 similar issue [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl3/igt@sysfs_clients@fair-7.html * igt@sysfs_clients@sema-25: - shard-tglb: NOTRUN -> [SKIP][118] ([i915#2994]) [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@sysfs_clients@sema-25.html #### Possible fixes #### * igt@gem_ctx_isolation@preservation-s3@rcs0: - shard-apl: [DMESG-WARN][119] ([i915#180]) -> [PASS][120] +2 similar issues [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-apl3/igt@gem_ctx_isolation@preservation-s3@rcs0.html [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-apl4/igt@gem_ctx_isolation@preservation-s3@rcs0.html * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-glk: [FAIL][121] ([i915#2842]) -> [PASS][122] [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-glk5/igt@gem_exec_fair@basic-pace-share@rcs0.html [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-glk7/igt@gem_exec_fair@basic-pace-share@rcs0.html - {shard-tglu}: [FAIL][123] ([i915#2842]) -> [PASS][124] [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-tglu-1/igt@gem_exec_fair@basic-pace-share@rcs0.html [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglu-3/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_exec_fair@basic-pace@rcs0: - shard-kbl: [FAIL][125] ([i915#2842]) -> [PASS][126] +3 similar issues [125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-kbl7/igt@gem_exec_fair@basic-pace@rcs0.html [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-kbl3/igt@gem_exec_fair@basic-pace@rcs0.html * igt@gem_exec_flush@basic-uc-set-default: - shard-snb: [SKIP][127] ([fdo#109271]) -> [PASS][128] +2 similar issues [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-snb6/igt@gem_exec_flush@basic-uc-set-default.html [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-snb4/igt@gem_exec_flush@basic-uc-set-default.html * igt@gem_exec_whisper@basic-fds-priority-all: - shard-tglb: [INCOMPLETE][129] -> [PASS][130] [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-tglb8/igt@gem_exec_whisper@basic-fds-priority-all.html [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglb5/igt@gem_exec_whisper@basic-fds-priority-all.html * igt@gem_exec_whisper@basic-queues-all: - shard-glk: [DMESG-WARN][131] ([i915#118]) -> [PASS][132] [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-glk2/igt@gem_exec_whisper@basic-queues-all.html [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-glk9/igt@gem_exec_whisper@basic-queues-all.html * igt@gem_ppgtt@flink-and-close-vma-leak: - shard-glk: [FAIL][133] ([i915#644]) -> [PASS][134] [133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-glk6/igt@gem_ppgtt@flink-and-close-vma-leak.html [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-glk2/igt@gem_ppgtt@flink-and-close-vma-leak.html * igt@i915_pm_rpm@system-suspend-modeset: - shard-skl: [INCOMPLETE][135] ([i915#5420]) -> [PASS][136] [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-skl8/igt@i915_pm_rpm@system-suspend-modeset.html [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl4/igt@i915_pm_rpm@system-suspend-modeset.html * igt@i915_selftest@live@gt_pm: - {shard-tglu}: [DMESG-FAIL][137] ([i915#3987]) -> [PASS][138] [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-tglu-8/igt@i915_selftest@live@gt_pm.html [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-tglu-4/igt@i915_selftest@live@gt_pm.html * igt@i915_selftest@live@late_gt_pm: - shard-skl: [INCOMPLETE][139] -> [PASS][140] [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-skl7/igt@i915_selftest@live@late_gt_pm.html [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl9/igt@i915_selftest@live@late_gt_pm.html * igt@kms_addfb_basic@bad-pitch-128: - shard-skl: [DMESG-WARN][141] ([i915#1982]) -> [PASS][142] +1 similar issue [141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-skl9/igt@kms_addfb_basic@bad-pitch-128.html [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl4/igt@kms_addfb_basic@bad-pitch-128.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-kbl: [FAIL][143] ([i915#4767]) -> [PASS][144] [143]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-kbl3/igt@kms_fbcon_fbt@fbc-suspend.html [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-kbl7/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_flip@flip-vs-expired-vblank@b-dp1: - shard-kbl: [FAIL][145] ([i915#79]) -> [PASS][146] [145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-kbl1/igt@kms_flip@flip-vs-expired-vblank@b-dp1.html [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-kbl1/igt@kms_flip@flip-vs-expired-vblank@b-dp1.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling: - shard-iclb: [SKIP][147] ([i915#3701]) -> [PASS][148] [147]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb1/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: - shard-kbl: [DMESG-WARN][149] ([i915#180]) -> [PASS][150] +6 similar issues [149]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-kbl7/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-kbl4/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html * igt@kms_psr2_su@frontbuffer-xrgb8888: - shard-iclb: [SKIP][151] ([fdo#109642] / [fdo#111068] / [i915#658]) -> [PASS][152] [151]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-iclb4/igt@kms_psr2_su@frontbuffer-xrgb8888.html [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb2/igt@kms_psr2_su@frontbuffer-xrgb8888.html * igt@kms_psr@psr2_dpms: - shard-iclb: [SKIP][153] ([fdo#109441]) -> [PASS][154] [153]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-iclb8/igt@kms_psr@psr2_dpms.html [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb2/igt@kms_psr@psr2_dpms.html * igt@kms_psr_stress_test@flip-primary-invalidate-overlay: - shard-iclb: [SKIP][155] ([i915#5519]) -> [PASS][156] [155]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-iclb4/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb2/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html * igt@perf@stress-open-close: - shard-glk: [INCOMPLETE][157] ([i915#5213]) -> [PASS][158] [157]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-glk5/igt@perf@stress-open-close.html [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-glk7/igt@perf@stress-open-close.html #### Warnings #### * igt@gem_exec_balancer@parallel-keep-submit-fence: - shard-iclb: [DMESG-WARN][159] ([i915#5614]) -> [SKIP][160] ([i915#4525]) [159]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-iclb4/igt@gem_exec_balancer@parallel-keep-submit-fence.html [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb6/igt@gem_exec_balancer@parallel-keep-submit-fence.html * igt@gem_exec_balancer@parallel-out-fence: - shard-iclb: [SKIP][161] ([i915#4525]) -> [DMESG-WARN][162] ([i915#5614]) +2 similar issues [161]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-iclb7/igt@gem_exec_balancer@parallel-out-fence.html [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb4/igt@gem_exec_balancer@parallel-out-fence.html * igt@kms_psr2_sf@overlay-plane-move-continuous-sf: - shard-iclb: [SKIP][163] ([i915#658]) -> [SKIP][164] ([i915#2920]) [163]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-iclb8/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb2/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html * igt@kms_psr2_su@page_flip-p010: - shard-iclb: [SKIP][165] ([fdo#109642] / [fdo#111068] / [i915#658]) -> [FAIL][166] ([i915#5939]) [165]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-iclb6/igt@kms_psr2_su@page_flip-p010.html [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-iclb2/igt@kms_psr2_su@page_flip-p010.html * igt@runner@aborted: - shard-skl: ([FAIL][167], [FAIL][168], [FAIL][169]) ([i915#3002] / [i915#4312] / [i915#5257]) -> ([FAIL][170], [FAIL][171], [FAIL][172], [FAIL][173], [FAIL][174], [FAIL][175], [FAIL][176]) ([i915#2029] / [i915#3002] / [i915#4312] / [i915#5257]) [167]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-skl4/igt@runner@aborted.html [168]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-skl10/igt@runner@aborted.html [169]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11665/shard-skl4/igt@runner@aborted.html [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl3/igt@runner@aborted.html [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl3/igt@runner@aborted.html [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl1/igt@runner@aborted.html [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl1/igt@runner@aborted.html [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl8/igt@runner@aborted.html [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl8/igt@runner@aborted.html [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/shard-skl3/igt@runner@aborted.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279 [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280 [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642 [fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725 [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068 [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614 [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615 [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054 [i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063 [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118 [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319 [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132 [i915#1759]: https://gitlab.freedesktop.org/drm/intel/issues/1759 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2029]: https://gitlab.freedesktop.org/drm/intel/issues/2029 [i915#2105]: https://gitlab.freedesktop.org/drm/intel/issues/2105 [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2373]: https://gitlab.freedesktop.org/drm/intel/issues/2373 [i915#2410]: https://gitlab.freedesktop.org/drm/intel/issues/2410 [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437 [i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521 [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527 [i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530 [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587 [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856 [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920 [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994 [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002 [i915#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063 [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299 [i915#3319]: https://gitlab.freedesktop.org/drm/intel/issues/3319 [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359 [i915#3467]: https://gitlab.freedesktop.org/drm/intel/issues/3467 [i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3701]: https://gitlab.freedesktop.org/drm/intel/issues/3701 [i915#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#3966]: https://gitlab.freedesktop.org/drm/intel/issues/3966 [i915#3987]: https://gitlab.freedesktop.org/drm/intel/issues/3987 [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525 [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454 [i915#4547]: https://gitlab.freedesktop.org/drm/intel/issues/4547 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767 [i915#4939]: https://gitlab.freedesktop.org/drm/intel/issues/4939 [i915#5098]: https://gitlab.freedesktop.org/drm/intel/issues/5098 [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5213]: https://gitlab.freedesktop.org/drm/intel/issues/5213 [i915#5230]: https://gitlab.freedesktop.org/drm/intel/issues/5230 [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257 [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286 [i915#5287]: https://gitlab.freedesktop.org/drm/intel/issues/5287 [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289 [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325 [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533 [i915#5420]: https://gitlab.freedesktop.org/drm/intel/issues/5420 [i915#5519]: https://gitlab.freedesktop.org/drm/intel/issues/5519 [i915#5614]: https://gitlab.freedesktop.org/drm/intel/issues/5614 [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723 [i915#5939]: https://gitlab.freedesktop.org/drm/intel/issues/5939 [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768 [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79 Build changes ------------- * Linux: CI_DRM_11665 -> Patchwork_102875v3 CI-20190529: 20190529 CI_DRM_11665: 685b5d812e88829c72fcb4e72af28e3bef107209 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_6476: 08aa9296163b94cf4c529fc890ae3e90e21c3cdb @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_102875v3: 685b5d812e88829c72fcb4e72af28e3bef107209 @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_102875v3/index.html [-- Attachment #2: Type: text/html, Size: 54778 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2022-05-17 18:03 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-05-17 10:52 [Intel-gfx] [PATCH v4] drm/doc: add rfc section for small BAR uapi Matthew Auld 2022-05-17 10:52 ` Matthew Auld 2022-05-17 13:48 ` [Intel-gfx] " Tvrtko Ursulin 2022-05-17 13:48 ` Tvrtko Ursulin 2022-05-17 18:02 ` [Intel-gfx] " Abodunrin, Akeem G 2022-05-17 18:02 ` Abodunrin, Akeem G 2022-05-17 15:42 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/doc: add rfc section for small BAR uapi (rev3) Patchwork 2022-05-17 16:03 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork 2022-05-17 17:53 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
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.