* [PATCH v7 1/2] drm/buddy: Add start address support to trim function
@ 2024-07-23 13:25 Arunpravin Paneer Selvam
2024-07-23 13:25 ` [PATCH v7 2/2] drm/amdgpu: Add address alignment support to DCC buffers Arunpravin Paneer Selvam
` (6 more replies)
0 siblings, 7 replies; 13+ messages in thread
From: Arunpravin Paneer Selvam @ 2024-07-23 13:25 UTC (permalink / raw)
To: dri-devel, amd-gfx, intel-gfx, matthew.auld
Cc: christian.koenig, alexander.deucher, frank.min, marek.olsak,
Arunpravin Paneer Selvam
- Add a new start parameter in trim function to specify exact
address from where to start the trimming. This would help us
in situations like if drivers would like to do address alignment
for specific requirements.
- Add a new flag DRM_BUDDY_TRIM_DISABLE. Drivers can use this
flag to disable the allocator trimming part. This patch enables
the drivers control trimming and they can do it themselves
based on the application requirements.
v1:(Matthew)
- check new_start alignment with min chunk_size
- use range_overflows()
Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
---
drivers/gpu/drm/drm_buddy.c | 25 +++++++++++++++++++++++--
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 2 +-
include/drm/drm_buddy.h | 2 ++
3 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/drm_buddy.c b/drivers/gpu/drm/drm_buddy.c
index 6a8e45e9d0ec..103c185bb1c8 100644
--- a/drivers/gpu/drm/drm_buddy.c
+++ b/drivers/gpu/drm/drm_buddy.c
@@ -851,6 +851,7 @@ static int __alloc_contig_try_harder(struct drm_buddy *mm,
* drm_buddy_block_trim - free unused pages
*
* @mm: DRM buddy manager
+ * @start: start address to begin the trimming.
* @new_size: original size requested
* @blocks: Input and output list of allocated blocks.
* MUST contain single block as input to be trimmed.
@@ -866,11 +867,13 @@ static int __alloc_contig_try_harder(struct drm_buddy *mm,
* 0 on success, error code on failure.
*/
int drm_buddy_block_trim(struct drm_buddy *mm,
+ u64 *start,
u64 new_size,
struct list_head *blocks)
{
struct drm_buddy_block *parent;
struct drm_buddy_block *block;
+ u64 block_start, block_end;
LIST_HEAD(dfs);
u64 new_start;
int err;
@@ -882,6 +885,9 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
struct drm_buddy_block,
link);
+ block_start = drm_buddy_block_offset(block);
+ block_end = block_start + drm_buddy_block_size(mm, block);
+
if (WARN_ON(!drm_buddy_block_is_allocated(block)))
return -EINVAL;
@@ -894,6 +900,20 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
if (new_size == drm_buddy_block_size(mm, block))
return 0;
+ new_start = block_start;
+ if (start) {
+ new_start = *start;
+
+ if (new_start < block_start)
+ return -EINVAL;
+
+ if (!IS_ALIGNED(new_start, mm->chunk_size))
+ return -EINVAL;
+
+ if (range_overflows(new_start, new_size, block_end))
+ return -EINVAL;
+ }
+
list_del(&block->link);
mark_free(mm, block);
mm->avail += drm_buddy_block_size(mm, block);
@@ -904,7 +924,6 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
parent = block->parent;
block->parent = NULL;
- new_start = drm_buddy_block_offset(block);
list_add(&block->tmp_link, &dfs);
err = __alloc_range(mm, &dfs, new_start, new_size, blocks, NULL);
if (err) {
@@ -1066,7 +1085,8 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
} while (1);
/* Trim the allocated block to the required size */
- if (original_size != size) {
+ if (!(flags & DRM_BUDDY_TRIM_DISABLE) &&
+ original_size != size) {
struct list_head *trim_list;
LIST_HEAD(temp);
u64 trim_size;
@@ -1083,6 +1103,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
}
drm_buddy_block_trim(mm,
+ NULL,
trim_size,
trim_list);
diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
index fe3779fdba2c..423b261ea743 100644
--- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
+++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
@@ -150,7 +150,7 @@ static int xe_ttm_vram_mgr_new(struct ttm_resource_manager *man,
} while (remaining_size);
if (place->flags & TTM_PL_FLAG_CONTIGUOUS) {
- if (!drm_buddy_block_trim(mm, vres->base.size, &vres->blocks))
+ if (!drm_buddy_block_trim(mm, NULL, vres->base.size, &vres->blocks))
size = vres->base.size;
}
diff --git a/include/drm/drm_buddy.h b/include/drm/drm_buddy.h
index 2a74fa9d0ce5..9689a7c5dd36 100644
--- a/include/drm/drm_buddy.h
+++ b/include/drm/drm_buddy.h
@@ -27,6 +27,7 @@
#define DRM_BUDDY_CONTIGUOUS_ALLOCATION BIT(2)
#define DRM_BUDDY_CLEAR_ALLOCATION BIT(3)
#define DRM_BUDDY_CLEARED BIT(4)
+#define DRM_BUDDY_TRIM_DISABLE BIT(5)
struct drm_buddy_block {
#define DRM_BUDDY_HEADER_OFFSET GENMASK_ULL(63, 12)
@@ -155,6 +156,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
unsigned long flags);
int drm_buddy_block_trim(struct drm_buddy *mm,
+ u64 *start,
u64 new_size,
struct list_head *blocks);
base-commit: b27d70e1042bf6a31ba7e5acf58b61c9cd28f95b
--
2.25.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v7 2/2] drm/amdgpu: Add address alignment support to DCC buffers
2024-07-23 13:25 [PATCH v7 1/2] drm/buddy: Add start address support to trim function Arunpravin Paneer Selvam
@ 2024-07-23 13:25 ` Arunpravin Paneer Selvam
2024-07-23 13:43 ` [PATCH v7 1/2] drm/buddy: Add start address support to trim function Paneer Selvam, Arunpravin
` (5 subsequent siblings)
6 siblings, 0 replies; 13+ messages in thread
From: Arunpravin Paneer Selvam @ 2024-07-23 13:25 UTC (permalink / raw)
To: dri-devel, amd-gfx, intel-gfx, matthew.auld
Cc: christian.koenig, alexander.deucher, frank.min, marek.olsak,
Arunpravin Paneer Selvam, Frank Min
Add address alignment support to the DCC VRAM buffers.
v2:
- adjust size based on the max_texture_channel_caches values
only for GFX12 DCC buffers.
- used AMDGPU_GEM_CREATE_GFX12_DCC flag to apply change only
for DCC buffers.
- roundup non power of two DCC buffer adjusted size to nearest
power of two number as the buddy allocator does not support non
power of two alignments. This applies only to the contiguous
DCC buffers.
v3:(Alex)
- rewrite the max texture channel caches comparison code in an
algorithmic way to determine the alignment size.
v4:(Alex)
- Move the logic from amdgpu_vram_mgr_dcc_alignment() to gmc_v12_0.c
and add a new gmc func callback for dcc alignment. If the callback
is non-NULL, call it to get the alignment, otherwise, use the default.
v5:(Alex)
- Set the Alignment to a default value if the callback doesn't exist.
- Add the callback to amdgpu_gmc_funcs.
v6:
- Fix checkpatch warning reported by Intel CI.
v7:(Christian)
- remove the AMDGPU_GEM_CREATE_GFX12_DCC flag and keep a flag that
checks the BO pinning and for a specific hw generation.
v8:(Christian)
- move this check into gmc_v12_0_get_dcc_alignment.
Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Frank Min <Frank.Min@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 6 ++++
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 29 ++++++++++++++++++--
drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c | 19 +++++++++++++
3 files changed, 51 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
index febca3130497..654d0548a3f8 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
@@ -156,6 +156,8 @@ struct amdgpu_gmc_funcs {
uint64_t addr, uint64_t *flags);
/* get the amount of memory used by the vbios for pre-OS console */
unsigned int (*get_vbios_fb_size)(struct amdgpu_device *adev);
+ /* get the DCC buffer alignment */
+ u64 (*get_dcc_alignment)(struct amdgpu_device *adev);
enum amdgpu_memory_partition (*query_mem_partition_mode)(
struct amdgpu_device *adev);
@@ -363,6 +365,10 @@ struct amdgpu_gmc {
(adev)->gmc.gmc_funcs->override_vm_pte_flags \
((adev), (vm), (addr), (pte_flags))
#define amdgpu_gmc_get_vbios_fb_size(adev) (adev)->gmc.gmc_funcs->get_vbios_fb_size((adev))
+#define amdgpu_gmc_get_dcc_alignment(_adev) ({ \
+ typeof(_adev) (adev) = (_adev); \
+ ((adev)->gmc.gmc_funcs->get_dcc_alignment((adev))); \
+})
/**
* amdgpu_gmc_vram_full_visible - Check if full VRAM is visible through the BAR
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
index f91cc149d06c..c6609f4ac3d9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
@@ -450,12 +450,12 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
const struct ttm_place *place,
struct ttm_resource **res)
{
+ u64 size, remaining_size, lpfn, fpfn, adjust_dcc_size = 0;
struct amdgpu_vram_mgr *mgr = to_vram_mgr(man);
struct amdgpu_device *adev = to_amdgpu_device(mgr);
struct amdgpu_bo *bo = ttm_to_amdgpu_bo(tbo);
u64 vis_usage = 0, max_bytes, min_block_size;
struct amdgpu_vram_mgr_resource *vres;
- u64 size, remaining_size, lpfn, fpfn;
struct drm_buddy *mm = &mgr->mm;
struct drm_buddy_block *block;
unsigned long pages_per_block;
@@ -511,7 +511,14 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
/* Allocate blocks in desired range */
vres->flags |= DRM_BUDDY_RANGE_ALLOCATION;
+ if (adev->gmc.gmc_funcs->get_dcc_alignment)
+ adjust_dcc_size = amdgpu_gmc_get_dcc_alignment(adev);
+
remaining_size = (u64)vres->base.size;
+ if (bo->flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS && adjust_dcc_size) {
+ remaining_size = roundup_pow_of_two(remaining_size + adjust_dcc_size);
+ vres->flags |= DRM_BUDDY_TRIM_DISABLE;
+ }
mutex_lock(&mgr->lock);
while (remaining_size) {
@@ -521,8 +528,11 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
min_block_size = mgr->default_page_size;
size = remaining_size;
- if ((size >= (u64)pages_per_block << PAGE_SHIFT) &&
- !(size & (((u64)pages_per_block << PAGE_SHIFT) - 1)))
+
+ if (bo->flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS && adjust_dcc_size)
+ min_block_size = size;
+ else if ((size >= (u64)pages_per_block << PAGE_SHIFT) &&
+ !(size & (((u64)pages_per_block << PAGE_SHIFT) - 1)))
min_block_size = (u64)pages_per_block << PAGE_SHIFT;
BUG_ON(min_block_size < mm->chunk_size);
@@ -553,6 +563,19 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
}
mutex_unlock(&mgr->lock);
+ if (bo->flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS && adjust_dcc_size) {
+ struct drm_buddy_block *dcc_block;
+ u64 dcc_start;
+
+ dcc_block = amdgpu_vram_mgr_first_block(&vres->blocks);
+ /* Adjust the start address for DCC buffers only */
+ dcc_start =
+ roundup(amdgpu_vram_mgr_block_start(dcc_block), adjust_dcc_size);
+ drm_buddy_block_trim(mm, &dcc_start,
+ (u64)vres->base.size,
+ &vres->blocks);
+ }
+
vres->base.start = 0;
size = max_t(u64, amdgpu_vram_mgr_blocks_size(&vres->blocks),
vres->base.size);
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
index fd3ac483760e..093f72eb6dfc 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
@@ -542,6 +542,24 @@ static unsigned gmc_v12_0_get_vbios_fb_size(struct amdgpu_device *adev)
return 0;
}
+static u64 gmc_v12_0_get_dcc_alignment(struct amdgpu_device *adev)
+{
+ u64 max_tex_channel_caches, alignment;
+
+ if (amdgpu_ip_version(adev, GC_HWIP, 0) != IP_VERSION(12, 0, 0) &&
+ amdgpu_ip_version(adev, GC_HWIP, 0) != IP_VERSION(12, 0, 1))
+ return 0;
+
+ max_tex_channel_caches = adev->gfx.config.max_texture_channel_caches;
+ if (is_power_of_2(max_tex_channel_caches))
+ alignment = (max_tex_channel_caches / SZ_4) * max_tex_channel_caches;
+ else
+ alignment = roundup_pow_of_two(max_tex_channel_caches) *
+ max_tex_channel_caches;
+
+ return (u64)alignment * SZ_1K;
+}
+
static const struct amdgpu_gmc_funcs gmc_v12_0_gmc_funcs = {
.flush_gpu_tlb = gmc_v12_0_flush_gpu_tlb,
.flush_gpu_tlb_pasid = gmc_v12_0_flush_gpu_tlb_pasid,
@@ -551,6 +569,7 @@ static const struct amdgpu_gmc_funcs gmc_v12_0_gmc_funcs = {
.get_vm_pde = gmc_v12_0_get_vm_pde,
.get_vm_pte = gmc_v12_0_get_vm_pte,
.get_vbios_fb_size = gmc_v12_0_get_vbios_fb_size,
+ .get_dcc_alignment = gmc_v12_0_get_dcc_alignment,
};
static void gmc_v12_0_set_gmc_funcs(struct amdgpu_device *adev)
--
2.25.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v7 1/2] drm/buddy: Add start address support to trim function
2024-07-23 13:25 [PATCH v7 1/2] drm/buddy: Add start address support to trim function Arunpravin Paneer Selvam
2024-07-23 13:25 ` [PATCH v7 2/2] drm/amdgpu: Add address alignment support to DCC buffers Arunpravin Paneer Selvam
@ 2024-07-23 13:43 ` Paneer Selvam, Arunpravin
2024-07-23 15:02 ` Matthew Auld
2024-07-23 14:04 ` ✗ Fi.CI.SPARSE: warning for series starting with [v7,1/2] " Patchwork
` (4 subsequent siblings)
6 siblings, 1 reply; 13+ messages in thread
From: Paneer Selvam, Arunpravin @ 2024-07-23 13:43 UTC (permalink / raw)
To: dri-devel, amd-gfx, intel-gfx, matthew.auld
Cc: christian.koenig, alexander.deucher, frank.min, marek.olsak
Hi Matthew,
Can we push this version for now as we need to mainline the DCC changes
ASAP,
while we continue our discussion and proceed to implement the permanent
solution
for address alignment?
Thanks,
Arun.
On 7/23/2024 6:55 PM, Arunpravin Paneer Selvam wrote:
> - Add a new start parameter in trim function to specify exact
> address from where to start the trimming. This would help us
> in situations like if drivers would like to do address alignment
> for specific requirements.
>
> - Add a new flag DRM_BUDDY_TRIM_DISABLE. Drivers can use this
> flag to disable the allocator trimming part. This patch enables
> the drivers control trimming and they can do it themselves
> based on the application requirements.
>
> v1:(Matthew)
> - check new_start alignment with min chunk_size
> - use range_overflows()
>
> Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
> Acked-by: Alex Deucher <alexander.deucher@amd.com>
> Acked-by: Christian König <christian.koenig@amd.com>
> ---
> drivers/gpu/drm/drm_buddy.c | 25 +++++++++++++++++++++++--
> drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 2 +-
> include/drm/drm_buddy.h | 2 ++
> 3 files changed, 26 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_buddy.c b/drivers/gpu/drm/drm_buddy.c
> index 6a8e45e9d0ec..103c185bb1c8 100644
> --- a/drivers/gpu/drm/drm_buddy.c
> +++ b/drivers/gpu/drm/drm_buddy.c
> @@ -851,6 +851,7 @@ static int __alloc_contig_try_harder(struct drm_buddy *mm,
> * drm_buddy_block_trim - free unused pages
> *
> * @mm: DRM buddy manager
> + * @start: start address to begin the trimming.
> * @new_size: original size requested
> * @blocks: Input and output list of allocated blocks.
> * MUST contain single block as input to be trimmed.
> @@ -866,11 +867,13 @@ static int __alloc_contig_try_harder(struct drm_buddy *mm,
> * 0 on success, error code on failure.
> */
> int drm_buddy_block_trim(struct drm_buddy *mm,
> + u64 *start,
> u64 new_size,
> struct list_head *blocks)
> {
> struct drm_buddy_block *parent;
> struct drm_buddy_block *block;
> + u64 block_start, block_end;
> LIST_HEAD(dfs);
> u64 new_start;
> int err;
> @@ -882,6 +885,9 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> struct drm_buddy_block,
> link);
>
> + block_start = drm_buddy_block_offset(block);
> + block_end = block_start + drm_buddy_block_size(mm, block);
> +
> if (WARN_ON(!drm_buddy_block_is_allocated(block)))
> return -EINVAL;
>
> @@ -894,6 +900,20 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> if (new_size == drm_buddy_block_size(mm, block))
> return 0;
>
> + new_start = block_start;
> + if (start) {
> + new_start = *start;
> +
> + if (new_start < block_start)
> + return -EINVAL;
> +
> + if (!IS_ALIGNED(new_start, mm->chunk_size))
> + return -EINVAL;
> +
> + if (range_overflows(new_start, new_size, block_end))
> + return -EINVAL;
> + }
> +
> list_del(&block->link);
> mark_free(mm, block);
> mm->avail += drm_buddy_block_size(mm, block);
> @@ -904,7 +924,6 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> parent = block->parent;
> block->parent = NULL;
>
> - new_start = drm_buddy_block_offset(block);
> list_add(&block->tmp_link, &dfs);
> err = __alloc_range(mm, &dfs, new_start, new_size, blocks, NULL);
> if (err) {
> @@ -1066,7 +1085,8 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
> } while (1);
>
> /* Trim the allocated block to the required size */
> - if (original_size != size) {
> + if (!(flags & DRM_BUDDY_TRIM_DISABLE) &&
> + original_size != size) {
> struct list_head *trim_list;
> LIST_HEAD(temp);
> u64 trim_size;
> @@ -1083,6 +1103,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
> }
>
> drm_buddy_block_trim(mm,
> + NULL,
> trim_size,
> trim_list);
>
> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> index fe3779fdba2c..423b261ea743 100644
> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> @@ -150,7 +150,7 @@ static int xe_ttm_vram_mgr_new(struct ttm_resource_manager *man,
> } while (remaining_size);
>
> if (place->flags & TTM_PL_FLAG_CONTIGUOUS) {
> - if (!drm_buddy_block_trim(mm, vres->base.size, &vres->blocks))
> + if (!drm_buddy_block_trim(mm, NULL, vres->base.size, &vres->blocks))
> size = vres->base.size;
> }
>
> diff --git a/include/drm/drm_buddy.h b/include/drm/drm_buddy.h
> index 2a74fa9d0ce5..9689a7c5dd36 100644
> --- a/include/drm/drm_buddy.h
> +++ b/include/drm/drm_buddy.h
> @@ -27,6 +27,7 @@
> #define DRM_BUDDY_CONTIGUOUS_ALLOCATION BIT(2)
> #define DRM_BUDDY_CLEAR_ALLOCATION BIT(3)
> #define DRM_BUDDY_CLEARED BIT(4)
> +#define DRM_BUDDY_TRIM_DISABLE BIT(5)
>
> struct drm_buddy_block {
> #define DRM_BUDDY_HEADER_OFFSET GENMASK_ULL(63, 12)
> @@ -155,6 +156,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
> unsigned long flags);
>
> int drm_buddy_block_trim(struct drm_buddy *mm,
> + u64 *start,
> u64 new_size,
> struct list_head *blocks);
>
>
> base-commit: b27d70e1042bf6a31ba7e5acf58b61c9cd28f95b
^ permalink raw reply [flat|nested] 13+ messages in thread
* ✗ Fi.CI.SPARSE: warning for series starting with [v7,1/2] drm/buddy: Add start address support to trim function
2024-07-23 13:25 [PATCH v7 1/2] drm/buddy: Add start address support to trim function Arunpravin Paneer Selvam
2024-07-23 13:25 ` [PATCH v7 2/2] drm/amdgpu: Add address alignment support to DCC buffers Arunpravin Paneer Selvam
2024-07-23 13:43 ` [PATCH v7 1/2] drm/buddy: Add start address support to trim function Paneer Selvam, Arunpravin
@ 2024-07-23 14:04 ` Patchwork
2024-07-23 14:11 ` ✓ Fi.CI.BAT: success " Patchwork
` (3 subsequent siblings)
6 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2024-07-23 14:04 UTC (permalink / raw)
To: Paneer Selvam, Arunpravin; +Cc: intel-gfx
== Series Details ==
Series: series starting with [v7,1/2] drm/buddy: Add start address support to trim function
URL : https://patchwork.freedesktop.org/series/136388/
State : warning
== Summary ==
Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
^ permalink raw reply [flat|nested] 13+ messages in thread
* ✓ Fi.CI.BAT: success for series starting with [v7,1/2] drm/buddy: Add start address support to trim function
2024-07-23 13:25 [PATCH v7 1/2] drm/buddy: Add start address support to trim function Arunpravin Paneer Selvam
` (2 preceding siblings ...)
2024-07-23 14:04 ` ✗ Fi.CI.SPARSE: warning for series starting with [v7,1/2] " Patchwork
@ 2024-07-23 14:11 ` Patchwork
2024-07-23 21:36 ` ✗ Fi.CI.IGT: failure " Patchwork
` (2 subsequent siblings)
6 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2024-07-23 14:11 UTC (permalink / raw)
To: Paneer Selvam, Arunpravin; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 11964 bytes --]
== Series Details ==
Series: series starting with [v7,1/2] drm/buddy: Add start address support to trim function
URL : https://patchwork.freedesktop.org/series/136388/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_15117 -> Patchwork_136388v1
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/index.html
Participating hosts (36 -> 34)
------------------------------
Additional (3): bat-dg2-14 bat-adlp-9 bat-adlp-6
Missing (5): fi-kbl-7567u fi-snb-2520m fi-cfl-8109u bat-arlh-2 bat-mtlp-6
Known issues
------------
Here are the changes found in Patchwork_136388v1 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@debugfs_test@basic-hwmon:
- bat-adlp-9: NOTRUN -> [SKIP][1] ([i915#9318])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-9/igt@debugfs_test@basic-hwmon.html
- bat-adlp-6: NOTRUN -> [SKIP][2] ([i915#9318])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-6/igt@debugfs_test@basic-hwmon.html
* igt@gem_lmem_swapping@basic:
- bat-adlp-9: NOTRUN -> [SKIP][3] ([i915#4613]) +3 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-9/igt@gem_lmem_swapping@basic.html
* igt@gem_lmem_swapping@random-engines:
- bat-adlp-6: NOTRUN -> [SKIP][4] ([i915#4613]) +3 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-6/igt@gem_lmem_swapping@random-engines.html
* igt@gem_mmap@basic:
- bat-dg2-14: NOTRUN -> [SKIP][5] ([i915#4083])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@gem_mmap@basic.html
* igt@gem_render_tiled_blits@basic:
- bat-dg2-14: NOTRUN -> [SKIP][6] ([i915#4079]) +1 other test skip
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@gem_render_tiled_blits@basic.html
* igt@gem_tiled_fence_blits@basic:
- bat-dg2-14: NOTRUN -> [SKIP][7] ([i915#4077]) +2 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@gem_tiled_fence_blits@basic.html
* igt@gem_tiled_pread_basic:
- bat-adlp-6: NOTRUN -> [SKIP][8] ([i915#3282])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-6/igt@gem_tiled_pread_basic.html
- bat-adlp-9: NOTRUN -> [SKIP][9] ([i915#3282])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-9/igt@gem_tiled_pread_basic.html
* igt@i915_pm_rps@basic-api:
- bat-adlp-9: NOTRUN -> [SKIP][10] ([i915#6621])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-9/igt@i915_pm_rps@basic-api.html
- bat-dg2-14: NOTRUN -> [SKIP][11] ([i915#6621])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@i915_pm_rps@basic-api.html
- bat-adlp-6: NOTRUN -> [SKIP][12] ([i915#6621])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-6/igt@i915_pm_rps@basic-api.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-dg2-14: NOTRUN -> [SKIP][13] ([i915#5190])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_addfb_basic@basic-x-tiled-legacy:
- bat-dg2-14: NOTRUN -> [SKIP][14] ([i915#4212]) +7 other tests skip
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@kms_addfb_basic@basic-x-tiled-legacy.html
* igt@kms_addfb_basic@basic-y-tiled-legacy:
- bat-dg2-14: NOTRUN -> [SKIP][15] ([i915#4215] / [i915#5190])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@kms_addfb_basic@basic-y-tiled-legacy.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- bat-adlp-9: NOTRUN -> [SKIP][16] ([i915#4103]) +1 other test skip
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-9/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-dg2-14: NOTRUN -> [SKIP][17] ([i915#4103] / [i915#4213]) +1 other test skip
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
- bat-adlp-6: NOTRUN -> [SKIP][18] ([i915#4103]) +1 other test skip
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_dsc@dsc-basic:
- bat-dg2-14: NOTRUN -> [SKIP][19] ([i915#3555] / [i915#3840])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@kms_dsc@dsc-basic.html
- bat-adlp-6: NOTRUN -> [SKIP][20] ([i915#3555] / [i915#3840])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-6/igt@kms_dsc@dsc-basic.html
- bat-adlp-9: NOTRUN -> [SKIP][21] ([i915#3555] / [i915#3840])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-9/igt@kms_dsc@dsc-basic.html
* igt@kms_force_connector_basic@force-load-detect:
- bat-dg2-14: NOTRUN -> [SKIP][22]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@kms_force_connector_basic@force-load-detect.html
- bat-adlp-6: NOTRUN -> [SKIP][23]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-6/igt@kms_force_connector_basic@force-load-detect.html
- bat-adlp-9: NOTRUN -> [SKIP][24]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-9/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_force_connector_basic@prune-stale-modes:
- bat-dg2-14: NOTRUN -> [SKIP][25] ([i915#5274])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@kms_force_connector_basic@prune-stale-modes.html
* igt@kms_pm_backlight@basic-brightness:
- bat-dg2-14: NOTRUN -> [SKIP][26] ([i915#5354])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@kms_pm_backlight@basic-brightness.html
- bat-adlp-9: NOTRUN -> [SKIP][27] ([i915#9812])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-9/igt@kms_pm_backlight@basic-brightness.html
* igt@kms_psr@psr-sprite-plane-onoff:
- bat-adlp-9: NOTRUN -> [SKIP][28] ([i915#1072] / [i915#9673] / [i915#9732]) +3 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-9/igt@kms_psr@psr-sprite-plane-onoff.html
- bat-dg2-14: NOTRUN -> [SKIP][29] ([i915#1072] / [i915#9732]) +3 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@kms_psr@psr-sprite-plane-onoff.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-adlp-9: NOTRUN -> [SKIP][30] ([i915#3555])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-9/igt@kms_setmode@basic-clone-single-crtc.html
- bat-dg2-14: NOTRUN -> [SKIP][31] ([i915#3555])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@kms_setmode@basic-clone-single-crtc.html
- bat-adlp-6: NOTRUN -> [SKIP][32] ([i915#3555])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-6/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-fence-flip:
- bat-dg2-14: NOTRUN -> [SKIP][33] ([i915#3708])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@prime_vgem@basic-fence-flip.html
* igt@prime_vgem@basic-fence-mmap:
- bat-dg2-14: NOTRUN -> [SKIP][34] ([i915#3708] / [i915#4077]) +1 other test skip
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@prime_vgem@basic-fence-mmap.html
* igt@prime_vgem@basic-fence-read:
- bat-adlp-9: NOTRUN -> [SKIP][35] ([i915#3291] / [i915#3708]) +2 other tests skip
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-9/igt@prime_vgem@basic-fence-read.html
- bat-adlp-6: NOTRUN -> [SKIP][36] ([i915#3291] / [i915#3708]) +2 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-adlp-6/igt@prime_vgem@basic-fence-read.html
* igt@prime_vgem@basic-read:
- bat-dg2-14: NOTRUN -> [SKIP][37] ([i915#3291] / [i915#3708]) +2 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-dg2-14/igt@prime_vgem@basic-read.html
#### Possible fixes ####
* igt@i915_selftest@live@late_gt_pm:
- bat-arls-2: [DMESG-FAIL][38] ([i915#10262]) -> [PASS][39] +3 other tests pass
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/bat-arls-2/igt@i915_selftest@live@late_gt_pm.html
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-arls-2/igt@i915_selftest@live@late_gt_pm.html
* igt@i915_selftest@live@slpc:
- bat-arls-2: [DMESG-WARN][40] ([i915#10341]) -> [PASS][41]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/bat-arls-2/igt@i915_selftest@live@slpc.html
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/bat-arls-2/igt@i915_selftest@live@slpc.html
[i915#10262]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10262
[i915#10341]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10341
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
[i915#4215]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4215
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5274]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5274
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
[i915#9318]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9318
[i915#9673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9673
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
Build changes
-------------
* Linux: CI_DRM_15117 -> Patchwork_136388v1
CI-20190529: 20190529
CI_DRM_15117: 049eae5224ed92f3cb723a492593b255654e0649 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7935: a85286b8cdfc8d2c902128946e90f8b17cecaa89 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_136388v1: 049eae5224ed92f3cb723a492593b255654e0649 @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/index.html
[-- Attachment #2: Type: text/html, Size: 15031 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v7 1/2] drm/buddy: Add start address support to trim function
2024-07-23 13:43 ` [PATCH v7 1/2] drm/buddy: Add start address support to trim function Paneer Selvam, Arunpravin
@ 2024-07-23 15:02 ` Matthew Auld
2024-07-24 1:35 ` Marek Olšák
0 siblings, 1 reply; 13+ messages in thread
From: Matthew Auld @ 2024-07-23 15:02 UTC (permalink / raw)
To: Paneer Selvam, Arunpravin, dri-devel, amd-gfx, intel-gfx
Cc: christian.koenig, alexander.deucher, frank.min, marek.olsak
On 23/07/2024 14:43, Paneer Selvam, Arunpravin wrote:
> Hi Matthew,
>
> Can we push this version for now as we need to mainline the DCC changes
> ASAP,
> while we continue our discussion and proceed to implement the permanent
> solution
> for address alignment?
Yeah, we can always merge now and circle back around later, if this for
sure helps your usecase and is needed asap. I just didn't fully get the
idea for needing this interface, but likely I am missing something.
>
> Thanks,
> Arun.
>
> On 7/23/2024 6:55 PM, Arunpravin Paneer Selvam wrote:
>> - Add a new start parameter in trim function to specify exact
>> address from where to start the trimming. This would help us
>> in situations like if drivers would like to do address alignment
>> for specific requirements.
>>
>> - Add a new flag DRM_BUDDY_TRIM_DISABLE. Drivers can use this
>> flag to disable the allocator trimming part. This patch enables
>> the drivers control trimming and they can do it themselves
>> based on the application requirements.
>>
>> v1:(Matthew)
>> - check new_start alignment with min chunk_size
>> - use range_overflows()
>>
>> Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
>> Acked-by: Alex Deucher <alexander.deucher@amd.com>
>> Acked-by: Christian König <christian.koenig@amd.com>
>> ---
>> drivers/gpu/drm/drm_buddy.c | 25 +++++++++++++++++++++++--
>> drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 2 +-
>> include/drm/drm_buddy.h | 2 ++
>> 3 files changed, 26 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_buddy.c b/drivers/gpu/drm/drm_buddy.c
>> index 6a8e45e9d0ec..103c185bb1c8 100644
>> --- a/drivers/gpu/drm/drm_buddy.c
>> +++ b/drivers/gpu/drm/drm_buddy.c
>> @@ -851,6 +851,7 @@ static int __alloc_contig_try_harder(struct
>> drm_buddy *mm,
>> * drm_buddy_block_trim - free unused pages
>> *
>> * @mm: DRM buddy manager
>> + * @start: start address to begin the trimming.
>> * @new_size: original size requested
>> * @blocks: Input and output list of allocated blocks.
>> * MUST contain single block as input to be trimmed.
>> @@ -866,11 +867,13 @@ static int __alloc_contig_try_harder(struct
>> drm_buddy *mm,
>> * 0 on success, error code on failure.
>> */
>> int drm_buddy_block_trim(struct drm_buddy *mm,
>> + u64 *start,
>> u64 new_size,
>> struct list_head *blocks)
>> {
>> struct drm_buddy_block *parent;
>> struct drm_buddy_block *block;
>> + u64 block_start, block_end;
>> LIST_HEAD(dfs);
>> u64 new_start;
>> int err;
>> @@ -882,6 +885,9 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
>> struct drm_buddy_block,
>> link);
>> + block_start = drm_buddy_block_offset(block);
>> + block_end = block_start + drm_buddy_block_size(mm, block);
>> +
>> if (WARN_ON(!drm_buddy_block_is_allocated(block)))
>> return -EINVAL;
>> @@ -894,6 +900,20 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
>> if (new_size == drm_buddy_block_size(mm, block))
>> return 0;
>> + new_start = block_start;
>> + if (start) {
>> + new_start = *start;
>> +
>> + if (new_start < block_start)
>> + return -EINVAL;
>> +
>> + if (!IS_ALIGNED(new_start, mm->chunk_size))
>> + return -EINVAL;
>> +
>> + if (range_overflows(new_start, new_size, block_end))
>> + return -EINVAL;
>> + }
>> +
>> list_del(&block->link);
>> mark_free(mm, block);
>> mm->avail += drm_buddy_block_size(mm, block);
>> @@ -904,7 +924,6 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
>> parent = block->parent;
>> block->parent = NULL;
>> - new_start = drm_buddy_block_offset(block);
>> list_add(&block->tmp_link, &dfs);
>> err = __alloc_range(mm, &dfs, new_start, new_size, blocks, NULL);
>> if (err) {
>> @@ -1066,7 +1085,8 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
>> } while (1);
>> /* Trim the allocated block to the required size */
>> - if (original_size != size) {
>> + if (!(flags & DRM_BUDDY_TRIM_DISABLE) &&
>> + original_size != size) {
>> struct list_head *trim_list;
>> LIST_HEAD(temp);
>> u64 trim_size;
>> @@ -1083,6 +1103,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
>> }
>> drm_buddy_block_trim(mm,
>> + NULL,
>> trim_size,
>> trim_list);
>> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>> b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>> index fe3779fdba2c..423b261ea743 100644
>> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>> @@ -150,7 +150,7 @@ static int xe_ttm_vram_mgr_new(struct
>> ttm_resource_manager *man,
>> } while (remaining_size);
>> if (place->flags & TTM_PL_FLAG_CONTIGUOUS) {
>> - if (!drm_buddy_block_trim(mm, vres->base.size, &vres->blocks))
>> + if (!drm_buddy_block_trim(mm, NULL, vres->base.size,
>> &vres->blocks))
>> size = vres->base.size;
>> }
>> diff --git a/include/drm/drm_buddy.h b/include/drm/drm_buddy.h
>> index 2a74fa9d0ce5..9689a7c5dd36 100644
>> --- a/include/drm/drm_buddy.h
>> +++ b/include/drm/drm_buddy.h
>> @@ -27,6 +27,7 @@
>> #define DRM_BUDDY_CONTIGUOUS_ALLOCATION BIT(2)
>> #define DRM_BUDDY_CLEAR_ALLOCATION BIT(3)
>> #define DRM_BUDDY_CLEARED BIT(4)
>> +#define DRM_BUDDY_TRIM_DISABLE BIT(5)
>> struct drm_buddy_block {
>> #define DRM_BUDDY_HEADER_OFFSET GENMASK_ULL(63, 12)
>> @@ -155,6 +156,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
>> unsigned long flags);
>> int drm_buddy_block_trim(struct drm_buddy *mm,
>> + u64 *start,
>> u64 new_size,
>> struct list_head *blocks);
>>
>> base-commit: b27d70e1042bf6a31ba7e5acf58b61c9cd28f95b
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* ✗ Fi.CI.IGT: failure for series starting with [v7,1/2] drm/buddy: Add start address support to trim function
2024-07-23 13:25 [PATCH v7 1/2] drm/buddy: Add start address support to trim function Arunpravin Paneer Selvam
` (3 preceding siblings ...)
2024-07-23 14:11 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2024-07-23 21:36 ` Patchwork
2024-07-24 9:48 ` [PATCH v7 1/2] " Matthew Auld
2024-07-24 15:12 ` Jani Nikula
6 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2024-07-23 21:36 UTC (permalink / raw)
To: Paneer Selvam, Arunpravin; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 64093 bytes --]
== Series Details ==
Series: series starting with [v7,1/2] drm/buddy: Add start address support to trim function
URL : https://patchwork.freedesktop.org/series/136388/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_15117_full -> Patchwork_136388v1_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_136388v1_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_136388v1_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (9 -> 9)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_136388v1_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_cursor_legacy@cursor-vs-flip-varying-size:
- shard-dg1: NOTRUN -> [INCOMPLETE][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_cursor_legacy@cursor-vs-flip-varying-size.html
* igt@prime_self_import@reimport-vs-gem_close-race:
- shard-dg2: NOTRUN -> [INCOMPLETE][2]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-2/igt@prime_self_import@reimport-vs-gem_close-race.html
Known issues
------------
Here are the changes found in Patchwork_136388v1_full that come from known issues:
### CI changes ###
#### Issues hit ####
* boot:
- shard-glk: ([PASS][3], [PASS][4], [PASS][5], [PASS][6], [PASS][7], [PASS][8], [PASS][9], [PASS][10], [PASS][11], [PASS][12], [PASS][13], [PASS][14], [PASS][15], [PASS][16], [PASS][17], [PASS][18], [PASS][19], [PASS][20]) -> ([PASS][21], [PASS][22], [PASS][23], [PASS][24], [PASS][25], [PASS][26], [PASS][27], [PASS][28], [PASS][29], [PASS][30], [PASS][31], [FAIL][32], [PASS][33], [PASS][34], [PASS][35], [PASS][36], [PASS][37], [PASS][38]) ([i915#11073])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk7/boot.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk7/boot.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk7/boot.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk7/boot.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk3/boot.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk3/boot.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk3/boot.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk3/boot.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk2/boot.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk2/boot.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk2/boot.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk2/boot.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk2/boot.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk2/boot.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk1/boot.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk1/boot.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk1/boot.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk1/boot.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk7/boot.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk1/boot.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk7/boot.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk7/boot.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk2/boot.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk3/boot.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk3/boot.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk1/boot.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk3/boot.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk2/boot.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk1/boot.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk2/boot.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk3/boot.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk3/boot.html
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk3/boot.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk7/boot.html
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk1/boot.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk1/boot.html
### IGT changes ###
#### Issues hit ####
* igt@api_intel_bb@blit-reloc-purge-cache:
- shard-dg1: NOTRUN -> [SKIP][39] ([i915#8411]) +1 other test skip
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-14/igt@api_intel_bb@blit-reloc-purge-cache.html
* igt@api_intel_bb@object-reloc-purge-cache:
- shard-dg2: NOTRUN -> [SKIP][40] ([i915#8411])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@api_intel_bb@object-reloc-purge-cache.html
* igt@device_reset@unbind-cold-reset-rebind:
- shard-dg2: NOTRUN -> [SKIP][41] ([i915#11078])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@device_reset@unbind-cold-reset-rebind.html
* igt@drm_fdinfo@virtual-busy-idle-all:
- shard-dg1: NOTRUN -> [SKIP][42] ([i915#8414]) +1 other test skip
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@drm_fdinfo@virtual-busy-idle-all.html
* igt@gem_close_race@multigpu-basic-process:
- shard-dg1: NOTRUN -> [SKIP][43] ([i915#7697])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@gem_close_race@multigpu-basic-process.html
* igt@gem_create@create-ext-set-pat:
- shard-rkl: NOTRUN -> [SKIP][44] ([i915#8562])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@gem_create@create-ext-set-pat.html
* igt@gem_ctx_persistence@heartbeat-many:
- shard-dg1: NOTRUN -> [SKIP][45] ([i915#8555])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@gem_ctx_persistence@heartbeat-many.html
* igt@gem_ctx_persistence@legacy-engines-cleanup:
- shard-snb: NOTRUN -> [SKIP][46] ([i915#1099])
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-snb5/igt@gem_ctx_persistence@legacy-engines-cleanup.html
* igt@gem_eio@reset-stress:
- shard-dg1: NOTRUN -> [FAIL][47] ([i915#5784])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-14/igt@gem_eio@reset-stress.html
* igt@gem_exec_balancer@invalid-bonds:
- shard-dg1: NOTRUN -> [SKIP][48] ([i915#4036])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@gem_exec_balancer@invalid-bonds.html
* igt@gem_exec_balancer@parallel-dmabuf-import-out-fence:
- shard-rkl: NOTRUN -> [SKIP][49] ([i915#4525])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@gem_exec_balancer@parallel-dmabuf-import-out-fence.html
* igt@gem_exec_fair@basic-deadline:
- shard-dg1: NOTRUN -> [SKIP][50] ([i915#3539] / [i915#4852])
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@gem_exec_fair@basic-deadline.html
- shard-glk: [PASS][51] -> [FAIL][52] ([i915#2846])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk3/igt@gem_exec_fair@basic-deadline.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk3/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-none@vcs0:
- shard-rkl: NOTRUN -> [FAIL][53] ([i915#2842]) +2 other tests fail
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@gem_exec_fair@basic-none@vcs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-tglu: [PASS][54] -> [FAIL][55] ([i915#2842])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-tglu-6/igt@gem_exec_fair@basic-pace-share@rcs0.html
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-tglu-5/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_fair@basic-pace@vecs0:
- shard-rkl: [PASS][56] -> [FAIL][57] ([i915#2842]) +3 other tests fail
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-rkl-2/igt@gem_exec_fair@basic-pace@vecs0.html
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@gem_exec_fair@basic-pace@vecs0.html
* igt@gem_exec_fence@submit:
- shard-dg2: NOTRUN -> [SKIP][58] ([i915#4812])
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@gem_exec_fence@submit.html
* igt@gem_exec_flush@basic-wb-ro-before-default:
- shard-dg2: NOTRUN -> [SKIP][59] ([i915#3539] / [i915#4852]) +4 other tests skip
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@gem_exec_flush@basic-wb-ro-before-default.html
* igt@gem_exec_reloc@basic-cpu-gtt:
- shard-dg2: NOTRUN -> [SKIP][60] ([i915#3281]) +6 other tests skip
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@gem_exec_reloc@basic-cpu-gtt.html
* igt@gem_exec_reloc@basic-wc:
- shard-rkl: NOTRUN -> [SKIP][61] ([i915#3281]) +2 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@gem_exec_reloc@basic-wc.html
* igt@gem_exec_reloc@basic-wc-read-noreloc:
- shard-dg1: NOTRUN -> [SKIP][62] ([i915#3281]) +9 other tests skip
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@gem_exec_reloc@basic-wc-read-noreloc.html
* igt@gem_exec_schedule@semaphore-power:
- shard-dg1: NOTRUN -> [SKIP][63] ([i915#4812])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-14/igt@gem_exec_schedule@semaphore-power.html
* igt@gem_fence_thrash@bo-write-verify-x:
- shard-dg1: NOTRUN -> [SKIP][64] ([i915#4860])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@gem_fence_thrash@bo-write-verify-x.html
* igt@gem_lmem_swapping@heavy-verify-multi@lmem0:
- shard-dg1: [PASS][65] -> [FAIL][66] ([i915#10378])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-dg1-13/igt@gem_lmem_swapping@heavy-verify-multi@lmem0.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@gem_lmem_swapping@heavy-verify-multi@lmem0.html
* igt@gem_lmem_swapping@heavy-verify-random@lmem0:
- shard-dg1: NOTRUN -> [FAIL][67] ([i915#10378])
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@gem_lmem_swapping@heavy-verify-random@lmem0.html
* igt@gem_lmem_swapping@massive-random:
- shard-glk: NOTRUN -> [SKIP][68] ([i915#4613]) +1 other test skip
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk3/igt@gem_lmem_swapping@massive-random.html
* igt@gem_lmem_swapping@parallel-multi:
- shard-rkl: NOTRUN -> [SKIP][69] ([i915#4613])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@gem_lmem_swapping@parallel-multi.html
* igt@gem_mmap_gtt@zero-extend:
- shard-dg1: NOTRUN -> [SKIP][70] ([i915#4077]) +3 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@gem_mmap_gtt@zero-extend.html
* igt@gem_mmap_wc@bad-size:
- shard-dg2: NOTRUN -> [SKIP][71] ([i915#4083])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@gem_mmap_wc@bad-size.html
* igt@gem_mmap_wc@write-cpu-read-wc-unflushed:
- shard-dg1: NOTRUN -> [SKIP][72] ([i915#4083]) +3 other tests skip
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@gem_mmap_wc@write-cpu-read-wc-unflushed.html
* igt@gem_partial_pwrite_pread@reads-snoop:
- shard-dg1: NOTRUN -> [SKIP][73] ([i915#3282]) +7 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-14/igt@gem_partial_pwrite_pread@reads-snoop.html
* igt@gem_partial_pwrite_pread@writes-after-reads-display:
- shard-rkl: NOTRUN -> [SKIP][74] ([i915#3282]) +2 other tests skip
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@gem_partial_pwrite_pread@writes-after-reads-display.html
* igt@gem_pxp@create-regular-context-2:
- shard-dg2: NOTRUN -> [SKIP][75] ([i915#4270]) +1 other test skip
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@gem_pxp@create-regular-context-2.html
* igt@gem_pxp@fail-invalid-protected-context:
- shard-rkl: NOTRUN -> [SKIP][76] ([i915#4270])
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@gem_pxp@fail-invalid-protected-context.html
* igt@gem_pxp@reject-modify-context-protection-on:
- shard-dg1: NOTRUN -> [SKIP][77] ([i915#4270]) +1 other test skip
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@gem_pxp@reject-modify-context-protection-on.html
* igt@gem_render_copy@y-tiled-ccs-to-y-tiled:
- shard-dg2: NOTRUN -> [SKIP][78] ([i915#5190] / [i915#8428]) +3 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@gem_render_copy@y-tiled-ccs-to-y-tiled.html
* igt@gem_softpin@evict-snoop-interruptible:
- shard-dg2: NOTRUN -> [SKIP][79] ([i915#4885])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@gem_softpin@evict-snoop-interruptible.html
* igt@gem_userptr_blits@create-destroy-unsync:
- shard-dg1: NOTRUN -> [SKIP][80] ([i915#3297]) +2 other tests skip
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-14/igt@gem_userptr_blits@create-destroy-unsync.html
* igt@gem_userptr_blits@dmabuf-unsync:
- shard-dg2: NOTRUN -> [SKIP][81] ([i915#3297]) +2 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@gem_userptr_blits@dmabuf-unsync.html
* igt@gem_userptr_blits@relocations:
- shard-dg2: NOTRUN -> [SKIP][82] ([i915#3281] / [i915#3297])
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@gem_userptr_blits@relocations.html
* igt@gen9_exec_parse@allowed-single:
- shard-rkl: NOTRUN -> [SKIP][83] ([i915#2527])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@gen9_exec_parse@allowed-single.html
* igt@gen9_exec_parse@basic-rejected-ctx-param:
- shard-snb: NOTRUN -> [SKIP][84] +33 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-snb5/igt@gen9_exec_parse@basic-rejected-ctx-param.html
* igt@gen9_exec_parse@batch-zero-length:
- shard-dg1: NOTRUN -> [SKIP][85] ([i915#2527])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@gen9_exec_parse@batch-zero-length.html
* igt@gen9_exec_parse@secure-batches:
- shard-dg2: NOTRUN -> [SKIP][86] ([i915#2856]) +2 other tests skip
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@gen9_exec_parse@secure-batches.html
* igt@i915_module_load@load:
- shard-dg2: NOTRUN -> [SKIP][87] ([i915#6227])
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@i915_module_load@load.html
* igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0:
- shard-dg1: [PASS][88] -> [FAIL][89] ([i915#3591])
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-dg1-16/igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0.html
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-16/igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0.html
* igt@i915_pm_rps@thresholds@gt0:
- shard-dg2: NOTRUN -> [SKIP][90] ([i915#8925])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@i915_pm_rps@thresholds@gt0.html
* igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling:
- shard-mtlp: NOTRUN -> [SKIP][91] ([i915#4212])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-mtlp-3/igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling.html
* igt@kms_addfb_basic@bo-too-small-due-to-tiling:
- shard-dg1: NOTRUN -> [SKIP][92] ([i915#4212])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
- shard-dg1: NOTRUN -> [SKIP][93] ([i915#1769] / [i915#3555])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
* igt@kms_big_fb@4-tiled-32bpp-rotate-270:
- shard-rkl: NOTRUN -> [SKIP][94] ([i915#5286]) +2 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_big_fb@4-tiled-32bpp-rotate-270.html
* igt@kms_big_fb@4-tiled-addfb:
- shard-dg1: NOTRUN -> [SKIP][95] ([i915#5286])
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_big_fb@4-tiled-addfb.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
- shard-dg1: NOTRUN -> [SKIP][96] ([i915#4538] / [i915#5286]) +3 other tests skip
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
* igt@kms_big_fb@x-tiled-8bpp-rotate-270:
- shard-dg1: NOTRUN -> [SKIP][97] ([i915#3638]) +1 other test skip
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-14/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-32bpp-rotate-90:
- shard-dg2: NOTRUN -> [SKIP][98] ([i915#4538] / [i915#5190]) +3 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@kms_big_fb@y-tiled-32bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-8bpp-rotate-90:
- shard-rkl: NOTRUN -> [SKIP][99] ([i915#3638]) +1 other test skip
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-addfb-size-overflow:
- shard-dg2: NOTRUN -> [SKIP][100] ([i915#5190]) +1 other test skip
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
- shard-dg1: NOTRUN -> [SKIP][101] ([i915#4538]) +2 other tests skip
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-14/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
* igt@kms_big_joiner@invalid-modeset:
- shard-dg1: NOTRUN -> [SKIP][102] ([i915#10656])
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@kms_big_joiner@invalid-modeset.html
* igt@kms_big_joiner@invalid-modeset-force-joiner:
- shard-rkl: NOTRUN -> [SKIP][103] ([i915#10656]) +1 other test skip
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_big_joiner@invalid-modeset-force-joiner.html
* igt@kms_ccs@bad-aux-stride-y-tiled-ccs@pipe-c-hdmi-a-4:
- shard-dg1: NOTRUN -> [SKIP][104] ([i915#6095]) +67 other tests skip
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@kms_ccs@bad-aux-stride-y-tiled-ccs@pipe-c-hdmi-a-4.html
* igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][105] ([i915#6095]) +39 other tests skip
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][106] ([i915#10307] / [i915#10434] / [i915#6095]) +2 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-1.html
* igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-c-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][107] ([i915#10307] / [i915#6095]) +160 other tests skip
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-c-hdmi-a-1.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-dg1: NOTRUN -> [SKIP][108] ([i915#3742])
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-14/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_cdclk@mode-transition@pipe-a-dp-4:
- shard-dg2: NOTRUN -> [SKIP][109] ([i915#11616] / [i915#7213]) +3 other tests skip
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_cdclk@mode-transition@pipe-a-dp-4.html
* igt@kms_cdclk@plane-scaling@pipe-b-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][110] ([i915#4087]) +3 other tests skip
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-1/igt@kms_cdclk@plane-scaling@pipe-b-hdmi-a-3.html
* igt@kms_chamelium_audio@hdmi-audio-edid:
- shard-dg1: NOTRUN -> [SKIP][111] ([i915#7828]) +7 other tests skip
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_chamelium_audio@hdmi-audio-edid.html
* igt@kms_chamelium_frames@dp-crc-fast:
- shard-dg2: NOTRUN -> [SKIP][112] ([i915#7828]) +3 other tests skip
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@kms_chamelium_frames@dp-crc-fast.html
* igt@kms_chamelium_hpd@vga-hpd-fast:
- shard-rkl: NOTRUN -> [SKIP][113] ([i915#7828]) +4 other tests skip
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@kms_chamelium_hpd@vga-hpd-fast.html
* igt@kms_content_protection@dp-mst-lic-type-0:
- shard-dg1: NOTRUN -> [SKIP][114] ([i915#3299])
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-14/igt@kms_content_protection@dp-mst-lic-type-0.html
* igt@kms_content_protection@legacy:
- shard-dg1: NOTRUN -> [SKIP][115] ([i915#7116] / [i915#9424])
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_content_protection@legacy.html
* igt@kms_content_protection@lic-type-1:
- shard-rkl: NOTRUN -> [SKIP][116] ([i915#9424])
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_content_protection@lic-type-1.html
* igt@kms_content_protection@type1:
- shard-dg2: NOTRUN -> [SKIP][117] ([i915#7118] / [i915#7162] / [i915#9424])
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_content_protection@type1.html
* igt@kms_content_protection@uevent:
- shard-dg2: NOTRUN -> [SKIP][118] ([i915#7118] / [i915#9424]) +2 other tests skip
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-5/igt@kms_content_protection@uevent.html
* igt@kms_cursor_crc@cursor-offscreen-32x10:
- shard-dg2: NOTRUN -> [SKIP][119] ([i915#3555]) +2 other tests skip
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_cursor_crc@cursor-offscreen-32x10.html
* igt@kms_cursor_crc@cursor-onscreen-32x32:
- shard-rkl: NOTRUN -> [SKIP][120] ([i915#3555]) +2 other tests skip
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@kms_cursor_crc@cursor-onscreen-32x32.html
- shard-dg1: NOTRUN -> [SKIP][121] ([i915#3555]) +4 other tests skip
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_cursor_crc@cursor-onscreen-32x32.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x512:
- shard-dg1: NOTRUN -> [SKIP][122] ([i915#11453])
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- shard-dg2: NOTRUN -> [SKIP][123] ([i915#4103] / [i915#4213])
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
- shard-dg1: NOTRUN -> [SKIP][124] +26 other tests skip
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
- shard-dg1: NOTRUN -> [SKIP][125] ([i915#4103] / [i915#4213])
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
* igt@kms_draw_crc@draw-method-mmap-wc:
- shard-dg1: NOTRUN -> [SKIP][126] ([i915#8812])
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@kms_draw_crc@draw-method-mmap-wc.html
* igt@kms_dsc@dsc-fractional-bpp-with-bpc:
- shard-rkl: NOTRUN -> [SKIP][127] ([i915#3840])
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html
* igt@kms_dsc@dsc-with-bpc-formats:
- shard-dg2: NOTRUN -> [SKIP][128] ([i915#3555] / [i915#3840])
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@kms_dsc@dsc-with-bpc-formats.html
* igt@kms_feature_discovery@dp-mst:
- shard-dg1: NOTRUN -> [SKIP][129] ([i915#9337])
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@kms_feature_discovery@dp-mst.html
* igt@kms_feature_discovery@psr2:
- shard-dg2: NOTRUN -> [SKIP][130] ([i915#658])
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_feature_discovery@psr2.html
* igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
- shard-dg1: NOTRUN -> [SKIP][131] ([i915#9934]) +4 other tests skip
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html
* igt@kms_flip@2x-flip-vs-absolute-wf_vblank@ab-vga1-hdmi-a1:
- shard-snb: [PASS][132] -> [FAIL][133] ([i915#2122])
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-snb2/igt@kms_flip@2x-flip-vs-absolute-wf_vblank@ab-vga1-hdmi-a1.html
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-snb7/igt@kms_flip@2x-flip-vs-absolute-wf_vblank@ab-vga1-hdmi-a1.html
* igt@kms_flip@2x-flip-vs-fences:
- shard-dg1: NOTRUN -> [SKIP][134] ([i915#8381])
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@kms_flip@2x-flip-vs-fences.html
* igt@kms_flip@2x-modeset-vs-vblank-race:
- shard-dg2: NOTRUN -> [SKIP][135] +12 other tests skip
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@kms_flip@2x-modeset-vs-vblank-race.html
* igt@kms_flip@2x-plain-flip-interruptible:
- shard-rkl: NOTRUN -> [SKIP][136] +11 other tests skip
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_flip@2x-plain-flip-interruptible.html
* igt@kms_flip@flip-vs-fences:
- shard-dg2: NOTRUN -> [SKIP][137] ([i915#8381])
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_flip@flip-vs-fences.html
* igt@kms_flip@plain-flip-fb-recreate@d-hdmi-a1:
- shard-dg2: NOTRUN -> [FAIL][138] ([i915#2122]) +1 other test fail
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@kms_flip@plain-flip-fb-recreate@d-hdmi-a1.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
- shard-dg1: NOTRUN -> [SKIP][139] ([i915#2587] / [i915#2672]) +2 other tests skip
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][140] ([i915#2672]) +1 other test skip
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-rkl: NOTRUN -> [SKIP][141] ([i915#2672]) +1 other test skip
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt:
- shard-rkl: NOTRUN -> [SKIP][142] ([i915#1825]) +15 other tests skip
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt:
- shard-dg2: NOTRUN -> [SKIP][143] ([i915#5354]) +18 other tests skip
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-tiling-4:
- shard-dg1: NOTRUN -> [SKIP][144] ([i915#5439])
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_frontbuffer_tracking@fbc-tiling-4.html
* igt@kms_frontbuffer_tracking@fbc-tiling-y:
- shard-dg2: NOTRUN -> [SKIP][145] ([i915#10055])
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-tiling-y.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
- shard-rkl: NOTRUN -> [SKIP][146] ([i915#3023]) +10 other tests skip
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc:
- shard-dg1: NOTRUN -> [SKIP][147] ([i915#8708]) +12 other tests skip
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-blt:
- shard-dg2: NOTRUN -> [SKIP][148] ([i915#3458]) +7 other tests skip
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-wc:
- shard-dg2: NOTRUN -> [SKIP][149] ([i915#8708]) +7 other tests skip
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-cpu:
- shard-dg1: NOTRUN -> [SKIP][150] ([i915#3458]) +11 other tests skip
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-cpu.html
* igt@kms_getfb@getfb-reject-ccs:
- shard-dg2: NOTRUN -> [SKIP][151] ([i915#6118])
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@kms_getfb@getfb-reject-ccs.html
* igt@kms_hdr@static-swap:
- shard-dg1: NOTRUN -> [SKIP][152] ([i915#3555] / [i915#8228])
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-14/igt@kms_hdr@static-swap.html
* igt@kms_hdr@static-toggle-suspend:
- shard-rkl: NOTRUN -> [SKIP][153] ([i915#3555] / [i915#8228]) +1 other test skip
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_hdr@static-toggle-suspend.html
* igt@kms_panel_fitting@atomic-fastset:
- shard-dg1: NOTRUN -> [SKIP][154] ([i915#6301])
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@kms_panel_fitting@atomic-fastset.html
* igt@kms_plane_alpha_blend@alpha-basic@pipe-c-hdmi-a-1:
- shard-glk: NOTRUN -> [FAIL][155] ([i915#7862]) +1 other test fail
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk1/igt@kms_plane_alpha_blend@alpha-basic@pipe-c-hdmi-a-1.html
* igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1:
- shard-glk: NOTRUN -> [FAIL][156] ([i915#10647]) +1 other test fail
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk3/igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1.html
* igt@kms_plane_multiple@tiling-y:
- shard-dg2: NOTRUN -> [SKIP][157] ([i915#8806])
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_plane_multiple@tiling-y.html
* igt@kms_plane_scaling@intel-max-src-size:
- shard-dg2: NOTRUN -> [SKIP][158] ([i915#6953] / [i915#9423])
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-5/igt@kms_plane_scaling@intel-max-src-size.html
* igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-4:
- shard-dg1: NOTRUN -> [FAIL][159] ([i915#8292])
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-4.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][160] ([i915#9423]) +3 other tests skip
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-b-hdmi-a-2.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-a-dp-4:
- shard-dg2: NOTRUN -> [SKIP][161] ([i915#9423]) +18 other tests skip
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-a-dp-4.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-b-hdmi-a-1:
- shard-glk: NOTRUN -> [SKIP][162] +124 other tests skip
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk1/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-b-hdmi-a-1.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-d-hdmi-a-4:
- shard-dg1: NOTRUN -> [SKIP][163] ([i915#9423]) +11 other tests skip
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-15/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-d-hdmi-a-4.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c-hdmi-a-2:
- shard-dg2: NOTRUN -> [SKIP][164] ([i915#5235] / [i915#9423]) +2 other tests skip
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-2/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c-hdmi-a-2.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-hdmi-a-1:
- shard-rkl: NOTRUN -> [SKIP][165] ([i915#9728]) +5 other tests skip
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-hdmi-a-1.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-d-hdmi-a-4:
- shard-dg1: NOTRUN -> [SKIP][166] ([i915#9728]) +3 other tests skip
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-d-hdmi-a-4.html
* igt@kms_pm_backlight@fade:
- shard-rkl: NOTRUN -> [SKIP][167] ([i915#5354])
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_pm_backlight@fade.html
* igt@kms_pm_dc@dc3co-vpb-simulation:
- shard-dg1: NOTRUN -> [SKIP][168] ([i915#9685])
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_pm_dc@dc3co-vpb-simulation.html
* igt@kms_pm_dc@dc6-psr:
- shard-rkl: NOTRUN -> [SKIP][169] ([i915#9685])
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@kms_pm_dc@dc6-psr.html
* igt@kms_pm_lpsp@kms-lpsp:
- shard-rkl: NOTRUN -> [SKIP][170] ([i915#9340])
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@kms_pm_lpsp@kms-lpsp.html
* igt@kms_pm_rpm@dpms-lpsp:
- shard-dg1: NOTRUN -> [SKIP][171] ([i915#9519]) +1 other test skip
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-14/igt@kms_pm_rpm@dpms-lpsp.html
* igt@kms_pm_rpm@dpms-mode-unset-lpsp:
- shard-dg2: [PASS][172] -> [SKIP][173] ([i915#9519])
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-dg2-8/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-2/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
* igt@kms_pm_rpm@modeset-non-lpsp:
- shard-rkl: [PASS][174] -> [SKIP][175] ([i915#9519])
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-rkl-6/igt@kms_pm_rpm@modeset-non-lpsp.html
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-2/igt@kms_pm_rpm@modeset-non-lpsp.html
* igt@kms_pm_rpm@pm-tiling:
- shard-dg2: NOTRUN -> [SKIP][176] ([i915#4077]) +2 other tests skip
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_pm_rpm@pm-tiling.html
* igt@kms_prime@basic-modeset-hybrid:
- shard-rkl: NOTRUN -> [SKIP][177] ([i915#6524])
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_prime@basic-modeset-hybrid.html
* igt@kms_psr2_sf@fbc-overlay-plane-move-continuous-exceed-sf@psr2-pipe-b-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][178] ([i915#9808]) +1 other test skip
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-mtlp-3/igt@kms_psr2_sf@fbc-overlay-plane-move-continuous-exceed-sf@psr2-pipe-b-edp-1.html
* igt@kms_psr2_sf@fbc-overlay-plane-update-sf-dmg-area:
- shard-dg2: NOTRUN -> [SKIP][179] ([i915#11520]) +2 other tests skip
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@kms_psr2_sf@fbc-overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-overlay-primary-update-sf-dmg-area:
- shard-dg1: NOTRUN -> [SKIP][180] ([i915#11520]) +2 other tests skip
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-14/igt@kms_psr2_sf@fbc-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_sf@overlay-plane-move-continuous-sf:
- shard-rkl: NOTRUN -> [SKIP][181] ([i915#11520])
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-rkl: NOTRUN -> [SKIP][182] ([i915#9683])
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@fbc-psr-primary-mmap-gtt:
- shard-rkl: NOTRUN -> [SKIP][183] ([i915#1072] / [i915#9732]) +9 other tests skip
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@kms_psr@fbc-psr-primary-mmap-gtt.html
* igt@kms_psr@psr-cursor-render:
- shard-dg2: NOTRUN -> [SKIP][184] ([i915#1072] / [i915#9673] / [i915#9732]) +5 other tests skip
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_psr@psr-cursor-render.html
* igt@kms_psr@psr2-sprite-mmap-gtt:
- shard-dg1: NOTRUN -> [SKIP][185] ([i915#1072] / [i915#9732]) +16 other tests skip
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_psr@psr2-sprite-mmap-gtt.html
* igt@kms_psr@psr2-sprite-plane-onoff:
- shard-dg2: NOTRUN -> [SKIP][186] ([i915#1072] / [i915#9732]) +4 other tests skip
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@kms_psr@psr2-sprite-plane-onoff.html
* igt@kms_rotation_crc@primary-rotation-270:
- shard-dg2: NOTRUN -> [SKIP][187] ([i915#11131] / [i915#4235])
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_rotation_crc@primary-rotation-270.html
* igt@kms_rotation_crc@primary-rotation-90:
- shard-dg2: NOTRUN -> [SKIP][188] ([i915#11131])
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@kms_rotation_crc@primary-rotation-90.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
- shard-rkl: NOTRUN -> [SKIP][189] ([i915#5289])
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
* igt@kms_sysfs_edid_timing:
- shard-dg1: NOTRUN -> [FAIL][190] ([IGT#2] / [i915#6493])
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-14/igt@kms_sysfs_edid_timing.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [FAIL][191] ([i915#9196])
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-6/igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-2.html
* igt@kms_vblank@query-busy-hang@pipe-d-hdmi-a-3:
- shard-dg2: NOTRUN -> [INCOMPLETE][192] ([i915#11662])
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-6/igt@kms_vblank@query-busy-hang@pipe-d-hdmi-a-3.html
* igt@kms_writeback@writeback-check-output:
- shard-dg2: NOTRUN -> [SKIP][193] ([i915#2437]) +1 other test skip
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_writeback@writeback-check-output.html
* igt@kms_writeback@writeback-pixel-formats:
- shard-rkl: NOTRUN -> [SKIP][194] ([i915#2437] / [i915#9412])
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@kms_writeback@writeback-pixel-formats.html
* igt@perf@per-context-mode-unprivileged:
- shard-rkl: NOTRUN -> [SKIP][195] ([i915#2435])
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-3/igt@perf@per-context-mode-unprivileged.html
* igt@prime_vgem@fence-write-hang:
- shard-dg1: NOTRUN -> [SKIP][196] ([i915#3708])
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@prime_vgem@fence-write-hang.html
* igt@syncobj_timeline@invalid-wait-zero-handles:
- shard-glk: NOTRUN -> [FAIL][197] ([i915#9781])
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk3/igt@syncobj_timeline@invalid-wait-zero-handles.html
#### Possible fixes ####
* igt@drm_fdinfo@idle@rcs0:
- shard-rkl: [FAIL][198] ([i915#7742]) -> [PASS][199]
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-rkl-2/igt@drm_fdinfo@idle@rcs0.html
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-5/igt@drm_fdinfo@idle@rcs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [FAIL][200] ([i915#2842]) -> [PASS][201]
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-glk1/igt@gem_exec_fair@basic-pace-share@rcs0.html
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-glk1/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_fair@basic-pace@vcs0:
- shard-rkl: [FAIL][202] ([i915#2842]) -> [PASS][203]
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-rkl-2/igt@gem_exec_fair@basic-pace@vcs0.html
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-4/igt@gem_exec_fair@basic-pace@vcs0.html
* igt@gem_lmem_swapping@heavy-multi@lmem0:
- shard-dg2: [FAIL][204] ([i915#10378]) -> [PASS][205]
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-dg2-2/igt@gem_lmem_swapping@heavy-multi@lmem0.html
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@gem_lmem_swapping@heavy-multi@lmem0.html
* igt@i915_selftest@live@guc_hang:
- shard-dg2: [INCOMPLETE][206] ([i915#11378]) -> [PASS][207]
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-dg2-2/igt@i915_selftest@live@guc_hang.html
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-2/igt@i915_selftest@live@guc_hang.html
- shard-dg1: [INCOMPLETE][208] -> [PASS][209]
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-dg1-15/igt@i915_selftest@live@guc_hang.html
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@i915_selftest@live@guc_hang.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-1:
- shard-snb: [FAIL][210] ([i915#5956]) -> [PASS][211]
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-snb6/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-1.html
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-snb7/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-1.html
* igt@kms_flip@2x-blocking-wf_vblank@ab-vga1-hdmi-a1:
- shard-snb: [FAIL][212] ([i915#2122]) -> [PASS][213]
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-snb7/igt@kms_flip@2x-blocking-wf_vblank@ab-vga1-hdmi-a1.html
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-snb6/igt@kms_flip@2x-blocking-wf_vblank@ab-vga1-hdmi-a1.html
* igt@kms_flip@2x-flip-vs-blocking-wf-vblank@ab-vga1-hdmi-a1:
- shard-snb: [ABORT][214] -> [PASS][215]
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-snb5/igt@kms_flip@2x-flip-vs-blocking-wf-vblank@ab-vga1-hdmi-a1.html
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-snb5/igt@kms_flip@2x-flip-vs-blocking-wf-vblank@ab-vga1-hdmi-a1.html
* igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw:
- shard-dg2: [FAIL][216] ([i915#6880]) -> [PASS][217]
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-dg2-3/igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw.html
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite:
- shard-snb: [SKIP][218] -> [PASS][219]
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-snb2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite.html
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-snb7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite.html
* igt@kms_pm_dc@dc9-dpms:
- shard-tglu: [SKIP][220] ([i915#4281]) -> [PASS][221]
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-tglu-9/igt@kms_pm_dc@dc9-dpms.html
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-tglu-5/igt@kms_pm_dc@dc9-dpms.html
* igt@kms_pm_rpm@modeset-lpsp-stress:
- shard-dg2: [SKIP][222] ([i915#9519]) -> [PASS][223] +1 other test pass
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-dg2-2/igt@kms_pm_rpm@modeset-lpsp-stress.html
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-8/igt@kms_pm_rpm@modeset-lpsp-stress.html
- shard-rkl: [SKIP][224] ([i915#9519]) -> [PASS][225]
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-rkl-1/igt@kms_pm_rpm@modeset-lpsp-stress.html
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-rkl-5/igt@kms_pm_rpm@modeset-lpsp-stress.html
* igt@kms_setmode@basic@pipe-a-hdmi-a-1:
- shard-snb: [FAIL][226] ([i915#5465]) -> [PASS][227] +1 other test pass
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-snb2/igt@kms_setmode@basic@pipe-a-hdmi-a-1.html
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-snb7/igt@kms_setmode@basic@pipe-a-hdmi-a-1.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-1:
- shard-snb: [FAIL][228] ([i915#9196]) -> [PASS][229]
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-snb6/igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-1.html
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-snb2/igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-1.html
- shard-tglu: [FAIL][230] ([i915#9196]) -> [PASS][231]
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-tglu-10/igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-1.html
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-tglu-3/igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-1.html
* igt@kms_vblank@query-busy-hang@pipe-a-hdmi-a-3:
- shard-dg2: [INCOMPLETE][232] -> [PASS][233]
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-dg2-5/igt@kms_vblank@query-busy-hang@pipe-a-hdmi-a-3.html
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-6/igt@kms_vblank@query-busy-hang@pipe-a-hdmi-a-3.html
* igt@perf_pmu@multi-client@vcs0:
- shard-mtlp: [FAIL][234] ([i915#4349]) -> [PASS][235]
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-mtlp-7/igt@perf_pmu@multi-client@vcs0.html
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-mtlp-2/igt@perf_pmu@multi-client@vcs0.html
#### Warnings ####
* igt@gem_exec_fair@basic-pace@bcs0:
- shard-tglu: [FAIL][236] ([i915#2876]) -> [FAIL][237] ([i915#2842])
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-tglu-5/igt@gem_exec_fair@basic-pace@bcs0.html
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-tglu-9/igt@gem_exec_fair@basic-pace@bcs0.html
* igt@kms_flip@plain-flip-fb-recreate@b-hdmi-a4:
- shard-dg1: [FAIL][238] -> [FAIL][239] ([i915#2122])
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-dg1-17/igt@kms_flip@plain-flip-fb-recreate@b-hdmi-a4.html
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg1-18/igt@kms_flip@plain-flip-fb-recreate@b-hdmi-a4.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-b-hdmi-a-3:
- shard-dg2: [INCOMPLETE][240] -> [SKIP][241] ([i915#9423])
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-dg2-7/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-b-hdmi-a-3.html
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-6/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-b-hdmi-a-3.html
* igt@kms_psr@fbc-psr-cursor-mmap-cpu:
- shard-dg2: [SKIP][242] ([i915#1072] / [i915#9732]) -> [SKIP][243] ([i915#1072] / [i915#9673] / [i915#9732]) +4 other tests skip
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-dg2-8/igt@kms_psr@fbc-psr-cursor-mmap-cpu.html
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-11/igt@kms_psr@fbc-psr-cursor-mmap-cpu.html
* igt@kms_psr@fbc-psr-cursor-plane-move:
- shard-dg2: [SKIP][244] ([i915#1072] / [i915#9673] / [i915#9732]) -> [SKIP][245] ([i915#1072] / [i915#9732]) +19 other tests skip
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-dg2-11/igt@kms_psr@fbc-psr-cursor-plane-move.html
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-5/igt@kms_psr@fbc-psr-cursor-plane-move.html
* igt@kms_rotation_crc@sprite-rotation-90:
- shard-dg2: [SKIP][246] ([i915#11131] / [i915#4235]) -> [SKIP][247] ([i915#11131])
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15117/shard-dg2-11/igt@kms_rotation_crc@sprite-rotation-90.html
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136388v1/shard-dg2-5/igt@kms_rotation_crc@sprite-rotation-90.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2
[i915#10055]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10055
[i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
[i915#10378]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10378
[i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
[i915#10647]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10647
[i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#1099]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1099
[i915#11073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11073
[i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078
[i915#11131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11131
[i915#11378]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11378
[i915#11453]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11453
[i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
[i915#11616]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11616
[i915#11662]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11662
[i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
[i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
[i915#2122]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2122
[i915#2435]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2435
[i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
[i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
[i915#2842]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2846
[i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
[i915#2876]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2876
[i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
[i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
[i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
[i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3591
[i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#4036]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4036
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4087]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4087
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
[i915#4235]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4235
[i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
[i915#4281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4281
[i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
[i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
[i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
[i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
[i915#4885]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4885
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5235]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439
[i915#5465]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5465
[i915#5784]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5784
[i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956
[i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
[i915#6118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6118
[i915#6227]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6227
[i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
[i915#6493]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6493
[i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
[i915#6880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6880
[i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
[i915#7116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
[i915#7162]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7162
[i915#7213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7213
[i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
[i915#7742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7742
[i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
[i915#7862]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7862
[i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
[i915#8292]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8292
[i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381
[i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
[i915#8414]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8414
[i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
[i915#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555
[i915#8562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8562
[i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
[i915#8806]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8806
[i915#8812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8812
[i915#8925]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8925
[i915#9196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9196
[i915#9337]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9337
[i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
[i915#9412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9412
[i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423
[i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
[i915#9519]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9519
[i915#9673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9673
[i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
[i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
[i915#9728]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9728
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9781
[i915#9808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9808
[i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
[i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934
Build changes
-------------
* Linux: CI_DRM_15117 -> Patchwork_136388v1
CI-20190529: 20190529
CI_DRM_15117: 049eae5224ed92f3cb723a492593b255654e0649 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7935: a85286b8cdfc8d2c902128946e90f8b17cecaa89 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_136388v1: 049eae5224ed92f3cb723a492593b255654e0649 @ 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_136388v1/index.html
[-- Attachment #2: Type: text/html, Size: 77201 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v7 1/2] drm/buddy: Add start address support to trim function
2024-07-23 15:02 ` Matthew Auld
@ 2024-07-24 1:35 ` Marek Olšák
2024-07-24 9:37 ` Matthew Auld
0 siblings, 1 reply; 13+ messages in thread
From: Marek Olšák @ 2024-07-24 1:35 UTC (permalink / raw)
To: Matthew Auld
Cc: Paneer Selvam, Arunpravin, dri-devel, amd-gfx mailing list,
intel-gfx, Christian König, Deucher, Alexander, Min, Frank,
Marek Olšák
[-- Attachment #1: Type: text/plain, Size: 6835 bytes --]
The reason is that our DCC requires 768K alignment in some cases. I haven't
read this patch series, but one way to do that is to align to 256K,
overallocate by 512K, and then not use either 0, 256K, or 512K at the
beginning to get to 768K alignment.
Marek
On Tue, Jul 23, 2024, 11:04 Matthew Auld <matthew.auld@intel.com> wrote:
> On 23/07/2024 14:43, Paneer Selvam, Arunpravin wrote:
> > Hi Matthew,
> >
> > Can we push this version for now as we need to mainline the DCC changes
> > ASAP,
> > while we continue our discussion and proceed to implement the permanent
> > solution
> > for address alignment?
>
> Yeah, we can always merge now and circle back around later, if this for
> sure helps your usecase and is needed asap. I just didn't fully get the
> idea for needing this interface, but likely I am missing something.
>
> >
> > Thanks,
> > Arun.
> >
> > On 7/23/2024 6:55 PM, Arunpravin Paneer Selvam wrote:
> >> - Add a new start parameter in trim function to specify exact
> >> address from where to start the trimming. This would help us
> >> in situations like if drivers would like to do address alignment
> >> for specific requirements.
> >>
> >> - Add a new flag DRM_BUDDY_TRIM_DISABLE. Drivers can use this
> >> flag to disable the allocator trimming part. This patch enables
> >> the drivers control trimming and they can do it themselves
> >> based on the application requirements.
> >>
> >> v1:(Matthew)
> >> - check new_start alignment with min chunk_size
> >> - use range_overflows()
> >>
> >> Signed-off-by: Arunpravin Paneer Selvam <
> Arunpravin.PaneerSelvam@amd.com>
> >> Acked-by: Alex Deucher <alexander.deucher@amd.com>
> >> Acked-by: Christian König <christian.koenig@amd.com>
> >> ---
> >> drivers/gpu/drm/drm_buddy.c | 25 +++++++++++++++++++++++--
> >> drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 2 +-
> >> include/drm/drm_buddy.h | 2 ++
> >> 3 files changed, 26 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/drm_buddy.c b/drivers/gpu/drm/drm_buddy.c
> >> index 6a8e45e9d0ec..103c185bb1c8 100644
> >> --- a/drivers/gpu/drm/drm_buddy.c
> >> +++ b/drivers/gpu/drm/drm_buddy.c
> >> @@ -851,6 +851,7 @@ static int __alloc_contig_try_harder(struct
> >> drm_buddy *mm,
> >> * drm_buddy_block_trim - free unused pages
> >> *
> >> * @mm: DRM buddy manager
> >> + * @start: start address to begin the trimming.
> >> * @new_size: original size requested
> >> * @blocks: Input and output list of allocated blocks.
> >> * MUST contain single block as input to be trimmed.
> >> @@ -866,11 +867,13 @@ static int __alloc_contig_try_harder(struct
> >> drm_buddy *mm,
> >> * 0 on success, error code on failure.
> >> */
> >> int drm_buddy_block_trim(struct drm_buddy *mm,
> >> + u64 *start,
> >> u64 new_size,
> >> struct list_head *blocks)
> >> {
> >> struct drm_buddy_block *parent;
> >> struct drm_buddy_block *block;
> >> + u64 block_start, block_end;
> >> LIST_HEAD(dfs);
> >> u64 new_start;
> >> int err;
> >> @@ -882,6 +885,9 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> >> struct drm_buddy_block,
> >> link);
> >> + block_start = drm_buddy_block_offset(block);
> >> + block_end = block_start + drm_buddy_block_size(mm, block);
> >> +
> >> if (WARN_ON(!drm_buddy_block_is_allocated(block)))
> >> return -EINVAL;
> >> @@ -894,6 +900,20 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> >> if (new_size == drm_buddy_block_size(mm, block))
> >> return 0;
> >> + new_start = block_start;
> >> + if (start) {
> >> + new_start = *start;
> >> +
> >> + if (new_start < block_start)
> >> + return -EINVAL;
> >> +
> >> + if (!IS_ALIGNED(new_start, mm->chunk_size))
> >> + return -EINVAL;
> >> +
> >> + if (range_overflows(new_start, new_size, block_end))
> >> + return -EINVAL;
> >> + }
> >> +
> >> list_del(&block->link);
> >> mark_free(mm, block);
> >> mm->avail += drm_buddy_block_size(mm, block);
> >> @@ -904,7 +924,6 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> >> parent = block->parent;
> >> block->parent = NULL;
> >> - new_start = drm_buddy_block_offset(block);
> >> list_add(&block->tmp_link, &dfs);
> >> err = __alloc_range(mm, &dfs, new_start, new_size, blocks, NULL);
> >> if (err) {
> >> @@ -1066,7 +1085,8 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
> >> } while (1);
> >> /* Trim the allocated block to the required size */
> >> - if (original_size != size) {
> >> + if (!(flags & DRM_BUDDY_TRIM_DISABLE) &&
> >> + original_size != size) {
> >> struct list_head *trim_list;
> >> LIST_HEAD(temp);
> >> u64 trim_size;
> >> @@ -1083,6 +1103,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
> >> }
> >> drm_buddy_block_trim(mm,
> >> + NULL,
> >> trim_size,
> >> trim_list);
> >> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> >> b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> >> index fe3779fdba2c..423b261ea743 100644
> >> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> >> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> >> @@ -150,7 +150,7 @@ static int xe_ttm_vram_mgr_new(struct
> >> ttm_resource_manager *man,
> >> } while (remaining_size);
> >> if (place->flags & TTM_PL_FLAG_CONTIGUOUS) {
> >> - if (!drm_buddy_block_trim(mm, vres->base.size, &vres->blocks))
> >> + if (!drm_buddy_block_trim(mm, NULL, vres->base.size,
> >> &vres->blocks))
> >> size = vres->base.size;
> >> }
> >> diff --git a/include/drm/drm_buddy.h b/include/drm/drm_buddy.h
> >> index 2a74fa9d0ce5..9689a7c5dd36 100644
> >> --- a/include/drm/drm_buddy.h
> >> +++ b/include/drm/drm_buddy.h
> >> @@ -27,6 +27,7 @@
> >> #define DRM_BUDDY_CONTIGUOUS_ALLOCATION BIT(2)
> >> #define DRM_BUDDY_CLEAR_ALLOCATION BIT(3)
> >> #define DRM_BUDDY_CLEARED BIT(4)
> >> +#define DRM_BUDDY_TRIM_DISABLE BIT(5)
> >> struct drm_buddy_block {
> >> #define DRM_BUDDY_HEADER_OFFSET GENMASK_ULL(63, 12)
> >> @@ -155,6 +156,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
> >> unsigned long flags);
> >> int drm_buddy_block_trim(struct drm_buddy *mm,
> >> + u64 *start,
> >> u64 new_size,
> >> struct list_head *blocks);
> >>
> >> base-commit: b27d70e1042bf6a31ba7e5acf58b61c9cd28f95b
> >
>
[-- Attachment #2: Type: text/html, Size: 9251 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v7 1/2] drm/buddy: Add start address support to trim function
2024-07-24 1:35 ` Marek Olšák
@ 2024-07-24 9:37 ` Matthew Auld
2024-07-24 11:20 ` Christian König
0 siblings, 1 reply; 13+ messages in thread
From: Matthew Auld @ 2024-07-24 9:37 UTC (permalink / raw)
To: Marek Olšák
Cc: Paneer Selvam, Arunpravin, dri-devel, amd-gfx mailing list,
intel-gfx, Christian König, Deucher, Alexander, Min, Frank,
Marek Olšák
On 24/07/2024 02:35, Marek Olšák wrote:
> The reason is that our DCC requires 768K alignment in some cases. I
> haven't read this patch series, but one way to do that is to align to
> 256K, overallocate by 512K, and then not use either 0, 256K, or 512K at
> the beginning to get to 768K alignment.
Ah, so we need a non power-of-two alignment. That makes sense, thanks.
>
> Marek
>
> On Tue, Jul 23, 2024, 11:04 Matthew Auld <matthew.auld@intel.com
> <mailto:matthew.auld@intel.com>> wrote:
>
> On 23/07/2024 14:43, Paneer Selvam, Arunpravin wrote:
> > Hi Matthew,
> >
> > Can we push this version for now as we need to mainline the DCC
> changes
> > ASAP,
> > while we continue our discussion and proceed to implement the
> permanent
> > solution
> > for address alignment?
>
> Yeah, we can always merge now and circle back around later, if this for
> sure helps your usecase and is needed asap. I just didn't fully get the
> idea for needing this interface, but likely I am missing something.
>
> >
> > Thanks,
> > Arun.
> >
> > On 7/23/2024 6:55 PM, Arunpravin Paneer Selvam wrote:
> >> - Add a new start parameter in trim function to specify exact
> >> address from where to start the trimming. This would help us
> >> in situations like if drivers would like to do address alignment
> >> for specific requirements.
> >>
> >> - Add a new flag DRM_BUDDY_TRIM_DISABLE. Drivers can use this
> >> flag to disable the allocator trimming part. This patch enables
> >> the drivers control trimming and they can do it themselves
> >> based on the application requirements.
> >>
> >> v1:(Matthew)
> >> - check new_start alignment with min chunk_size
> >> - use range_overflows()
> >>
> >> Signed-off-by: Arunpravin Paneer Selvam
> <Arunpravin.PaneerSelvam@amd.com
> <mailto:Arunpravin.PaneerSelvam@amd.com>>
> >> Acked-by: Alex Deucher <alexander.deucher@amd.com
> <mailto:alexander.deucher@amd.com>>
> >> Acked-by: Christian König <christian.koenig@amd.com
> <mailto:christian.koenig@amd.com>>
> >> ---
> >> drivers/gpu/drm/drm_buddy.c | 25
> +++++++++++++++++++++++--
> >> drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 2 +-
> >> include/drm/drm_buddy.h | 2 ++
> >> 3 files changed, 26 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/drm_buddy.c
> b/drivers/gpu/drm/drm_buddy.c
> >> index 6a8e45e9d0ec..103c185bb1c8 100644
> >> --- a/drivers/gpu/drm/drm_buddy.c
> >> +++ b/drivers/gpu/drm/drm_buddy.c
> >> @@ -851,6 +851,7 @@ static int __alloc_contig_try_harder(struct
> >> drm_buddy *mm,
> >> * drm_buddy_block_trim - free unused pages
> >> *
> >> * @mm: DRM buddy manager
> >> + * @start: start address to begin the trimming.
> >> * @new_size: original size requested
> >> * @blocks: Input and output list of allocated blocks.
> >> * MUST contain single block as input to be trimmed.
> >> @@ -866,11 +867,13 @@ static int __alloc_contig_try_harder(struct
> >> drm_buddy *mm,
> >> * 0 on success, error code on failure.
> >> */
> >> int drm_buddy_block_trim(struct drm_buddy *mm,
> >> + u64 *start,
> >> u64 new_size,
> >> struct list_head *blocks)
> >> {
> >> struct drm_buddy_block *parent;
> >> struct drm_buddy_block *block;
> >> + u64 block_start, block_end;
> >> LIST_HEAD(dfs);
> >> u64 new_start;
> >> int err;
> >> @@ -882,6 +885,9 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> >> struct drm_buddy_block,
> >> link);
> >> + block_start = drm_buddy_block_offset(block);
> >> + block_end = block_start + drm_buddy_block_size(mm, block);
> >> +
> >> if (WARN_ON(!drm_buddy_block_is_allocated(block)))
> >> return -EINVAL;
> >> @@ -894,6 +900,20 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> >> if (new_size == drm_buddy_block_size(mm, block))
> >> return 0;
> >> + new_start = block_start;
> >> + if (start) {
> >> + new_start = *start;
> >> +
> >> + if (new_start < block_start)
> >> + return -EINVAL;
> >> +
> >> + if (!IS_ALIGNED(new_start, mm->chunk_size))
> >> + return -EINVAL;
> >> +
> >> + if (range_overflows(new_start, new_size, block_end))
> >> + return -EINVAL;
> >> + }
> >> +
> >> list_del(&block->link);
> >> mark_free(mm, block);
> >> mm->avail += drm_buddy_block_size(mm, block);
> >> @@ -904,7 +924,6 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> >> parent = block->parent;
> >> block->parent = NULL;
> >> - new_start = drm_buddy_block_offset(block);
> >> list_add(&block->tmp_link, &dfs);
> >> err = __alloc_range(mm, &dfs, new_start, new_size,
> blocks, NULL);
> >> if (err) {
> >> @@ -1066,7 +1085,8 @@ int drm_buddy_alloc_blocks(struct
> drm_buddy *mm,
> >> } while (1);
> >> /* Trim the allocated block to the required size */
> >> - if (original_size != size) {
> >> + if (!(flags & DRM_BUDDY_TRIM_DISABLE) &&
> >> + original_size != size) {
> >> struct list_head *trim_list;
> >> LIST_HEAD(temp);
> >> u64 trim_size;
> >> @@ -1083,6 +1103,7 @@ int drm_buddy_alloc_blocks(struct
> drm_buddy *mm,
> >> }
> >> drm_buddy_block_trim(mm,
> >> + NULL,
> >> trim_size,
> >> trim_list);
> >> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> >> b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> >> index fe3779fdba2c..423b261ea743 100644
> >> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> >> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> >> @@ -150,7 +150,7 @@ static int xe_ttm_vram_mgr_new(struct
> >> ttm_resource_manager *man,
> >> } while (remaining_size);
> >> if (place->flags & TTM_PL_FLAG_CONTIGUOUS) {
> >> - if (!drm_buddy_block_trim(mm, vres->base.size,
> &vres->blocks))
> >> + if (!drm_buddy_block_trim(mm, NULL, vres->base.size,
> >> &vres->blocks))
> >> size = vres->base.size;
> >> }
> >> diff --git a/include/drm/drm_buddy.h b/include/drm/drm_buddy.h
> >> index 2a74fa9d0ce5..9689a7c5dd36 100644
> >> --- a/include/drm/drm_buddy.h
> >> +++ b/include/drm/drm_buddy.h
> >> @@ -27,6 +27,7 @@
> >> #define DRM_BUDDY_CONTIGUOUS_ALLOCATION BIT(2)
> >> #define DRM_BUDDY_CLEAR_ALLOCATION BIT(3)
> >> #define DRM_BUDDY_CLEARED BIT(4)
> >> +#define DRM_BUDDY_TRIM_DISABLE BIT(5)
> >> struct drm_buddy_block {
> >> #define DRM_BUDDY_HEADER_OFFSET GENMASK_ULL(63, 12)
> >> @@ -155,6 +156,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
> >> unsigned long flags);
> >> int drm_buddy_block_trim(struct drm_buddy *mm,
> >> + u64 *start,
> >> u64 new_size,
> >> struct list_head *blocks);
> >>
> >> base-commit: b27d70e1042bf6a31ba7e5acf58b61c9cd28f95b
> >
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v7 1/2] drm/buddy: Add start address support to trim function
2024-07-23 13:25 [PATCH v7 1/2] drm/buddy: Add start address support to trim function Arunpravin Paneer Selvam
` (4 preceding siblings ...)
2024-07-23 21:36 ` ✗ Fi.CI.IGT: failure " Patchwork
@ 2024-07-24 9:48 ` Matthew Auld
2024-07-24 15:12 ` Jani Nikula
6 siblings, 0 replies; 13+ messages in thread
From: Matthew Auld @ 2024-07-24 9:48 UTC (permalink / raw)
To: Arunpravin Paneer Selvam, dri-devel, amd-gfx, intel-gfx
Cc: christian.koenig, alexander.deucher, frank.min, marek.olsak
On 23/07/2024 14:25, Arunpravin Paneer Selvam wrote:
> - Add a new start parameter in trim function to specify exact
> address from where to start the trimming. This would help us
> in situations like if drivers would like to do address alignment
> for specific requirements.
>
> - Add a new flag DRM_BUDDY_TRIM_DISABLE. Drivers can use this
> flag to disable the allocator trimming part. This patch enables
> the drivers control trimming and they can do it themselves
> based on the application requirements.
>
> v1:(Matthew)
> - check new_start alignment with min chunk_size
> - use range_overflows()
>
> Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
> Acked-by: Alex Deucher <alexander.deucher@amd.com>
> Acked-by: Christian König <christian.koenig@amd.com>
Given the comment from Marek that this is about non power-of-two
alignment, this makes sense (although might be good to mention that
somewhere in the commit message to make that clearer),
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
> ---
> drivers/gpu/drm/drm_buddy.c | 25 +++++++++++++++++++++++--
> drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 2 +-
> include/drm/drm_buddy.h | 2 ++
> 3 files changed, 26 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_buddy.c b/drivers/gpu/drm/drm_buddy.c
> index 6a8e45e9d0ec..103c185bb1c8 100644
> --- a/drivers/gpu/drm/drm_buddy.c
> +++ b/drivers/gpu/drm/drm_buddy.c
> @@ -851,6 +851,7 @@ static int __alloc_contig_try_harder(struct drm_buddy *mm,
> * drm_buddy_block_trim - free unused pages
> *
> * @mm: DRM buddy manager
> + * @start: start address to begin the trimming.
> * @new_size: original size requested
> * @blocks: Input and output list of allocated blocks.
> * MUST contain single block as input to be trimmed.
> @@ -866,11 +867,13 @@ static int __alloc_contig_try_harder(struct drm_buddy *mm,
> * 0 on success, error code on failure.
> */
> int drm_buddy_block_trim(struct drm_buddy *mm,
> + u64 *start,
> u64 new_size,
> struct list_head *blocks)
> {
> struct drm_buddy_block *parent;
> struct drm_buddy_block *block;
> + u64 block_start, block_end;
> LIST_HEAD(dfs);
> u64 new_start;
> int err;
> @@ -882,6 +885,9 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> struct drm_buddy_block,
> link);
>
> + block_start = drm_buddy_block_offset(block);
> + block_end = block_start + drm_buddy_block_size(mm, block);
> +
> if (WARN_ON(!drm_buddy_block_is_allocated(block)))
> return -EINVAL;
>
> @@ -894,6 +900,20 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> if (new_size == drm_buddy_block_size(mm, block))
> return 0;
>
> + new_start = block_start;
> + if (start) {
> + new_start = *start;
> +
> + if (new_start < block_start)
> + return -EINVAL;
> +
> + if (!IS_ALIGNED(new_start, mm->chunk_size))
> + return -EINVAL;
> +
> + if (range_overflows(new_start, new_size, block_end))
> + return -EINVAL;
> + }
> +
> list_del(&block->link);
> mark_free(mm, block);
> mm->avail += drm_buddy_block_size(mm, block);
> @@ -904,7 +924,6 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> parent = block->parent;
> block->parent = NULL;
>
> - new_start = drm_buddy_block_offset(block);
> list_add(&block->tmp_link, &dfs);
> err = __alloc_range(mm, &dfs, new_start, new_size, blocks, NULL);
> if (err) {
> @@ -1066,7 +1085,8 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
> } while (1);
>
> /* Trim the allocated block to the required size */
> - if (original_size != size) {
> + if (!(flags & DRM_BUDDY_TRIM_DISABLE) &&
> + original_size != size) {
> struct list_head *trim_list;
> LIST_HEAD(temp);
> u64 trim_size;
> @@ -1083,6 +1103,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
> }
>
> drm_buddy_block_trim(mm,
> + NULL,
> trim_size,
> trim_list);
>
> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> index fe3779fdba2c..423b261ea743 100644
> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> @@ -150,7 +150,7 @@ static int xe_ttm_vram_mgr_new(struct ttm_resource_manager *man,
> } while (remaining_size);
>
> if (place->flags & TTM_PL_FLAG_CONTIGUOUS) {
> - if (!drm_buddy_block_trim(mm, vres->base.size, &vres->blocks))
> + if (!drm_buddy_block_trim(mm, NULL, vres->base.size, &vres->blocks))
> size = vres->base.size;
> }
>
> diff --git a/include/drm/drm_buddy.h b/include/drm/drm_buddy.h
> index 2a74fa9d0ce5..9689a7c5dd36 100644
> --- a/include/drm/drm_buddy.h
> +++ b/include/drm/drm_buddy.h
> @@ -27,6 +27,7 @@
> #define DRM_BUDDY_CONTIGUOUS_ALLOCATION BIT(2)
> #define DRM_BUDDY_CLEAR_ALLOCATION BIT(3)
> #define DRM_BUDDY_CLEARED BIT(4)
> +#define DRM_BUDDY_TRIM_DISABLE BIT(5)
>
> struct drm_buddy_block {
> #define DRM_BUDDY_HEADER_OFFSET GENMASK_ULL(63, 12)
> @@ -155,6 +156,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
> unsigned long flags);
>
> int drm_buddy_block_trim(struct drm_buddy *mm,
> + u64 *start,
> u64 new_size,
> struct list_head *blocks);
>
>
> base-commit: b27d70e1042bf6a31ba7e5acf58b61c9cd28f95b
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v7 1/2] drm/buddy: Add start address support to trim function
2024-07-24 9:37 ` Matthew Auld
@ 2024-07-24 11:20 ` Christian König
0 siblings, 0 replies; 13+ messages in thread
From: Christian König @ 2024-07-24 11:20 UTC (permalink / raw)
To: Matthew Auld, Marek Olšák
Cc: Paneer Selvam, Arunpravin, dri-devel, amd-gfx mailing list,
intel-gfx, Christian König, Deucher, Alexander, Min, Frank,
Marek Olšák
Am 24.07.24 um 11:37 schrieb Matthew Auld:
> On 24/07/2024 02:35, Marek Olšák wrote:
>> The reason is that our DCC requires 768K alignment in some cases. I
>> haven't read this patch series, but one way to do that is to align to
>> 256K, overallocate by 512K, and then not use either 0, 256K, or 512K
>> at the beginning to get to 768K alignment.
>
> Ah, so we need a non power-of-two alignment. That makes sense, thanks.
Well actually the requirement is that memory reads for scanout needs to
be distributed over the memory channels in a certain way.
Our hw guys just expressed that as a rather strange non-power of two
alignment :)
Christian.
>
>>
>> Marek
>>
>> On Tue, Jul 23, 2024, 11:04 Matthew Auld <matthew.auld@intel.com
>> <mailto:matthew.auld@intel.com>> wrote:
>>
>> On 23/07/2024 14:43, Paneer Selvam, Arunpravin wrote:
>> > Hi Matthew,
>> >
>> > Can we push this version for now as we need to mainline the DCC
>> changes
>> > ASAP,
>> > while we continue our discussion and proceed to implement the
>> permanent
>> > solution
>> > for address alignment?
>>
>> Yeah, we can always merge now and circle back around later, if
>> this for
>> sure helps your usecase and is needed asap. I just didn't fully
>> get the
>> idea for needing this interface, but likely I am missing something.
>>
>> >
>> > Thanks,
>> > Arun.
>> >
>> > On 7/23/2024 6:55 PM, Arunpravin Paneer Selvam wrote:
>> >> - Add a new start parameter in trim function to specify exact
>> >> address from where to start the trimming. This would help us
>> >> in situations like if drivers would like to do address
>> alignment
>> >> for specific requirements.
>> >>
>> >> - Add a new flag DRM_BUDDY_TRIM_DISABLE. Drivers can use this
>> >> flag to disable the allocator trimming part. This patch
>> enables
>> >> the drivers control trimming and they can do it themselves
>> >> based on the application requirements.
>> >>
>> >> v1:(Matthew)
>> >> - check new_start alignment with min chunk_size
>> >> - use range_overflows()
>> >>
>> >> Signed-off-by: Arunpravin Paneer Selvam
>> <Arunpravin.PaneerSelvam@amd.com
>> <mailto:Arunpravin.PaneerSelvam@amd.com>>
>> >> Acked-by: Alex Deucher <alexander.deucher@amd.com
>> <mailto:alexander.deucher@amd.com>>
>> >> Acked-by: Christian König <christian.koenig@amd.com
>> <mailto:christian.koenig@amd.com>>
>> >> ---
>> >> drivers/gpu/drm/drm_buddy.c | 25
>> +++++++++++++++++++++++--
>> >> drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 2 +-
>> >> include/drm/drm_buddy.h | 2 ++
>> >> 3 files changed, 26 insertions(+), 3 deletions(-)
>> >>
>> >> diff --git a/drivers/gpu/drm/drm_buddy.c
>> b/drivers/gpu/drm/drm_buddy.c
>> >> index 6a8e45e9d0ec..103c185bb1c8 100644
>> >> --- a/drivers/gpu/drm/drm_buddy.c
>> >> +++ b/drivers/gpu/drm/drm_buddy.c
>> >> @@ -851,6 +851,7 @@ static int __alloc_contig_try_harder(struct
>> >> drm_buddy *mm,
>> >> * drm_buddy_block_trim - free unused pages
>> >> *
>> >> * @mm: DRM buddy manager
>> >> + * @start: start address to begin the trimming.
>> >> * @new_size: original size requested
>> >> * @blocks: Input and output list of allocated blocks.
>> >> * MUST contain single block as input to be trimmed.
>> >> @@ -866,11 +867,13 @@ static int
>> __alloc_contig_try_harder(struct
>> >> drm_buddy *mm,
>> >> * 0 on success, error code on failure.
>> >> */
>> >> int drm_buddy_block_trim(struct drm_buddy *mm,
>> >> + u64 *start,
>> >> u64 new_size,
>> >> struct list_head *blocks)
>> >> {
>> >> struct drm_buddy_block *parent;
>> >> struct drm_buddy_block *block;
>> >> + u64 block_start, block_end;
>> >> LIST_HEAD(dfs);
>> >> u64 new_start;
>> >> int err;
>> >> @@ -882,6 +885,9 @@ int drm_buddy_block_trim(struct drm_buddy
>> *mm,
>> >> struct drm_buddy_block,
>> >> link);
>> >> + block_start = drm_buddy_block_offset(block);
>> >> + block_end = block_start + drm_buddy_block_size(mm, block);
>> >> +
>> >> if (WARN_ON(!drm_buddy_block_is_allocated(block)))
>> >> return -EINVAL;
>> >> @@ -894,6 +900,20 @@ int drm_buddy_block_trim(struct
>> drm_buddy *mm,
>> >> if (new_size == drm_buddy_block_size(mm, block))
>> >> return 0;
>> >> + new_start = block_start;
>> >> + if (start) {
>> >> + new_start = *start;
>> >> +
>> >> + if (new_start < block_start)
>> >> + return -EINVAL;
>> >> +
>> >> + if (!IS_ALIGNED(new_start, mm->chunk_size))
>> >> + return -EINVAL;
>> >> +
>> >> + if (range_overflows(new_start, new_size, block_end))
>> >> + return -EINVAL;
>> >> + }
>> >> +
>> >> list_del(&block->link);
>> >> mark_free(mm, block);
>> >> mm->avail += drm_buddy_block_size(mm, block);
>> >> @@ -904,7 +924,6 @@ int drm_buddy_block_trim(struct drm_buddy
>> *mm,
>> >> parent = block->parent;
>> >> block->parent = NULL;
>> >> - new_start = drm_buddy_block_offset(block);
>> >> list_add(&block->tmp_link, &dfs);
>> >> err = __alloc_range(mm, &dfs, new_start, new_size,
>> blocks, NULL);
>> >> if (err) {
>> >> @@ -1066,7 +1085,8 @@ int drm_buddy_alloc_blocks(struct
>> drm_buddy *mm,
>> >> } while (1);
>> >> /* Trim the allocated block to the required size */
>> >> - if (original_size != size) {
>> >> + if (!(flags & DRM_BUDDY_TRIM_DISABLE) &&
>> >> + original_size != size) {
>> >> struct list_head *trim_list;
>> >> LIST_HEAD(temp);
>> >> u64 trim_size;
>> >> @@ -1083,6 +1103,7 @@ int drm_buddy_alloc_blocks(struct
>> drm_buddy *mm,
>> >> }
>> >> drm_buddy_block_trim(mm,
>> >> + NULL,
>> >> trim_size,
>> >> trim_list);
>> >> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>> >> b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>> >> index fe3779fdba2c..423b261ea743 100644
>> >> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>> >> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>> >> @@ -150,7 +150,7 @@ static int xe_ttm_vram_mgr_new(struct
>> >> ttm_resource_manager *man,
>> >> } while (remaining_size);
>> >> if (place->flags & TTM_PL_FLAG_CONTIGUOUS) {
>> >> - if (!drm_buddy_block_trim(mm, vres->base.size,
>> &vres->blocks))
>> >> + if (!drm_buddy_block_trim(mm, NULL, vres->base.size,
>> >> &vres->blocks))
>> >> size = vres->base.size;
>> >> }
>> >> diff --git a/include/drm/drm_buddy.h b/include/drm/drm_buddy.h
>> >> index 2a74fa9d0ce5..9689a7c5dd36 100644
>> >> --- a/include/drm/drm_buddy.h
>> >> +++ b/include/drm/drm_buddy.h
>> >> @@ -27,6 +27,7 @@
>> >> #define DRM_BUDDY_CONTIGUOUS_ALLOCATION BIT(2)
>> >> #define DRM_BUDDY_CLEAR_ALLOCATION BIT(3)
>> >> #define DRM_BUDDY_CLEARED BIT(4)
>> >> +#define DRM_BUDDY_TRIM_DISABLE BIT(5)
>> >> struct drm_buddy_block {
>> >> #define DRM_BUDDY_HEADER_OFFSET GENMASK_ULL(63, 12)
>> >> @@ -155,6 +156,7 @@ int drm_buddy_alloc_blocks(struct
>> drm_buddy *mm,
>> >> unsigned long flags);
>> >> int drm_buddy_block_trim(struct drm_buddy *mm,
>> >> + u64 *start,
>> >> u64 new_size,
>> >> struct list_head *blocks);
>> >>
>> >> base-commit: b27d70e1042bf6a31ba7e5acf58b61c9cd28f95b
>> >
>>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v7 1/2] drm/buddy: Add start address support to trim function
2024-07-23 13:25 [PATCH v7 1/2] drm/buddy: Add start address support to trim function Arunpravin Paneer Selvam
` (5 preceding siblings ...)
2024-07-24 9:48 ` [PATCH v7 1/2] " Matthew Auld
@ 2024-07-24 15:12 ` Jani Nikula
2024-07-26 14:02 ` Paneer Selvam, Arunpravin
6 siblings, 1 reply; 13+ messages in thread
From: Jani Nikula @ 2024-07-24 15:12 UTC (permalink / raw)
To: Arunpravin Paneer Selvam, dri-devel, amd-gfx, intel-gfx,
matthew.auld
Cc: christian.koenig, alexander.deucher, frank.min, marek.olsak,
Arunpravin Paneer Selvam
On Tue, 23 Jul 2024, Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com> wrote:
> - Add a new start parameter in trim function to specify exact
> address from where to start the trimming. This would help us
> in situations like if drivers would like to do address alignment
> for specific requirements.
>
> - Add a new flag DRM_BUDDY_TRIM_DISABLE. Drivers can use this
> flag to disable the allocator trimming part. This patch enables
> the drivers control trimming and they can do it themselves
> based on the application requirements.
>
> v1:(Matthew)
> - check new_start alignment with min chunk_size
> - use range_overflows()
>
> Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
> Acked-by: Alex Deucher <alexander.deucher@amd.com>
> Acked-by: Christian König <christian.koenig@amd.com>
> ---
> drivers/gpu/drm/drm_buddy.c | 25 +++++++++++++++++++++++--
> drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 2 +-
> include/drm/drm_buddy.h | 2 ++
> 3 files changed, 26 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_buddy.c b/drivers/gpu/drm/drm_buddy.c
> index 6a8e45e9d0ec..103c185bb1c8 100644
> --- a/drivers/gpu/drm/drm_buddy.c
> +++ b/drivers/gpu/drm/drm_buddy.c
> @@ -851,6 +851,7 @@ static int __alloc_contig_try_harder(struct drm_buddy *mm,
> * drm_buddy_block_trim - free unused pages
> *
> * @mm: DRM buddy manager
> + * @start: start address to begin the trimming.
> * @new_size: original size requested
> * @blocks: Input and output list of allocated blocks.
> * MUST contain single block as input to be trimmed.
> @@ -866,11 +867,13 @@ static int __alloc_contig_try_harder(struct drm_buddy *mm,
> * 0 on success, error code on failure.
> */
> int drm_buddy_block_trim(struct drm_buddy *mm,
> + u64 *start,
Is this a pointer only to allow passing NULL as "don't specify"? It's
not used for returning anything in *start. Maybe it should be a const
pointer?
Not the prettiest of interfaces, and the kernel-doc does not reflect any
of this.
BR,
Jani.
> u64 new_size,
> struct list_head *blocks)
> {
> struct drm_buddy_block *parent;
> struct drm_buddy_block *block;
> + u64 block_start, block_end;
> LIST_HEAD(dfs);
> u64 new_start;
> int err;
> @@ -882,6 +885,9 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> struct drm_buddy_block,
> link);
>
> + block_start = drm_buddy_block_offset(block);
> + block_end = block_start + drm_buddy_block_size(mm, block);
> +
> if (WARN_ON(!drm_buddy_block_is_allocated(block)))
> return -EINVAL;
>
> @@ -894,6 +900,20 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> if (new_size == drm_buddy_block_size(mm, block))
> return 0;
>
> + new_start = block_start;
> + if (start) {
> + new_start = *start;
> +
> + if (new_start < block_start)
> + return -EINVAL;
> +
> + if (!IS_ALIGNED(new_start, mm->chunk_size))
> + return -EINVAL;
> +
> + if (range_overflows(new_start, new_size, block_end))
> + return -EINVAL;
> + }
> +
> list_del(&block->link);
> mark_free(mm, block);
> mm->avail += drm_buddy_block_size(mm, block);
> @@ -904,7 +924,6 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
> parent = block->parent;
> block->parent = NULL;
>
> - new_start = drm_buddy_block_offset(block);
> list_add(&block->tmp_link, &dfs);
> err = __alloc_range(mm, &dfs, new_start, new_size, blocks, NULL);
> if (err) {
> @@ -1066,7 +1085,8 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
> } while (1);
>
> /* Trim the allocated block to the required size */
> - if (original_size != size) {
> + if (!(flags & DRM_BUDDY_TRIM_DISABLE) &&
> + original_size != size) {
> struct list_head *trim_list;
> LIST_HEAD(temp);
> u64 trim_size;
> @@ -1083,6 +1103,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
> }
>
> drm_buddy_block_trim(mm,
> + NULL,
> trim_size,
> trim_list);
>
> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> index fe3779fdba2c..423b261ea743 100644
> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> @@ -150,7 +150,7 @@ static int xe_ttm_vram_mgr_new(struct ttm_resource_manager *man,
> } while (remaining_size);
>
> if (place->flags & TTM_PL_FLAG_CONTIGUOUS) {
> - if (!drm_buddy_block_trim(mm, vres->base.size, &vres->blocks))
> + if (!drm_buddy_block_trim(mm, NULL, vres->base.size, &vres->blocks))
> size = vres->base.size;
> }
>
> diff --git a/include/drm/drm_buddy.h b/include/drm/drm_buddy.h
> index 2a74fa9d0ce5..9689a7c5dd36 100644
> --- a/include/drm/drm_buddy.h
> +++ b/include/drm/drm_buddy.h
> @@ -27,6 +27,7 @@
> #define DRM_BUDDY_CONTIGUOUS_ALLOCATION BIT(2)
> #define DRM_BUDDY_CLEAR_ALLOCATION BIT(3)
> #define DRM_BUDDY_CLEARED BIT(4)
> +#define DRM_BUDDY_TRIM_DISABLE BIT(5)
>
> struct drm_buddy_block {
> #define DRM_BUDDY_HEADER_OFFSET GENMASK_ULL(63, 12)
> @@ -155,6 +156,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
> unsigned long flags);
>
> int drm_buddy_block_trim(struct drm_buddy *mm,
> + u64 *start,
> u64 new_size,
> struct list_head *blocks);
>
>
> base-commit: b27d70e1042bf6a31ba7e5acf58b61c9cd28f95b
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v7 1/2] drm/buddy: Add start address support to trim function
2024-07-24 15:12 ` Jani Nikula
@ 2024-07-26 14:02 ` Paneer Selvam, Arunpravin
0 siblings, 0 replies; 13+ messages in thread
From: Paneer Selvam, Arunpravin @ 2024-07-26 14:02 UTC (permalink / raw)
To: Jani Nikula, dri-devel, amd-gfx, intel-gfx, matthew.auld
Cc: christian.koenig, alexander.deucher, frank.min, marek.olsak
On 7/24/2024 8:42 PM, Jani Nikula wrote:
> On Tue, 23 Jul 2024, Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com> wrote:
>> - Add a new start parameter in trim function to specify exact
>> address from where to start the trimming. This would help us
>> in situations like if drivers would like to do address alignment
>> for specific requirements.
>>
>> - Add a new flag DRM_BUDDY_TRIM_DISABLE. Drivers can use this
>> flag to disable the allocator trimming part. This patch enables
>> the drivers control trimming and they can do it themselves
>> based on the application requirements.
>>
>> v1:(Matthew)
>> - check new_start alignment with min chunk_size
>> - use range_overflows()
>>
>> Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
>> Acked-by: Alex Deucher <alexander.deucher@amd.com>
>> Acked-by: Christian König <christian.koenig@amd.com>
>> ---
>> drivers/gpu/drm/drm_buddy.c | 25 +++++++++++++++++++++++--
>> drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 2 +-
>> include/drm/drm_buddy.h | 2 ++
>> 3 files changed, 26 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_buddy.c b/drivers/gpu/drm/drm_buddy.c
>> index 6a8e45e9d0ec..103c185bb1c8 100644
>> --- a/drivers/gpu/drm/drm_buddy.c
>> +++ b/drivers/gpu/drm/drm_buddy.c
>> @@ -851,6 +851,7 @@ static int __alloc_contig_try_harder(struct drm_buddy *mm,
>> * drm_buddy_block_trim - free unused pages
>> *
>> * @mm: DRM buddy manager
>> + * @start: start address to begin the trimming.
>> * @new_size: original size requested
>> * @blocks: Input and output list of allocated blocks.
>> * MUST contain single block as input to be trimmed.
>> @@ -866,11 +867,13 @@ static int __alloc_contig_try_harder(struct drm_buddy *mm,
>> * 0 on success, error code on failure.
>> */
>> int drm_buddy_block_trim(struct drm_buddy *mm,
>> + u64 *start,
> Is this a pointer only to allow passing NULL as "don't specify"? It's
> not used for returning anything in *start. Maybe it should be a const
> pointer?
>
> Not the prettiest of interfaces, and the kernel-doc does not reflect any
> of this.
We have a plan to improve the interface and add multiple block trim
support as well.
I will modify in the follow-up patch.
Thanks,
Arun.
>
> BR,
> Jani.
>
>
>> u64 new_size,
>> struct list_head *blocks)
>> {
>> struct drm_buddy_block *parent;
>> struct drm_buddy_block *block;
>> + u64 block_start, block_end;
>> LIST_HEAD(dfs);
>> u64 new_start;
>> int err;
>> @@ -882,6 +885,9 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
>> struct drm_buddy_block,
>> link);
>>
>> + block_start = drm_buddy_block_offset(block);
>> + block_end = block_start + drm_buddy_block_size(mm, block);
>> +
>> if (WARN_ON(!drm_buddy_block_is_allocated(block)))
>> return -EINVAL;
>>
>> @@ -894,6 +900,20 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
>> if (new_size == drm_buddy_block_size(mm, block))
>> return 0;
>>
>> + new_start = block_start;
>> + if (start) {
>> + new_start = *start;
>> +
>> + if (new_start < block_start)
>> + return -EINVAL;
>> +
>> + if (!IS_ALIGNED(new_start, mm->chunk_size))
>> + return -EINVAL;
>> +
>> + if (range_overflows(new_start, new_size, block_end))
>> + return -EINVAL;
>> + }
>> +
>> list_del(&block->link);
>> mark_free(mm, block);
>> mm->avail += drm_buddy_block_size(mm, block);
>> @@ -904,7 +924,6 @@ int drm_buddy_block_trim(struct drm_buddy *mm,
>> parent = block->parent;
>> block->parent = NULL;
>>
>> - new_start = drm_buddy_block_offset(block);
>> list_add(&block->tmp_link, &dfs);
>> err = __alloc_range(mm, &dfs, new_start, new_size, blocks, NULL);
>> if (err) {
>> @@ -1066,7 +1085,8 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
>> } while (1);
>>
>> /* Trim the allocated block to the required size */
>> - if (original_size != size) {
>> + if (!(flags & DRM_BUDDY_TRIM_DISABLE) &&
>> + original_size != size) {
>> struct list_head *trim_list;
>> LIST_HEAD(temp);
>> u64 trim_size;
>> @@ -1083,6 +1103,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
>> }
>>
>> drm_buddy_block_trim(mm,
>> + NULL,
>> trim_size,
>> trim_list);
>>
>> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>> index fe3779fdba2c..423b261ea743 100644
>> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>> @@ -150,7 +150,7 @@ static int xe_ttm_vram_mgr_new(struct ttm_resource_manager *man,
>> } while (remaining_size);
>>
>> if (place->flags & TTM_PL_FLAG_CONTIGUOUS) {
>> - if (!drm_buddy_block_trim(mm, vres->base.size, &vres->blocks))
>> + if (!drm_buddy_block_trim(mm, NULL, vres->base.size, &vres->blocks))
>> size = vres->base.size;
>> }
>>
>> diff --git a/include/drm/drm_buddy.h b/include/drm/drm_buddy.h
>> index 2a74fa9d0ce5..9689a7c5dd36 100644
>> --- a/include/drm/drm_buddy.h
>> +++ b/include/drm/drm_buddy.h
>> @@ -27,6 +27,7 @@
>> #define DRM_BUDDY_CONTIGUOUS_ALLOCATION BIT(2)
>> #define DRM_BUDDY_CLEAR_ALLOCATION BIT(3)
>> #define DRM_BUDDY_CLEARED BIT(4)
>> +#define DRM_BUDDY_TRIM_DISABLE BIT(5)
>>
>> struct drm_buddy_block {
>> #define DRM_BUDDY_HEADER_OFFSET GENMASK_ULL(63, 12)
>> @@ -155,6 +156,7 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
>> unsigned long flags);
>>
>> int drm_buddy_block_trim(struct drm_buddy *mm,
>> + u64 *start,
>> u64 new_size,
>> struct list_head *blocks);
>>
>>
>> base-commit: b27d70e1042bf6a31ba7e5acf58b61c9cd28f95b
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2024-07-26 14:02 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-23 13:25 [PATCH v7 1/2] drm/buddy: Add start address support to trim function Arunpravin Paneer Selvam
2024-07-23 13:25 ` [PATCH v7 2/2] drm/amdgpu: Add address alignment support to DCC buffers Arunpravin Paneer Selvam
2024-07-23 13:43 ` [PATCH v7 1/2] drm/buddy: Add start address support to trim function Paneer Selvam, Arunpravin
2024-07-23 15:02 ` Matthew Auld
2024-07-24 1:35 ` Marek Olšák
2024-07-24 9:37 ` Matthew Auld
2024-07-24 11:20 ` Christian König
2024-07-23 14:04 ` ✗ Fi.CI.SPARSE: warning for series starting with [v7,1/2] " Patchwork
2024-07-23 14:11 ` ✓ Fi.CI.BAT: success " Patchwork
2024-07-23 21:36 ` ✗ Fi.CI.IGT: failure " Patchwork
2024-07-24 9:48 ` [PATCH v7 1/2] " Matthew Auld
2024-07-24 15:12 ` Jani Nikula
2024-07-26 14:02 ` Paneer Selvam, Arunpravin
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.