* [Intel-gfx] [PATCH v2 0/7] drm/ttm: Small fixes / cleanups in prep for shrinking
@ 2023-03-07 14:46 Thomas Hellström
2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 1/7] drm/ttm: Fix a NULL pointer dereference Thomas Hellström
` (8 more replies)
0 siblings, 9 replies; 22+ messages in thread
From: Thomas Hellström @ 2023-03-07 14:46 UTC (permalink / raw)
To: dri-devel
Cc: Thomas Hellström, intel-gfx, Christian Koenig, Matthew Auld
I collected the, from my POW, uncontroversial patches from V1 of the TTM
shrinker series, some corrected after the initial patch submission, one
patch added from the Xe RFC ("drm/ttm: Don't print error message if
eviction was interrupted"). It would be nice to have these reviewed and
merged while reworking the rest.
v2:
- Simplify __ttm_pool_free().
- Fix the TTM_TT_FLAG bit numbers.
- Keep all allocation orders for TTM pages at or below PMD order
Thomas Hellström (7):
drm/ttm: Fix a NULL pointer dereference
drm/ttm/pool: Fix ttm_pool_alloc error path
drm/ttm: Use the BIT macro for the TTM_TT_FLAGs
drm/ttm: Unexport ttm_global_swapout()
drm/ttm: Don't print error message if eviction was interrupted
drm/ttm: Reduce the number of used allocation orders for TTM pages
drm/ttm: Make the call to ttm_tt_populate() interruptible when
faulting
drivers/gpu/drm/ttm/ttm_bo.c | 3 +-
drivers/gpu/drm/ttm/ttm_bo_vm.c | 13 ++++-
drivers/gpu/drm/ttm/ttm_device.c | 3 +-
drivers/gpu/drm/ttm/ttm_pool.c | 95 ++++++++++++++++++--------------
include/drm/ttm/ttm_tt.h | 10 ++--
5 files changed, 72 insertions(+), 52 deletions(-)
--
2.39.2
^ permalink raw reply [flat|nested] 22+ messages in thread* [Intel-gfx] [PATCH v2 1/7] drm/ttm: Fix a NULL pointer dereference 2023-03-07 14:46 [Intel-gfx] [PATCH v2 0/7] drm/ttm: Small fixes / cleanups in prep for shrinking Thomas Hellström @ 2023-03-07 14:46 ` Thomas Hellström 2023-03-07 16:55 ` Christian König 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 2/7] drm/ttm/pool: Fix ttm_pool_alloc error path Thomas Hellström ` (7 subsequent siblings) 8 siblings, 1 reply; 22+ messages in thread From: Thomas Hellström @ 2023-03-07 14:46 UTC (permalink / raw) To: dri-devel Cc: Thomas Hellström, Arunpravin Paneer Selvam, Philip Yang, Daniel Vetter, Felix Kuehling, Qiang Yu, Huang Rui, Matthew Auld, Alex Deucher, intel-gfx, Christian König, Nirmoy Das The LRU mechanism may look up a resource in the process of being removed from an object. The locking rules here are a bit unclear but it looks currently like res->bo assignment is protected by the LRU lock, whereas bo->resource is protected by the object lock, while *clearing* of bo->resource is also protected by the LRU lock. This means that if we check that bo->resource points to the LRU resource under the LRU lock we should be safe. So perform that check before deciding to swap out a bo. That avoids dereferencing a NULL bo->resource in ttm_bo_swapout(). Fixes: 6a9b02899402 ("drm/ttm: move the LRU into resource handling v4") Cc: Christian König <christian.koenig@amd.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Christian Koenig <christian.koenig@amd.com> Cc: Huang Rui <ray.huang@amd.com> Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Felix Kuehling <Felix.Kuehling@amd.com> Cc: Philip Yang <Philip.Yang@amd.com> Cc: Qiang Yu <qiang.yu@amd.com> Cc: Matthew Auld <matthew.auld@intel.com> Cc: Nirmoy Das <nirmoy.das@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com> Cc: Anshuman Gupta <anshuman.gupta@intel.com> Cc: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com> Cc: dri-devel@lists.freedesktop.org Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Christian König <christian.koenig@amd.com> --- drivers/gpu/drm/ttm/ttm_device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c index c7a1862f322a..ae2f19dc9f81 100644 --- a/drivers/gpu/drm/ttm/ttm_device.c +++ b/drivers/gpu/drm/ttm/ttm_device.c @@ -158,7 +158,7 @@ int ttm_device_swapout(struct ttm_device *bdev, struct ttm_operation_ctx *ctx, struct ttm_buffer_object *bo = res->bo; uint32_t num_pages; - if (!bo) + if (!bo || bo->resource != res) continue; num_pages = PFN_UP(bo->base.size); -- 2.39.2 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v2 1/7] drm/ttm: Fix a NULL pointer dereference 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 1/7] drm/ttm: Fix a NULL pointer dereference Thomas Hellström @ 2023-03-07 16:55 ` Christian König 2023-03-07 17:46 ` Thomas Hellström 0 siblings, 1 reply; 22+ messages in thread From: Christian König @ 2023-03-07 16:55 UTC (permalink / raw) To: Thomas Hellström, dri-devel Cc: Philip Yang, Daniel Vetter, Felix Kuehling, Arunpravin Paneer Selvam, Qiang Yu, Huang Rui, Matthew Auld, Alex Deucher, intel-gfx, Nirmoy Das Am 07.03.23 um 15:46 schrieb Thomas Hellström: > The LRU mechanism may look up a resource in the process of being removed > from an object. The locking rules here are a bit unclear but it looks > currently like res->bo assignment is protected by the LRU lock, whereas > bo->resource is protected by the object lock, while *clearing* of > bo->resource is also protected by the LRU lock. This means that if > we check that bo->resource points to the LRU resource under the LRU > lock we should be safe. > So perform that check before deciding to swap out a bo. That avoids > dereferencing a NULL bo->resource in ttm_bo_swapout(). Please make sure that this is pushed to drm-misc-fixes ASAP. I've getting complains for this from different sides. Thanks, Christian. > > Fixes: 6a9b02899402 ("drm/ttm: move the LRU into resource handling v4") > Cc: Christian König <christian.koenig@amd.com> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > Cc: Christian Koenig <christian.koenig@amd.com> > Cc: Huang Rui <ray.huang@amd.com> > Cc: Alex Deucher <alexander.deucher@amd.com> > Cc: Felix Kuehling <Felix.Kuehling@amd.com> > Cc: Philip Yang <Philip.Yang@amd.com> > Cc: Qiang Yu <qiang.yu@amd.com> > Cc: Matthew Auld <matthew.auld@intel.com> > Cc: Nirmoy Das <nirmoy.das@intel.com> > Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com> > Cc: Anshuman Gupta <anshuman.gupta@intel.com> > Cc: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com> > Cc: dri-devel@lists.freedesktop.org > Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> > Reviewed-by: Christian König <christian.koenig@amd.com> > --- > drivers/gpu/drm/ttm/ttm_device.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c > index c7a1862f322a..ae2f19dc9f81 100644 > --- a/drivers/gpu/drm/ttm/ttm_device.c > +++ b/drivers/gpu/drm/ttm/ttm_device.c > @@ -158,7 +158,7 @@ int ttm_device_swapout(struct ttm_device *bdev, struct ttm_operation_ctx *ctx, > struct ttm_buffer_object *bo = res->bo; > uint32_t num_pages; > > - if (!bo) > + if (!bo || bo->resource != res) > continue; > > num_pages = PFN_UP(bo->base.size); ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v2 1/7] drm/ttm: Fix a NULL pointer dereference 2023-03-07 16:55 ` Christian König @ 2023-03-07 17:46 ` Thomas Hellström 0 siblings, 0 replies; 22+ messages in thread From: Thomas Hellström @ 2023-03-07 17:46 UTC (permalink / raw) To: Christian König, dri-devel Cc: Philip Yang, Daniel Vetter, Felix Kuehling, Arunpravin Paneer Selvam, Qiang Yu, Huang Rui, Matthew Auld, Alex Deucher, intel-gfx, Nirmoy Das On 3/7/23 17:55, Christian König wrote: > Am 07.03.23 um 15:46 schrieb Thomas Hellström: >> The LRU mechanism may look up a resource in the process of being removed >> from an object. The locking rules here are a bit unclear but it looks >> currently like res->bo assignment is protected by the LRU lock, whereas >> bo->resource is protected by the object lock, while *clearing* of >> bo->resource is also protected by the LRU lock. This means that if >> we check that bo->resource points to the LRU resource under the LRU >> lock we should be safe. >> So perform that check before deciding to swap out a bo. That avoids >> dereferencing a NULL bo->resource in ttm_bo_swapout(). > > Please make sure that this is pushed to drm-misc-fixes ASAP. > > I've getting complains for this from different sides. > > Thanks, > Christian. Done. /Thomas > >> >> Fixes: 6a9b02899402 ("drm/ttm: move the LRU into resource handling v4") >> Cc: Christian König <christian.koenig@amd.com> >> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> >> Cc: Christian Koenig <christian.koenig@amd.com> >> Cc: Huang Rui <ray.huang@amd.com> >> Cc: Alex Deucher <alexander.deucher@amd.com> >> Cc: Felix Kuehling <Felix.Kuehling@amd.com> >> Cc: Philip Yang <Philip.Yang@amd.com> >> Cc: Qiang Yu <qiang.yu@amd.com> >> Cc: Matthew Auld <matthew.auld@intel.com> >> Cc: Nirmoy Das <nirmoy.das@intel.com> >> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com> >> Cc: Anshuman Gupta <anshuman.gupta@intel.com> >> Cc: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com> >> Cc: dri-devel@lists.freedesktop.org >> Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> >> Reviewed-by: Christian König <christian.koenig@amd.com> >> --- >> drivers/gpu/drm/ttm/ttm_device.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/ttm/ttm_device.c >> b/drivers/gpu/drm/ttm/ttm_device.c >> index c7a1862f322a..ae2f19dc9f81 100644 >> --- a/drivers/gpu/drm/ttm/ttm_device.c >> +++ b/drivers/gpu/drm/ttm/ttm_device.c >> @@ -158,7 +158,7 @@ int ttm_device_swapout(struct ttm_device *bdev, >> struct ttm_operation_ctx *ctx, >> struct ttm_buffer_object *bo = res->bo; >> uint32_t num_pages; >> - if (!bo) >> + if (!bo || bo->resource != res) >> continue; >> num_pages = PFN_UP(bo->base.size); > ^ permalink raw reply [flat|nested] 22+ messages in thread
* [Intel-gfx] [PATCH v2 2/7] drm/ttm/pool: Fix ttm_pool_alloc error path 2023-03-07 14:46 [Intel-gfx] [PATCH v2 0/7] drm/ttm: Small fixes / cleanups in prep for shrinking Thomas Hellström 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 1/7] drm/ttm: Fix a NULL pointer dereference Thomas Hellström @ 2023-03-07 14:46 ` Thomas Hellström 2023-03-08 8:48 ` Christian König 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 3/7] drm/ttm: Use the BIT macro for the TTM_TT_FLAGs Thomas Hellström ` (6 subsequent siblings) 8 siblings, 1 reply; 22+ messages in thread From: Thomas Hellström @ 2023-03-07 14:46 UTC (permalink / raw) To: dri-devel Cc: Thomas Hellström, intel-gfx, Huang Rui, Matthew Auld, Dave Airlie, Christian König When hitting an error, the error path forgot to unmap dma mappings and could call set_pages_wb() on already uncached pages. Fix this by introducing a common __ttm_pool_free() function that does the right thing. v2: - Simplify __ttm_pool_free() (Christian König) Fixes: d099fc8f540a ("drm/ttm: new TT backend allocation pool v3") Cc: Christian König <christian.koenig@amd.com> Cc: Dave Airlie <airlied@redhat.com> Cc: Christian Koenig <christian.koenig@amd.com> Cc: Huang Rui <ray.huang@amd.com> Cc: dri-devel@lists.freedesktop.org Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> --- drivers/gpu/drm/ttm/ttm_pool.c | 68 +++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_pool.c b/drivers/gpu/drm/ttm/ttm_pool.c index aa116a7bbae3..0b6e20613d19 100644 --- a/drivers/gpu/drm/ttm/ttm_pool.c +++ b/drivers/gpu/drm/ttm/ttm_pool.c @@ -367,6 +367,30 @@ static int ttm_pool_page_allocated(struct ttm_pool *pool, unsigned int order, return 0; } +static void __ttm_pool_free(struct ttm_pool *pool, struct ttm_tt *tt, + enum ttm_caching caching, + pgoff_t start_page, pgoff_t end_page) +{ + struct page **pages = tt->pages; + unsigned int order; + pgoff_t i, nr; + + for (i = start_page; i < end_page; i += nr, pages += nr) { + struct ttm_pool_type *pt = NULL; + + order = ttm_pool_page_order(pool, *pages); + nr = (1UL << order); + if (tt->dma_address) + ttm_pool_unmap(pool, tt->dma_address[i], nr); + + pt = ttm_pool_select_type(pool, caching, order); + if (pt) + ttm_pool_type_give(pt, *pages); + else + ttm_pool_free_page(pool, caching, order, *pages); + } +} + /** * ttm_pool_alloc - Fill a ttm_tt object * @@ -382,12 +406,14 @@ static int ttm_pool_page_allocated(struct ttm_pool *pool, unsigned int order, int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, struct ttm_operation_ctx *ctx) { - unsigned long num_pages = tt->num_pages; + pgoff_t num_pages = tt->num_pages; dma_addr_t *dma_addr = tt->dma_address; struct page **caching = tt->pages; struct page **pages = tt->pages; + enum ttm_caching page_caching; gfp_t gfp_flags = GFP_USER; - unsigned int i, order; + pgoff_t caching_divide; + unsigned int order; struct page *p; int r; @@ -410,6 +436,7 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, order = min_t(unsigned int, order, __fls(num_pages))) { struct ttm_pool_type *pt; + page_caching = tt->caching; pt = ttm_pool_select_type(pool, tt->caching, order); p = pt ? ttm_pool_type_take(pt) : NULL; if (p) { @@ -418,6 +445,7 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, if (r) goto error_free_page; + caching = pages; do { r = ttm_pool_page_allocated(pool, order, p, &dma_addr, @@ -426,14 +454,15 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, if (r) goto error_free_page; + caching = pages; if (num_pages < (1 << order)) break; p = ttm_pool_type_take(pt); } while (p); - caching = pages; } + page_caching = ttm_cached; while (num_pages >= (1 << order) && (p = ttm_pool_alloc_page(pool, gfp_flags, order))) { @@ -442,6 +471,7 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, tt->caching); if (r) goto error_free_page; + caching = pages; } r = ttm_pool_page_allocated(pool, order, p, &dma_addr, &num_pages, &pages); @@ -468,15 +498,13 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, return 0; error_free_page: - ttm_pool_free_page(pool, tt->caching, order, p); + ttm_pool_free_page(pool, page_caching, order, p); error_free_all: num_pages = tt->num_pages - num_pages; - for (i = 0; i < num_pages; ) { - order = ttm_pool_page_order(pool, tt->pages[i]); - ttm_pool_free_page(pool, tt->caching, order, tt->pages[i]); - i += 1 << order; - } + caching_divide = caching - tt->pages; + __ttm_pool_free(pool, tt, tt->caching, 0, caching_divide); + __ttm_pool_free(pool, tt, ttm_cached, caching_divide, num_pages); return r; } @@ -492,27 +520,7 @@ EXPORT_SYMBOL(ttm_pool_alloc); */ void ttm_pool_free(struct ttm_pool *pool, struct ttm_tt *tt) { - unsigned int i; - - for (i = 0; i < tt->num_pages; ) { - struct page *p = tt->pages[i]; - unsigned int order, num_pages; - struct ttm_pool_type *pt; - - order = ttm_pool_page_order(pool, p); - num_pages = 1ULL << order; - if (tt->dma_address) - ttm_pool_unmap(pool, tt->dma_address[i], num_pages); - - pt = ttm_pool_select_type(pool, tt->caching, order); - if (pt) - ttm_pool_type_give(pt, tt->pages[i]); - else - ttm_pool_free_page(pool, tt->caching, order, - tt->pages[i]); - - i += num_pages; - } + __ttm_pool_free(pool, tt, tt->caching, 0, tt->num_pages); while (atomic_long_read(&allocated_pages) > page_pool_size) ttm_pool_shrink(); -- 2.39.2 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v2 2/7] drm/ttm/pool: Fix ttm_pool_alloc error path 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 2/7] drm/ttm/pool: Fix ttm_pool_alloc error path Thomas Hellström @ 2023-03-08 8:48 ` Christian König 2023-03-08 8:58 ` Thomas Hellström 0 siblings, 1 reply; 22+ messages in thread From: Christian König @ 2023-03-08 8:48 UTC (permalink / raw) To: Thomas Hellström, dri-devel Cc: Dave Airlie, intel-gfx, Huang Rui, Matthew Auld Am 07.03.23 um 15:46 schrieb Thomas Hellström: > When hitting an error, the error path forgot to unmap dma mappings and > could call set_pages_wb() on already uncached pages. > > Fix this by introducing a common __ttm_pool_free() function that > does the right thing. > > v2: > - Simplify __ttm_pool_free() (Christian König) > > Fixes: d099fc8f540a ("drm/ttm: new TT backend allocation pool v3") > Cc: Christian König <christian.koenig@amd.com> > Cc: Dave Airlie <airlied@redhat.com> > Cc: Christian Koenig <christian.koenig@amd.com> > Cc: Huang Rui <ray.huang@amd.com> > Cc: dri-devel@lists.freedesktop.org > Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> > --- > drivers/gpu/drm/ttm/ttm_pool.c | 68 +++++++++++++++++++--------------- > 1 file changed, 38 insertions(+), 30 deletions(-) > > diff --git a/drivers/gpu/drm/ttm/ttm_pool.c b/drivers/gpu/drm/ttm/ttm_pool.c > index aa116a7bbae3..0b6e20613d19 100644 > --- a/drivers/gpu/drm/ttm/ttm_pool.c > +++ b/drivers/gpu/drm/ttm/ttm_pool.c > @@ -367,6 +367,30 @@ static int ttm_pool_page_allocated(struct ttm_pool *pool, unsigned int order, > return 0; > } > > +static void __ttm_pool_free(struct ttm_pool *pool, struct ttm_tt *tt, Maybe name that ttm_pool_free_range() and add a comment why we need it. Something like "/* Cleanup all pages in the tt between start_page till end_page */". Apart from that looks good to me. Regards, Christian. > + enum ttm_caching caching, > + pgoff_t start_page, pgoff_t end_page) > +{ > + struct page **pages = tt->pages; > + unsigned int order; > + pgoff_t i, nr; > + > + for (i = start_page; i < end_page; i += nr, pages += nr) { > + struct ttm_pool_type *pt = NULL; > + > + order = ttm_pool_page_order(pool, *pages); > + nr = (1UL << order); > + if (tt->dma_address) > + ttm_pool_unmap(pool, tt->dma_address[i], nr); > + > + pt = ttm_pool_select_type(pool, caching, order); > + if (pt) > + ttm_pool_type_give(pt, *pages); > + else > + ttm_pool_free_page(pool, caching, order, *pages); > + } > +} > + > /** > * ttm_pool_alloc - Fill a ttm_tt object > * > @@ -382,12 +406,14 @@ static int ttm_pool_page_allocated(struct ttm_pool *pool, unsigned int order, > int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, > struct ttm_operation_ctx *ctx) > { > - unsigned long num_pages = tt->num_pages; > + pgoff_t num_pages = tt->num_pages; > dma_addr_t *dma_addr = tt->dma_address; > struct page **caching = tt->pages; > struct page **pages = tt->pages; > + enum ttm_caching page_caching; > gfp_t gfp_flags = GFP_USER; > - unsigned int i, order; > + pgoff_t caching_divide; > + unsigned int order; > struct page *p; > int r; > > @@ -410,6 +436,7 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, > order = min_t(unsigned int, order, __fls(num_pages))) { > struct ttm_pool_type *pt; > > + page_caching = tt->caching; > pt = ttm_pool_select_type(pool, tt->caching, order); > p = pt ? ttm_pool_type_take(pt) : NULL; > if (p) { > @@ -418,6 +445,7 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, > if (r) > goto error_free_page; > > + caching = pages; > do { > r = ttm_pool_page_allocated(pool, order, p, > &dma_addr, > @@ -426,14 +454,15 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, > if (r) > goto error_free_page; > > + caching = pages; > if (num_pages < (1 << order)) > break; > > p = ttm_pool_type_take(pt); > } while (p); > - caching = pages; > } > > + page_caching = ttm_cached; > while (num_pages >= (1 << order) && > (p = ttm_pool_alloc_page(pool, gfp_flags, order))) { > > @@ -442,6 +471,7 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, > tt->caching); > if (r) > goto error_free_page; > + caching = pages; > } > r = ttm_pool_page_allocated(pool, order, p, &dma_addr, > &num_pages, &pages); > @@ -468,15 +498,13 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, > return 0; > > error_free_page: > - ttm_pool_free_page(pool, tt->caching, order, p); > + ttm_pool_free_page(pool, page_caching, order, p); > > error_free_all: > num_pages = tt->num_pages - num_pages; > - for (i = 0; i < num_pages; ) { > - order = ttm_pool_page_order(pool, tt->pages[i]); > - ttm_pool_free_page(pool, tt->caching, order, tt->pages[i]); > - i += 1 << order; > - } > + caching_divide = caching - tt->pages; > + __ttm_pool_free(pool, tt, tt->caching, 0, caching_divide); > + __ttm_pool_free(pool, tt, ttm_cached, caching_divide, num_pages); > > return r; > } > @@ -492,27 +520,7 @@ EXPORT_SYMBOL(ttm_pool_alloc); > */ > void ttm_pool_free(struct ttm_pool *pool, struct ttm_tt *tt) > { > - unsigned int i; > - > - for (i = 0; i < tt->num_pages; ) { > - struct page *p = tt->pages[i]; > - unsigned int order, num_pages; > - struct ttm_pool_type *pt; > - > - order = ttm_pool_page_order(pool, p); > - num_pages = 1ULL << order; > - if (tt->dma_address) > - ttm_pool_unmap(pool, tt->dma_address[i], num_pages); > - > - pt = ttm_pool_select_type(pool, tt->caching, order); > - if (pt) > - ttm_pool_type_give(pt, tt->pages[i]); > - else > - ttm_pool_free_page(pool, tt->caching, order, > - tt->pages[i]); > - > - i += num_pages; > - } > + __ttm_pool_free(pool, tt, tt->caching, 0, tt->num_pages); > > while (atomic_long_read(&allocated_pages) > page_pool_size) > ttm_pool_shrink(); ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v2 2/7] drm/ttm/pool: Fix ttm_pool_alloc error path 2023-03-08 8:48 ` Christian König @ 2023-03-08 8:58 ` Thomas Hellström 0 siblings, 0 replies; 22+ messages in thread From: Thomas Hellström @ 2023-03-08 8:58 UTC (permalink / raw) To: Christian König, dri-devel Cc: Dave Airlie, intel-gfx, Huang Rui, Matthew Auld On 3/8/23 09:48, Christian König wrote: > Am 07.03.23 um 15:46 schrieb Thomas Hellström: >> When hitting an error, the error path forgot to unmap dma mappings and >> could call set_pages_wb() on already uncached pages. >> >> Fix this by introducing a common __ttm_pool_free() function that >> does the right thing. >> >> v2: >> - Simplify __ttm_pool_free() (Christian König) >> >> Fixes: d099fc8f540a ("drm/ttm: new TT backend allocation pool v3") >> Cc: Christian König <christian.koenig@amd.com> >> Cc: Dave Airlie <airlied@redhat.com> >> Cc: Christian Koenig <christian.koenig@amd.com> >> Cc: Huang Rui <ray.huang@amd.com> >> Cc: dri-devel@lists.freedesktop.org >> Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> >> --- >> drivers/gpu/drm/ttm/ttm_pool.c | 68 +++++++++++++++++++--------------- >> 1 file changed, 38 insertions(+), 30 deletions(-) >> >> diff --git a/drivers/gpu/drm/ttm/ttm_pool.c >> b/drivers/gpu/drm/ttm/ttm_pool.c >> index aa116a7bbae3..0b6e20613d19 100644 >> --- a/drivers/gpu/drm/ttm/ttm_pool.c >> +++ b/drivers/gpu/drm/ttm/ttm_pool.c >> @@ -367,6 +367,30 @@ static int ttm_pool_page_allocated(struct >> ttm_pool *pool, unsigned int order, >> return 0; >> } >> +static void __ttm_pool_free(struct ttm_pool *pool, struct ttm_tt *tt, > > Maybe name that ttm_pool_free_range() and add a comment why we need > it. Something like "/* Cleanup all pages in the tt between start_page > till end_page */". Sure, will do. /Thomas > > Apart from that looks good to me. > > Regards, > Christian. > >> + enum ttm_caching caching, >> + pgoff_t start_page, pgoff_t end_page) >> +{ >> + struct page **pages = tt->pages; >> + unsigned int order; >> + pgoff_t i, nr; >> + >> + for (i = start_page; i < end_page; i += nr, pages += nr) { >> + struct ttm_pool_type *pt = NULL; >> + >> + order = ttm_pool_page_order(pool, *pages); >> + nr = (1UL << order); >> + if (tt->dma_address) >> + ttm_pool_unmap(pool, tt->dma_address[i], nr); >> + >> + pt = ttm_pool_select_type(pool, caching, order); >> + if (pt) >> + ttm_pool_type_give(pt, *pages); >> + else >> + ttm_pool_free_page(pool, caching, order, *pages); >> + } >> +} >> + >> /** >> * ttm_pool_alloc - Fill a ttm_tt object >> * >> @@ -382,12 +406,14 @@ static int ttm_pool_page_allocated(struct >> ttm_pool *pool, unsigned int order, >> int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, >> struct ttm_operation_ctx *ctx) >> { >> - unsigned long num_pages = tt->num_pages; >> + pgoff_t num_pages = tt->num_pages; >> dma_addr_t *dma_addr = tt->dma_address; >> struct page **caching = tt->pages; >> struct page **pages = tt->pages; >> + enum ttm_caching page_caching; >> gfp_t gfp_flags = GFP_USER; >> - unsigned int i, order; >> + pgoff_t caching_divide; >> + unsigned int order; >> struct page *p; >> int r; >> @@ -410,6 +436,7 @@ int ttm_pool_alloc(struct ttm_pool *pool, >> struct ttm_tt *tt, >> order = min_t(unsigned int, order, __fls(num_pages))) { >> struct ttm_pool_type *pt; >> + page_caching = tt->caching; >> pt = ttm_pool_select_type(pool, tt->caching, order); >> p = pt ? ttm_pool_type_take(pt) : NULL; >> if (p) { >> @@ -418,6 +445,7 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct >> ttm_tt *tt, >> if (r) >> goto error_free_page; >> + caching = pages; >> do { >> r = ttm_pool_page_allocated(pool, order, p, >> &dma_addr, >> @@ -426,14 +454,15 @@ int ttm_pool_alloc(struct ttm_pool *pool, >> struct ttm_tt *tt, >> if (r) >> goto error_free_page; >> + caching = pages; >> if (num_pages < (1 << order)) >> break; >> p = ttm_pool_type_take(pt); >> } while (p); >> - caching = pages; >> } >> + page_caching = ttm_cached; >> while (num_pages >= (1 << order) && >> (p = ttm_pool_alloc_page(pool, gfp_flags, order))) { >> @@ -442,6 +471,7 @@ int ttm_pool_alloc(struct ttm_pool *pool, >> struct ttm_tt *tt, >> tt->caching); >> if (r) >> goto error_free_page; >> + caching = pages; >> } >> r = ttm_pool_page_allocated(pool, order, p, &dma_addr, >> &num_pages, &pages); >> @@ -468,15 +498,13 @@ int ttm_pool_alloc(struct ttm_pool *pool, >> struct ttm_tt *tt, >> return 0; >> error_free_page: >> - ttm_pool_free_page(pool, tt->caching, order, p); >> + ttm_pool_free_page(pool, page_caching, order, p); >> error_free_all: >> num_pages = tt->num_pages - num_pages; >> - for (i = 0; i < num_pages; ) { >> - order = ttm_pool_page_order(pool, tt->pages[i]); >> - ttm_pool_free_page(pool, tt->caching, order, tt->pages[i]); >> - i += 1 << order; >> - } >> + caching_divide = caching - tt->pages; >> + __ttm_pool_free(pool, tt, tt->caching, 0, caching_divide); >> + __ttm_pool_free(pool, tt, ttm_cached, caching_divide, num_pages); >> return r; >> } >> @@ -492,27 +520,7 @@ EXPORT_SYMBOL(ttm_pool_alloc); >> */ >> void ttm_pool_free(struct ttm_pool *pool, struct ttm_tt *tt) >> { >> - unsigned int i; >> - >> - for (i = 0; i < tt->num_pages; ) { >> - struct page *p = tt->pages[i]; >> - unsigned int order, num_pages; >> - struct ttm_pool_type *pt; >> - >> - order = ttm_pool_page_order(pool, p); >> - num_pages = 1ULL << order; >> - if (tt->dma_address) >> - ttm_pool_unmap(pool, tt->dma_address[i], num_pages); >> - >> - pt = ttm_pool_select_type(pool, tt->caching, order); >> - if (pt) >> - ttm_pool_type_give(pt, tt->pages[i]); >> - else >> - ttm_pool_free_page(pool, tt->caching, order, >> - tt->pages[i]); >> - >> - i += num_pages; >> - } >> + __ttm_pool_free(pool, tt, tt->caching, 0, tt->num_pages); >> while (atomic_long_read(&allocated_pages) > page_pool_size) >> ttm_pool_shrink(); > ^ permalink raw reply [flat|nested] 22+ messages in thread
* [Intel-gfx] [PATCH v2 3/7] drm/ttm: Use the BIT macro for the TTM_TT_FLAGs 2023-03-07 14:46 [Intel-gfx] [PATCH v2 0/7] drm/ttm: Small fixes / cleanups in prep for shrinking Thomas Hellström 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 1/7] drm/ttm: Fix a NULL pointer dereference Thomas Hellström 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 2/7] drm/ttm/pool: Fix ttm_pool_alloc error path Thomas Hellström @ 2023-03-07 14:46 ` Thomas Hellström 2023-03-08 8:49 ` Christian König 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 4/7] drm/ttm: Unexport ttm_global_swapout() Thomas Hellström ` (5 subsequent siblings) 8 siblings, 1 reply; 22+ messages in thread From: Thomas Hellström @ 2023-03-07 14:46 UTC (permalink / raw) To: dri-devel Cc: Thomas Hellström, intel-gfx, Christian Koenig, Matthew Auld New code is recommended to use the BIT macro instead of the explicit shifts. Change the older defines so that we can keep the style consistent with upcoming changes. v2: - Also change the value of the _PRIV_POPULATED bit (Christian König) Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> --- include/drm/ttm/ttm_tt.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/drm/ttm/ttm_tt.h b/include/drm/ttm/ttm_tt.h index b7d3f3843f1e..977ca195a536 100644 --- a/include/drm/ttm/ttm_tt.h +++ b/include/drm/ttm/ttm_tt.h @@ -83,12 +83,12 @@ struct ttm_tt { * set by TTM after ttm_tt_populate() has successfully returned, and is * then unset when TTM calls ttm_tt_unpopulate(). */ -#define TTM_TT_FLAG_SWAPPED (1 << 0) -#define TTM_TT_FLAG_ZERO_ALLOC (1 << 1) -#define TTM_TT_FLAG_EXTERNAL (1 << 2) -#define TTM_TT_FLAG_EXTERNAL_MAPPABLE (1 << 3) +#define TTM_TT_FLAG_SWAPPED BIT(0) +#define TTM_TT_FLAG_ZERO_ALLOC BIT(1) +#define TTM_TT_FLAG_EXTERNAL BIT(2) +#define TTM_TT_FLAG_EXTERNAL_MAPPABLE BIT(3) -#define TTM_TT_FLAG_PRIV_POPULATED (1U << 31) +#define TTM_TT_FLAG_PRIV_POPULATED BIT(4) uint32_t page_flags; /** @num_pages: Number of pages in the page array. */ uint32_t num_pages; -- 2.39.2 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v2 3/7] drm/ttm: Use the BIT macro for the TTM_TT_FLAGs 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 3/7] drm/ttm: Use the BIT macro for the TTM_TT_FLAGs Thomas Hellström @ 2023-03-08 8:49 ` Christian König 2023-03-09 7:06 ` Thomas Hellström 0 siblings, 1 reply; 22+ messages in thread From: Christian König @ 2023-03-08 8:49 UTC (permalink / raw) To: Thomas Hellström, dri-devel; +Cc: intel-gfx, Matthew Auld Am 07.03.23 um 15:46 schrieb Thomas Hellström: > New code is recommended to use the BIT macro instead of the explicit > shifts. Change the older defines so that we can keep the style consistent > with upcoming changes. > > v2: > - Also change the value of the _PRIV_POPULATED bit (Christian König) > > Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Christian König <christian.koenig@amd.com> > --- > include/drm/ttm/ttm_tt.h | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/include/drm/ttm/ttm_tt.h b/include/drm/ttm/ttm_tt.h > index b7d3f3843f1e..977ca195a536 100644 > --- a/include/drm/ttm/ttm_tt.h > +++ b/include/drm/ttm/ttm_tt.h > @@ -83,12 +83,12 @@ struct ttm_tt { > * set by TTM after ttm_tt_populate() has successfully returned, and is > * then unset when TTM calls ttm_tt_unpopulate(). > */ > -#define TTM_TT_FLAG_SWAPPED (1 << 0) > -#define TTM_TT_FLAG_ZERO_ALLOC (1 << 1) > -#define TTM_TT_FLAG_EXTERNAL (1 << 2) > -#define TTM_TT_FLAG_EXTERNAL_MAPPABLE (1 << 3) > +#define TTM_TT_FLAG_SWAPPED BIT(0) > +#define TTM_TT_FLAG_ZERO_ALLOC BIT(1) > +#define TTM_TT_FLAG_EXTERNAL BIT(2) > +#define TTM_TT_FLAG_EXTERNAL_MAPPABLE BIT(3) > > -#define TTM_TT_FLAG_PRIV_POPULATED (1U << 31) > +#define TTM_TT_FLAG_PRIV_POPULATED BIT(4) > uint32_t page_flags; > /** @num_pages: Number of pages in the page array. */ > uint32_t num_pages; ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v2 3/7] drm/ttm: Use the BIT macro for the TTM_TT_FLAGs 2023-03-08 8:49 ` Christian König @ 2023-03-09 7:06 ` Thomas Hellström 2023-03-09 8:06 ` Christian König 0 siblings, 1 reply; 22+ messages in thread From: Thomas Hellström @ 2023-03-09 7:06 UTC (permalink / raw) To: Christian König, dri-devel; +Cc: intel-gfx, Matthew Auld Hi, Christian, Thanks for reviewing these. Ack to merge reviewed patches through drm-misc-next? Thanks, Thomas On 3/8/23 09:49, Christian König wrote: > Am 07.03.23 um 15:46 schrieb Thomas Hellström: >> New code is recommended to use the BIT macro instead of the explicit >> shifts. Change the older defines so that we can keep the style >> consistent >> with upcoming changes. >> >> v2: >> - Also change the value of the _PRIV_POPULATED bit (Christian König) >> >> Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> > > Reviewed-by: Christian König <christian.koenig@amd.com> > >> --- >> include/drm/ttm/ttm_tt.h | 10 +++++----- >> 1 file changed, 5 insertions(+), 5 deletions(-) >> >> diff --git a/include/drm/ttm/ttm_tt.h b/include/drm/ttm/ttm_tt.h >> index b7d3f3843f1e..977ca195a536 100644 >> --- a/include/drm/ttm/ttm_tt.h >> +++ b/include/drm/ttm/ttm_tt.h >> @@ -83,12 +83,12 @@ struct ttm_tt { >> * set by TTM after ttm_tt_populate() has successfully >> returned, and is >> * then unset when TTM calls ttm_tt_unpopulate(). >> */ >> -#define TTM_TT_FLAG_SWAPPED (1 << 0) >> -#define TTM_TT_FLAG_ZERO_ALLOC (1 << 1) >> -#define TTM_TT_FLAG_EXTERNAL (1 << 2) >> -#define TTM_TT_FLAG_EXTERNAL_MAPPABLE (1 << 3) >> +#define TTM_TT_FLAG_SWAPPED BIT(0) >> +#define TTM_TT_FLAG_ZERO_ALLOC BIT(1) >> +#define TTM_TT_FLAG_EXTERNAL BIT(2) >> +#define TTM_TT_FLAG_EXTERNAL_MAPPABLE BIT(3) >> -#define TTM_TT_FLAG_PRIV_POPULATED (1U << 31) >> +#define TTM_TT_FLAG_PRIV_POPULATED BIT(4) >> uint32_t page_flags; >> /** @num_pages: Number of pages in the page array. */ >> uint32_t num_pages; > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v2 3/7] drm/ttm: Use the BIT macro for the TTM_TT_FLAGs 2023-03-09 7:06 ` Thomas Hellström @ 2023-03-09 8:06 ` Christian König 0 siblings, 0 replies; 22+ messages in thread From: Christian König @ 2023-03-09 8:06 UTC (permalink / raw) To: Thomas Hellström, dri-devel; +Cc: intel-gfx, Matthew Auld Am 09.03.23 um 08:06 schrieb Thomas Hellström: > Hi, Christian, > > Thanks for reviewing these. > > Ack to merge reviewed patches through drm-misc-next? Sure. Christian. > > Thanks, > > Thomas > > > On 3/8/23 09:49, Christian König wrote: >> Am 07.03.23 um 15:46 schrieb Thomas Hellström: >>> New code is recommended to use the BIT macro instead of the explicit >>> shifts. Change the older defines so that we can keep the style >>> consistent >>> with upcoming changes. >>> >>> v2: >>> - Also change the value of the _PRIV_POPULATED bit (Christian König) >>> >>> Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> >> >> Reviewed-by: Christian König <christian.koenig@amd.com> >> >>> --- >>> include/drm/ttm/ttm_tt.h | 10 +++++----- >>> 1 file changed, 5 insertions(+), 5 deletions(-) >>> >>> diff --git a/include/drm/ttm/ttm_tt.h b/include/drm/ttm/ttm_tt.h >>> index b7d3f3843f1e..977ca195a536 100644 >>> --- a/include/drm/ttm/ttm_tt.h >>> +++ b/include/drm/ttm/ttm_tt.h >>> @@ -83,12 +83,12 @@ struct ttm_tt { >>> * set by TTM after ttm_tt_populate() has successfully >>> returned, and is >>> * then unset when TTM calls ttm_tt_unpopulate(). >>> */ >>> -#define TTM_TT_FLAG_SWAPPED (1 << 0) >>> -#define TTM_TT_FLAG_ZERO_ALLOC (1 << 1) >>> -#define TTM_TT_FLAG_EXTERNAL (1 << 2) >>> -#define TTM_TT_FLAG_EXTERNAL_MAPPABLE (1 << 3) >>> +#define TTM_TT_FLAG_SWAPPED BIT(0) >>> +#define TTM_TT_FLAG_ZERO_ALLOC BIT(1) >>> +#define TTM_TT_FLAG_EXTERNAL BIT(2) >>> +#define TTM_TT_FLAG_EXTERNAL_MAPPABLE BIT(3) >>> -#define TTM_TT_FLAG_PRIV_POPULATED (1U << 31) >>> +#define TTM_TT_FLAG_PRIV_POPULATED BIT(4) >>> uint32_t page_flags; >>> /** @num_pages: Number of pages in the page array. */ >>> uint32_t num_pages; >> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [Intel-gfx] [PATCH v2 4/7] drm/ttm: Unexport ttm_global_swapout() 2023-03-07 14:46 [Intel-gfx] [PATCH v2 0/7] drm/ttm: Small fixes / cleanups in prep for shrinking Thomas Hellström ` (2 preceding siblings ...) 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 3/7] drm/ttm: Use the BIT macro for the TTM_TT_FLAGs Thomas Hellström @ 2023-03-07 14:46 ` Thomas Hellström 2023-03-08 8:49 ` Christian König 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 5/7] drm/ttm: Don't print error message if eviction was interrupted Thomas Hellström ` (4 subsequent siblings) 8 siblings, 1 reply; 22+ messages in thread From: Thomas Hellström @ 2023-03-07 14:46 UTC (permalink / raw) To: dri-devel Cc: Thomas Hellström, intel-gfx, Christian Koenig, Matthew Auld Unexport ttm_global_swapout() since it is not used outside of TTM. Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> --- drivers/gpu/drm/ttm/ttm_device.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c index ae2f19dc9f81..64a59f46f6c3 100644 --- a/drivers/gpu/drm/ttm/ttm_device.c +++ b/drivers/gpu/drm/ttm/ttm_device.c @@ -137,7 +137,6 @@ int ttm_global_swapout(struct ttm_operation_ctx *ctx, gfp_t gfp_flags) mutex_unlock(&ttm_global_mutex); return ret; } -EXPORT_SYMBOL(ttm_global_swapout); int ttm_device_swapout(struct ttm_device *bdev, struct ttm_operation_ctx *ctx, gfp_t gfp_flags) -- 2.39.2 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v2 4/7] drm/ttm: Unexport ttm_global_swapout() 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 4/7] drm/ttm: Unexport ttm_global_swapout() Thomas Hellström @ 2023-03-08 8:49 ` Christian König 0 siblings, 0 replies; 22+ messages in thread From: Christian König @ 2023-03-08 8:49 UTC (permalink / raw) To: Thomas Hellström, dri-devel; +Cc: intel-gfx, Matthew Auld Am 07.03.23 um 15:46 schrieb Thomas Hellström: > Unexport ttm_global_swapout() since it is not used outside of TTM. > > Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Christian König <christian.koenig@amd.com> > --- > drivers/gpu/drm/ttm/ttm_device.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c > index ae2f19dc9f81..64a59f46f6c3 100644 > --- a/drivers/gpu/drm/ttm/ttm_device.c > +++ b/drivers/gpu/drm/ttm/ttm_device.c > @@ -137,7 +137,6 @@ int ttm_global_swapout(struct ttm_operation_ctx *ctx, gfp_t gfp_flags) > mutex_unlock(&ttm_global_mutex); > return ret; > } > -EXPORT_SYMBOL(ttm_global_swapout); > > int ttm_device_swapout(struct ttm_device *bdev, struct ttm_operation_ctx *ctx, > gfp_t gfp_flags) ^ permalink raw reply [flat|nested] 22+ messages in thread
* [Intel-gfx] [PATCH v2 5/7] drm/ttm: Don't print error message if eviction was interrupted 2023-03-07 14:46 [Intel-gfx] [PATCH v2 0/7] drm/ttm: Small fixes / cleanups in prep for shrinking Thomas Hellström ` (3 preceding siblings ...) 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 4/7] drm/ttm: Unexport ttm_global_swapout() Thomas Hellström @ 2023-03-07 14:46 ` Thomas Hellström 2023-03-08 8:50 ` Christian König 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 6/7] drm/ttm: Reduce the number of used allocation orders for TTM pages Thomas Hellström ` (3 subsequent siblings) 8 siblings, 1 reply; 22+ messages in thread From: Thomas Hellström @ 2023-03-07 14:46 UTC (permalink / raw) To: dri-devel Cc: Thomas Hellström, intel-gfx, Christian Koenig, Matthew Auld Avoid printing an error message if eviction was interrupted by, for example, the user pressing CTRL-C. That may happen if eviction is waiting for something, like for example a free batch-buffer. Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> --- drivers/gpu/drm/ttm/ttm_bo.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index 882c2fa346f3..459f1b4440da 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -464,7 +464,8 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, if (ret == -EMULTIHOP) { ret = ttm_bo_bounce_temp_buffer(bo, &evict_mem, ctx, &hop); if (ret) { - pr_err("Buffer eviction failed\n"); + if (ret != -ERESTARTSYS && ret != -EINTR) + pr_err("Buffer eviction failed\n"); ttm_resource_free(bo, &evict_mem); goto out; } -- 2.39.2 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v2 5/7] drm/ttm: Don't print error message if eviction was interrupted 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 5/7] drm/ttm: Don't print error message if eviction was interrupted Thomas Hellström @ 2023-03-08 8:50 ` Christian König 0 siblings, 0 replies; 22+ messages in thread From: Christian König @ 2023-03-08 8:50 UTC (permalink / raw) To: Thomas Hellström, dri-devel; +Cc: intel-gfx, Matthew Auld Am 07.03.23 um 15:46 schrieb Thomas Hellström: > Avoid printing an error message if eviction was interrupted by, > for example, the user pressing CTRL-C. That may happen if eviction > is waiting for something, like for example a free batch-buffer. > > Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Christian König <christian.koenig@amd.com> > --- > drivers/gpu/drm/ttm/ttm_bo.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c > index 882c2fa346f3..459f1b4440da 100644 > --- a/drivers/gpu/drm/ttm/ttm_bo.c > +++ b/drivers/gpu/drm/ttm/ttm_bo.c > @@ -464,7 +464,8 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, > if (ret == -EMULTIHOP) { > ret = ttm_bo_bounce_temp_buffer(bo, &evict_mem, ctx, &hop); > if (ret) { > - pr_err("Buffer eviction failed\n"); > + if (ret != -ERESTARTSYS && ret != -EINTR) > + pr_err("Buffer eviction failed\n"); > ttm_resource_free(bo, &evict_mem); > goto out; > } ^ permalink raw reply [flat|nested] 22+ messages in thread
* [Intel-gfx] [PATCH v2 6/7] drm/ttm: Reduce the number of used allocation orders for TTM pages 2023-03-07 14:46 [Intel-gfx] [PATCH v2 0/7] drm/ttm: Small fixes / cleanups in prep for shrinking Thomas Hellström ` (4 preceding siblings ...) 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 5/7] drm/ttm: Don't print error message if eviction was interrupted Thomas Hellström @ 2023-03-07 14:46 ` Thomas Hellström 2023-03-07 19:42 ` kernel test robot 2023-03-08 9:15 ` Christian König 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 7/7] drm/ttm: Make the call to ttm_tt_populate() interruptible when faulting Thomas Hellström ` (2 subsequent siblings) 8 siblings, 2 replies; 22+ messages in thread From: Thomas Hellström @ 2023-03-07 14:46 UTC (permalink / raw) To: dri-devel Cc: Thomas Hellström, intel-gfx, Christian Koenig, Matthew Auld When swapping out, we will split multi-order pages both in order to move them to the swap-cache and to be able to return memory to the swap cache as soon as possible on a page-by-page basis. Reduce the page max order to the system PMD size, as we can then be nicer to the system and avoid splitting gigantic pages. Looking forward to when we might be able to swap out PMD size folios without splitting, this will also be a benefit. v2: - Include all orders up to the PMD size (Christian König) Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> --- drivers/gpu/drm/ttm/ttm_pool.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_pool.c b/drivers/gpu/drm/ttm/ttm_pool.c index 0b6e20613d19..939845d853af 100644 --- a/drivers/gpu/drm/ttm/ttm_pool.c +++ b/drivers/gpu/drm/ttm/ttm_pool.c @@ -47,6 +47,9 @@ #include "ttm_module.h" +#define TTM_MAX_ORDER (PMD_SHIFT - PAGE_SHIFT) +#define TTM_DIM_ORDER (TTM_MAX_ORDER + 1) + /** * struct ttm_pool_dma - Helper object for coherent DMA mappings * @@ -65,11 +68,11 @@ module_param(page_pool_size, ulong, 0644); static atomic_long_t allocated_pages; -static struct ttm_pool_type global_write_combined[MAX_ORDER]; -static struct ttm_pool_type global_uncached[MAX_ORDER]; +static struct ttm_pool_type global_write_combined[TTM_DIM_ORDER]; +static struct ttm_pool_type global_uncached[TTM_DIM_ORDER]; -static struct ttm_pool_type global_dma32_write_combined[MAX_ORDER]; -static struct ttm_pool_type global_dma32_uncached[MAX_ORDER]; +static struct ttm_pool_type global_dma32_write_combined[TTM_DIM_ORDER]; +static struct ttm_pool_type global_dma32_uncached[TTM_DIM_ORDER]; static spinlock_t shrinker_lock; static struct list_head shrinker_list; @@ -431,7 +434,7 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, else gfp_flags |= GFP_HIGHUSER; - for (order = min_t(unsigned int, MAX_ORDER - 1, __fls(num_pages)); + for (order = min_t(unsigned int, TTM_MAX_ORDER, __fls(num_pages)); num_pages; order = min_t(unsigned int, order, __fls(num_pages))) { struct ttm_pool_type *pt; @@ -550,7 +553,7 @@ void ttm_pool_init(struct ttm_pool *pool, struct device *dev, if (use_dma_alloc) { for (i = 0; i < TTM_NUM_CACHING_TYPES; ++i) - for (j = 0; j < MAX_ORDER; ++j) + for (j = 0; j < TTM_DIM_ORDER; ++j) ttm_pool_type_init(&pool->caching[i].orders[j], pool, i, j); } @@ -570,7 +573,7 @@ void ttm_pool_fini(struct ttm_pool *pool) if (pool->use_dma_alloc) { for (i = 0; i < TTM_NUM_CACHING_TYPES; ++i) - for (j = 0; j < MAX_ORDER; ++j) + for (j = 0; j < TTM_DIM_ORDER; ++j) ttm_pool_type_fini(&pool->caching[i].orders[j]); } @@ -624,7 +627,7 @@ static void ttm_pool_debugfs_header(struct seq_file *m) unsigned int i; seq_puts(m, "\t "); - for (i = 0; i < MAX_ORDER; ++i) + for (i = 0; i < TTM_DIM_ORDER; ++i) seq_printf(m, " ---%2u---", i); seq_puts(m, "\n"); } @@ -635,7 +638,7 @@ static void ttm_pool_debugfs_orders(struct ttm_pool_type *pt, { unsigned int i; - for (i = 0; i < MAX_ORDER; ++i) + for (i = 0; i < TTM_DIM_ORDER; ++i) seq_printf(m, " %8u", ttm_pool_type_count(&pt[i])); seq_puts(m, "\n"); } @@ -738,13 +741,15 @@ int ttm_pool_mgr_init(unsigned long num_pages) { unsigned int i; + BUILD_BUG_ON(TTM_DIM_ORDER > MAX_ORDER); + if (!page_pool_size) page_pool_size = num_pages; spin_lock_init(&shrinker_lock); INIT_LIST_HEAD(&shrinker_list); - for (i = 0; i < MAX_ORDER; ++i) { + for (i = 0; i < TTM_DIM_ORDER; ++i) { ttm_pool_type_init(&global_write_combined[i], NULL, ttm_write_combined, i); ttm_pool_type_init(&global_uncached[i], NULL, ttm_uncached, i); @@ -777,7 +782,7 @@ void ttm_pool_mgr_fini(void) { unsigned int i; - for (i = 0; i < MAX_ORDER; ++i) { + for (i = 0; i < TTM_DIM_ORDER; ++i) { ttm_pool_type_fini(&global_write_combined[i]); ttm_pool_type_fini(&global_uncached[i]); -- 2.39.2 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v2 6/7] drm/ttm: Reduce the number of used allocation orders for TTM pages 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 6/7] drm/ttm: Reduce the number of used allocation orders for TTM pages Thomas Hellström @ 2023-03-07 19:42 ` kernel test robot 2023-03-08 9:15 ` Christian König 1 sibling, 0 replies; 22+ messages in thread From: kernel test robot @ 2023-03-07 19:42 UTC (permalink / raw) To: Thomas Hellström, dri-devel Cc: Thomas Hellström, intel-gfx, Matthew Auld, Christian Koenig, oe-kbuild-all Hi Thomas, Thank you for the patch! Yet something to improve: [auto build test ERROR on drm-misc/drm-misc-next] [also build test ERROR on drm-intel/for-linux-next] [cannot apply to drm-tip/drm-tip] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Thomas-Hellstr-m/drm-ttm-Fix-a-NULL-pointer-dereference/20230307-224931 base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next patch link: https://lore.kernel.org/r/20230307144621.10748-7-thomas.hellstrom%40linux.intel.com patch subject: [Intel-gfx] [PATCH v2 6/7] drm/ttm: Reduce the number of used allocation orders for TTM pages config: powerpc-randconfig-r006-20230306 (https://download.01.org/0day-ci/archive/20230308/202303080352.azyeWwwt-lkp@intel.com/config) compiler: powerpc-linux-gcc (GCC) 12.1.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/intel-lab-lkp/linux/commit/0eee47dba298051fc49965d56cb17dd113ff0236 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Thomas-Hellstr-m/drm-ttm-Fix-a-NULL-pointer-dereference/20230307-224931 git checkout 0eee47dba298051fc49965d56cb17dd113ff0236 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=powerpc olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash drivers/gpu/drm/ttm/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@intel.com> | Link: https://lore.kernel.org/oe-kbuild-all/202303080352.azyeWwwt-lkp@intel.com/ All error/warnings (new ones prefixed by >>): In function 'ttm_pool_type_init', inlined from 'ttm_pool_init' at drivers/gpu/drm/ttm/ttm_pool.c:557:5: >> drivers/gpu/drm/ttm/ttm_pool.c:264:18: warning: iteration 9 invokes undefined behavior [-Waggressive-loop-optimizations] 264 | pt->pool = pool; | ~~~~~~~~~^~~~~~ drivers/gpu/drm/ttm/ttm_pool.c: In function 'ttm_pool_init': drivers/gpu/drm/ttm/ttm_pool.c:556:39: note: within this loop 556 | for (j = 0; j < TTM_DIM_ORDER; ++j) | ^ In file included from <command-line>: drivers/gpu/drm/ttm/ttm_pool.c: In function 'ttm_pool_mgr_init': >> include/linux/compiler_types.h:358:45: error: call to '__compiletime_assert_283' declared with attribute error: BUILD_BUG_ON failed: TTM_DIM_ORDER > MAX_ORDER 358 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^ include/linux/compiler_types.h:339:25: note: in definition of macro '__compiletime_assert' 339 | prefix ## suffix(); \ | ^~~~~~ include/linux/compiler_types.h:358:9: note: in expansion of macro '_compiletime_assert' 358 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG' 50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition) | ^~~~~~~~~~~~~~~~ drivers/gpu/drm/ttm/ttm_pool.c:744:9: note: in expansion of macro 'BUILD_BUG_ON' 744 | BUILD_BUG_ON(TTM_DIM_ORDER > MAX_ORDER); | ^~~~~~~~~~~~ vim +/__compiletime_assert_283 +358 include/linux/compiler_types.h eb5c2d4b45e3d2 Will Deacon 2020-07-21 344 eb5c2d4b45e3d2 Will Deacon 2020-07-21 345 #define _compiletime_assert(condition, msg, prefix, suffix) \ eb5c2d4b45e3d2 Will Deacon 2020-07-21 346 __compiletime_assert(condition, msg, prefix, suffix) eb5c2d4b45e3d2 Will Deacon 2020-07-21 347 eb5c2d4b45e3d2 Will Deacon 2020-07-21 348 /** eb5c2d4b45e3d2 Will Deacon 2020-07-21 349 * compiletime_assert - break build and emit msg if condition is false eb5c2d4b45e3d2 Will Deacon 2020-07-21 350 * @condition: a compile-time constant condition to check eb5c2d4b45e3d2 Will Deacon 2020-07-21 351 * @msg: a message to emit if condition is false eb5c2d4b45e3d2 Will Deacon 2020-07-21 352 * eb5c2d4b45e3d2 Will Deacon 2020-07-21 353 * In tradition of POSIX assert, this macro will break the build if the eb5c2d4b45e3d2 Will Deacon 2020-07-21 354 * supplied condition is *false*, emitting the supplied error message if the eb5c2d4b45e3d2 Will Deacon 2020-07-21 355 * compiler has support to do so. eb5c2d4b45e3d2 Will Deacon 2020-07-21 356 */ eb5c2d4b45e3d2 Will Deacon 2020-07-21 357 #define compiletime_assert(condition, msg) \ eb5c2d4b45e3d2 Will Deacon 2020-07-21 @358 _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) eb5c2d4b45e3d2 Will Deacon 2020-07-21 359 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v2 6/7] drm/ttm: Reduce the number of used allocation orders for TTM pages 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 6/7] drm/ttm: Reduce the number of used allocation orders for TTM pages Thomas Hellström 2023-03-07 19:42 ` kernel test robot @ 2023-03-08 9:15 ` Christian König 2023-03-08 9:22 ` Thomas Hellström 1 sibling, 1 reply; 22+ messages in thread From: Christian König @ 2023-03-08 9:15 UTC (permalink / raw) To: Thomas Hellström, dri-devel; +Cc: intel-gfx, Matthew Auld Am 07.03.23 um 15:46 schrieb Thomas Hellström: > When swapping out, we will split multi-order pages both in order to > move them to the swap-cache and to be able to return memory to the > swap cache as soon as possible on a page-by-page basis. > Reduce the page max order to the system PMD size, as we can then be nicer > to the system and avoid splitting gigantic pages. Mhm, we actually have a todo to start supporting giant pages at some time. Using the folio directly just saves tons of overhead when you don't need to allocate 2MiG page array any more for each 1GiB you allocate. But that probably needs tons of work anyway, so feel free to add my rb for now. Regards, Christian. > > Looking forward to when we might be able to swap out PMD size folios > without splitting, this will also be a benefit. > > v2: > - Include all orders up to the PMD size (Christian König) > > Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> > --- > drivers/gpu/drm/ttm/ttm_pool.c | 27 ++++++++++++++++----------- > 1 file changed, 16 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/ttm/ttm_pool.c b/drivers/gpu/drm/ttm/ttm_pool.c > index 0b6e20613d19..939845d853af 100644 > --- a/drivers/gpu/drm/ttm/ttm_pool.c > +++ b/drivers/gpu/drm/ttm/ttm_pool.c > @@ -47,6 +47,9 @@ > > #include "ttm_module.h" > > +#define TTM_MAX_ORDER (PMD_SHIFT - PAGE_SHIFT) > +#define TTM_DIM_ORDER (TTM_MAX_ORDER + 1) > + > /** > * struct ttm_pool_dma - Helper object for coherent DMA mappings > * > @@ -65,11 +68,11 @@ module_param(page_pool_size, ulong, 0644); > > static atomic_long_t allocated_pages; > > -static struct ttm_pool_type global_write_combined[MAX_ORDER]; > -static struct ttm_pool_type global_uncached[MAX_ORDER]; > +static struct ttm_pool_type global_write_combined[TTM_DIM_ORDER]; > +static struct ttm_pool_type global_uncached[TTM_DIM_ORDER]; > > -static struct ttm_pool_type global_dma32_write_combined[MAX_ORDER]; > -static struct ttm_pool_type global_dma32_uncached[MAX_ORDER]; > +static struct ttm_pool_type global_dma32_write_combined[TTM_DIM_ORDER]; > +static struct ttm_pool_type global_dma32_uncached[TTM_DIM_ORDER]; > > static spinlock_t shrinker_lock; > static struct list_head shrinker_list; > @@ -431,7 +434,7 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, > else > gfp_flags |= GFP_HIGHUSER; > > - for (order = min_t(unsigned int, MAX_ORDER - 1, __fls(num_pages)); > + for (order = min_t(unsigned int, TTM_MAX_ORDER, __fls(num_pages)); > num_pages; > order = min_t(unsigned int, order, __fls(num_pages))) { > struct ttm_pool_type *pt; > @@ -550,7 +553,7 @@ void ttm_pool_init(struct ttm_pool *pool, struct device *dev, > > if (use_dma_alloc) { > for (i = 0; i < TTM_NUM_CACHING_TYPES; ++i) > - for (j = 0; j < MAX_ORDER; ++j) > + for (j = 0; j < TTM_DIM_ORDER; ++j) > ttm_pool_type_init(&pool->caching[i].orders[j], > pool, i, j); > } > @@ -570,7 +573,7 @@ void ttm_pool_fini(struct ttm_pool *pool) > > if (pool->use_dma_alloc) { > for (i = 0; i < TTM_NUM_CACHING_TYPES; ++i) > - for (j = 0; j < MAX_ORDER; ++j) > + for (j = 0; j < TTM_DIM_ORDER; ++j) > ttm_pool_type_fini(&pool->caching[i].orders[j]); > } > > @@ -624,7 +627,7 @@ static void ttm_pool_debugfs_header(struct seq_file *m) > unsigned int i; > > seq_puts(m, "\t "); > - for (i = 0; i < MAX_ORDER; ++i) > + for (i = 0; i < TTM_DIM_ORDER; ++i) > seq_printf(m, " ---%2u---", i); > seq_puts(m, "\n"); > } > @@ -635,7 +638,7 @@ static void ttm_pool_debugfs_orders(struct ttm_pool_type *pt, > { > unsigned int i; > > - for (i = 0; i < MAX_ORDER; ++i) > + for (i = 0; i < TTM_DIM_ORDER; ++i) > seq_printf(m, " %8u", ttm_pool_type_count(&pt[i])); > seq_puts(m, "\n"); > } > @@ -738,13 +741,15 @@ int ttm_pool_mgr_init(unsigned long num_pages) > { > unsigned int i; > > + BUILD_BUG_ON(TTM_DIM_ORDER > MAX_ORDER); > + > if (!page_pool_size) > page_pool_size = num_pages; > > spin_lock_init(&shrinker_lock); > INIT_LIST_HEAD(&shrinker_list); > > - for (i = 0; i < MAX_ORDER; ++i) { > + for (i = 0; i < TTM_DIM_ORDER; ++i) { > ttm_pool_type_init(&global_write_combined[i], NULL, > ttm_write_combined, i); > ttm_pool_type_init(&global_uncached[i], NULL, ttm_uncached, i); > @@ -777,7 +782,7 @@ void ttm_pool_mgr_fini(void) > { > unsigned int i; > > - for (i = 0; i < MAX_ORDER; ++i) { > + for (i = 0; i < TTM_DIM_ORDER; ++i) { > ttm_pool_type_fini(&global_write_combined[i]); > ttm_pool_type_fini(&global_uncached[i]); > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v2 6/7] drm/ttm: Reduce the number of used allocation orders for TTM pages 2023-03-08 9:15 ` Christian König @ 2023-03-08 9:22 ` Thomas Hellström 0 siblings, 0 replies; 22+ messages in thread From: Thomas Hellström @ 2023-03-08 9:22 UTC (permalink / raw) To: Christian König, dri-devel; +Cc: intel-gfx, Matthew Auld On 3/8/23 10:15, Christian König wrote: > Am 07.03.23 um 15:46 schrieb Thomas Hellström: >> When swapping out, we will split multi-order pages both in order to >> move them to the swap-cache and to be able to return memory to the >> swap cache as soon as possible on a page-by-page basis. >> Reduce the page max order to the system PMD size, as we can then be >> nicer >> to the system and avoid splitting gigantic pages. > > Mhm, we actually have a todo to start supporting giant pages at some > time. > > Using the folio directly just saves tons of overhead when you don't > need to allocate 2MiG page array any more for each 1GiB you allocate. > > But that probably needs tons of work anyway, so feel free to add my rb > for now. Thanks, I need to fix this anyway for powerpc where it seems PMD_ORDER > MAX_ORDER :/ It might be we'd want to replace the ttm page arrays with scatter-gather tables at some point? I think at least vmwgfx, i915 and xe would benefit from that... /Thomas > > Regards, > Christian. > >> >> Looking forward to when we might be able to swap out PMD size folios >> without splitting, this will also be a benefit. >> >> v2: >> - Include all orders up to the PMD size (Christian König) >> >> Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> >> --- >> drivers/gpu/drm/ttm/ttm_pool.c | 27 ++++++++++++++++----------- >> 1 file changed, 16 insertions(+), 11 deletions(-) >> >> diff --git a/drivers/gpu/drm/ttm/ttm_pool.c >> b/drivers/gpu/drm/ttm/ttm_pool.c >> index 0b6e20613d19..939845d853af 100644 >> --- a/drivers/gpu/drm/ttm/ttm_pool.c >> +++ b/drivers/gpu/drm/ttm/ttm_pool.c >> @@ -47,6 +47,9 @@ >> #include "ttm_module.h" >> +#define TTM_MAX_ORDER (PMD_SHIFT - PAGE_SHIFT) >> +#define TTM_DIM_ORDER (TTM_MAX_ORDER + 1) >> + >> /** >> * struct ttm_pool_dma - Helper object for coherent DMA mappings >> * >> @@ -65,11 +68,11 @@ module_param(page_pool_size, ulong, 0644); >> static atomic_long_t allocated_pages; >> -static struct ttm_pool_type global_write_combined[MAX_ORDER]; >> -static struct ttm_pool_type global_uncached[MAX_ORDER]; >> +static struct ttm_pool_type global_write_combined[TTM_DIM_ORDER]; >> +static struct ttm_pool_type global_uncached[TTM_DIM_ORDER]; >> -static struct ttm_pool_type global_dma32_write_combined[MAX_ORDER]; >> -static struct ttm_pool_type global_dma32_uncached[MAX_ORDER]; >> +static struct ttm_pool_type global_dma32_write_combined[TTM_DIM_ORDER]; >> +static struct ttm_pool_type global_dma32_uncached[TTM_DIM_ORDER]; >> static spinlock_t shrinker_lock; >> static struct list_head shrinker_list; >> @@ -431,7 +434,7 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct >> ttm_tt *tt, >> else >> gfp_flags |= GFP_HIGHUSER; >> - for (order = min_t(unsigned int, MAX_ORDER - 1, >> __fls(num_pages)); >> + for (order = min_t(unsigned int, TTM_MAX_ORDER, __fls(num_pages)); >> num_pages; >> order = min_t(unsigned int, order, __fls(num_pages))) { >> struct ttm_pool_type *pt; >> @@ -550,7 +553,7 @@ void ttm_pool_init(struct ttm_pool *pool, struct >> device *dev, >> if (use_dma_alloc) { >> for (i = 0; i < TTM_NUM_CACHING_TYPES; ++i) >> - for (j = 0; j < MAX_ORDER; ++j) >> + for (j = 0; j < TTM_DIM_ORDER; ++j) >> ttm_pool_type_init(&pool->caching[i].orders[j], >> pool, i, j); >> } >> @@ -570,7 +573,7 @@ void ttm_pool_fini(struct ttm_pool *pool) >> if (pool->use_dma_alloc) { >> for (i = 0; i < TTM_NUM_CACHING_TYPES; ++i) >> - for (j = 0; j < MAX_ORDER; ++j) >> + for (j = 0; j < TTM_DIM_ORDER; ++j) >> ttm_pool_type_fini(&pool->caching[i].orders[j]); >> } >> @@ -624,7 +627,7 @@ static void ttm_pool_debugfs_header(struct >> seq_file *m) >> unsigned int i; >> seq_puts(m, "\t "); >> - for (i = 0; i < MAX_ORDER; ++i) >> + for (i = 0; i < TTM_DIM_ORDER; ++i) >> seq_printf(m, " ---%2u---", i); >> seq_puts(m, "\n"); >> } >> @@ -635,7 +638,7 @@ static void ttm_pool_debugfs_orders(struct >> ttm_pool_type *pt, >> { >> unsigned int i; >> - for (i = 0; i < MAX_ORDER; ++i) >> + for (i = 0; i < TTM_DIM_ORDER; ++i) >> seq_printf(m, " %8u", ttm_pool_type_count(&pt[i])); >> seq_puts(m, "\n"); >> } >> @@ -738,13 +741,15 @@ int ttm_pool_mgr_init(unsigned long num_pages) >> { >> unsigned int i; >> + BUILD_BUG_ON(TTM_DIM_ORDER > MAX_ORDER); >> + >> if (!page_pool_size) >> page_pool_size = num_pages; >> spin_lock_init(&shrinker_lock); >> INIT_LIST_HEAD(&shrinker_list); >> - for (i = 0; i < MAX_ORDER; ++i) { >> + for (i = 0; i < TTM_DIM_ORDER; ++i) { >> ttm_pool_type_init(&global_write_combined[i], NULL, >> ttm_write_combined, i); >> ttm_pool_type_init(&global_uncached[i], NULL, ttm_uncached, >> i); >> @@ -777,7 +782,7 @@ void ttm_pool_mgr_fini(void) >> { >> unsigned int i; >> - for (i = 0; i < MAX_ORDER; ++i) { >> + for (i = 0; i < TTM_DIM_ORDER; ++i) { >> ttm_pool_type_fini(&global_write_combined[i]); >> ttm_pool_type_fini(&global_uncached[i]); > ^ permalink raw reply [flat|nested] 22+ messages in thread
* [Intel-gfx] [PATCH v2 7/7] drm/ttm: Make the call to ttm_tt_populate() interruptible when faulting 2023-03-07 14:46 [Intel-gfx] [PATCH v2 0/7] drm/ttm: Small fixes / cleanups in prep for shrinking Thomas Hellström ` (5 preceding siblings ...) 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 6/7] drm/ttm: Reduce the number of used allocation orders for TTM pages Thomas Hellström @ 2023-03-07 14:46 ` Thomas Hellström 2023-03-07 21:16 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/ttm: Small fixes / cleanups in prep for shrinking Patchwork 2023-03-09 12:09 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork 8 siblings, 0 replies; 22+ messages in thread From: Thomas Hellström @ 2023-03-07 14:46 UTC (permalink / raw) To: dri-devel Cc: Thomas Hellström, intel-gfx, Christian Koenig, Matthew Auld When swapping in, or under memory pressure ttm_tt_populate() may sleep for a substantiable amount of time. Allow interrupts during the sleep. This will also allow us to inject -EINTR errors during swapin in upcoming patches. Also avoid returning VM_FAULT_OOM, since that will confuse the core mm, making it print out a confused message and retrying the fault. Return VM_FAULT_SIGBUS also under OOM conditions. Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> --- drivers/gpu/drm/ttm/ttm_bo_vm.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo_vm.c index ca7744b852f5..4bca6b54520a 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_vm.c +++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c @@ -218,14 +218,21 @@ vm_fault_t ttm_bo_vm_fault_reserved(struct vm_fault *vmf, prot = ttm_io_prot(bo, bo->resource, prot); if (!bo->resource->bus.is_iomem) { struct ttm_operation_ctx ctx = { - .interruptible = false, + .interruptible = true, .no_wait_gpu = false, .force_alloc = true }; ttm = bo->ttm; - if (ttm_tt_populate(bdev, bo->ttm, &ctx)) - return VM_FAULT_OOM; + err = ttm_tt_populate(bdev, bo->ttm, &ctx); + if (err) { + if (err == -EINTR || err == -ERESTARTSYS || + err == -EAGAIN) + return VM_FAULT_NOPAGE; + + pr_debug("TTM fault hit %pe.\n", ERR_PTR(err)); + return VM_FAULT_SIGBUS; + } } else { /* Iomem should not be marked encrypted */ prot = pgprot_decrypted(prot); -- 2.39.2 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/ttm: Small fixes / cleanups in prep for shrinking 2023-03-07 14:46 [Intel-gfx] [PATCH v2 0/7] drm/ttm: Small fixes / cleanups in prep for shrinking Thomas Hellström ` (6 preceding siblings ...) 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 7/7] drm/ttm: Make the call to ttm_tt_populate() interruptible when faulting Thomas Hellström @ 2023-03-07 21:16 ` Patchwork 2023-03-09 12:09 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork 8 siblings, 0 replies; 22+ messages in thread From: Patchwork @ 2023-03-07 21:16 UTC (permalink / raw) To: Thomas Hellström; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 9311 bytes --] == Series Details == Series: drm/ttm: Small fixes / cleanups in prep for shrinking URL : https://patchwork.freedesktop.org/series/114774/ State : success == Summary == CI Bug Log - changes from CI_DRM_12824 -> Patchwork_114774v1 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/index.html Participating hosts (34 -> 34) ------------------------------ Additional (1): bat-atsm-1 Missing (1): fi-snb-2520m Known issues ------------ Here are the changes found in Patchwork_114774v1 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@fbdev@eof: - bat-atsm-1: NOTRUN -> [SKIP][1] ([i915#2582]) +4 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@fbdev@eof.html * igt@gem_mmap@basic: - bat-atsm-1: NOTRUN -> [SKIP][2] ([i915#4083]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@gem_mmap@basic.html * igt@gem_tiled_fence_blits@basic: - bat-atsm-1: NOTRUN -> [SKIP][3] ([i915#4077]) +2 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@gem_tiled_fence_blits@basic.html * igt@gem_tiled_pread_basic: - bat-atsm-1: NOTRUN -> [SKIP][4] ([i915#4079]) +1 similar issue [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@gem_tiled_pread_basic.html * igt@i915_pm_rpm@module-reload: - bat-adlm-1: [PASS][5] -> [FAIL][6] ([i915#7948]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/bat-adlm-1/igt@i915_pm_rpm@module-reload.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-adlm-1/igt@i915_pm_rpm@module-reload.html * igt@i915_pm_rps@basic-api: - bat-atsm-1: NOTRUN -> [SKIP][7] ([i915#6621]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@i915_pm_rps@basic-api.html * igt@i915_selftest@live@hangcheck: - bat-rpls-1: [PASS][8] -> [ABORT][9] ([i915#7677]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/bat-rpls-1/igt@i915_selftest@live@hangcheck.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-rpls-1/igt@i915_selftest@live@hangcheck.html * igt@i915_selftest@live@slpc: - bat-rpls-2: NOTRUN -> [DMESG-FAIL][10] ([i915#6997] / [i915#7913]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-rpls-2/igt@i915_selftest@live@slpc.html * igt@i915_suspend@basic-s2idle-without-i915: - bat-adlm-1: [PASS][11] -> [DMESG-WARN][12] ([i915#2867]) +10 similar issues [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/bat-adlm-1/igt@i915_suspend@basic-s2idle-without-i915.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-adlm-1/igt@i915_suspend@basic-s2idle-without-i915.html * igt@i915_suspend@basic-s3-without-i915: - bat-atsm-1: NOTRUN -> [SKIP][13] ([i915#6645]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@i915_suspend@basic-s3-without-i915.html * igt@kms_addfb_basic@size-max: - bat-atsm-1: NOTRUN -> [SKIP][14] ([i915#6077]) +36 similar issues [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@kms_addfb_basic@size-max.html * igt@kms_chamelium_hpd@common-hpd-after-suspend: - bat-rpls-2: NOTRUN -> [SKIP][15] ([i915#7828]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-rpls-2/igt@kms_chamelium_hpd@common-hpd-after-suspend.html * igt@kms_cursor_legacy@basic-flip-after-cursor-atomic: - bat-atsm-1: NOTRUN -> [SKIP][16] ([i915#6078]) +19 similar issues [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html * igt@kms_flip@basic-plain-flip: - bat-atsm-1: NOTRUN -> [SKIP][17] ([i915#6166]) +3 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@kms_flip@basic-plain-flip.html * igt@kms_force_connector_basic@prune-stale-modes: - bat-atsm-1: NOTRUN -> [SKIP][18] ([i915#6093]) +3 similar issues [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@kms_force_connector_basic@prune-stale-modes.html * igt@kms_pipe_crc_basic@hang-read-crc: - bat-atsm-1: NOTRUN -> [SKIP][19] ([i915#1836]) +6 similar issues [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@kms_pipe_crc_basic@hang-read-crc.html * igt@kms_pipe_crc_basic@suspend-read-crc: - bat-rpls-2: NOTRUN -> [SKIP][20] ([i915#1845]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-rpls-2/igt@kms_pipe_crc_basic@suspend-read-crc.html * igt@kms_prop_blob@basic: - bat-atsm-1: NOTRUN -> [SKIP][21] ([i915#7357]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@kms_prop_blob@basic.html * igt@kms_psr@sprite_plane_onoff: - bat-atsm-1: NOTRUN -> [SKIP][22] ([i915#1072]) +3 similar issues [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@kms_psr@sprite_plane_onoff.html * igt@kms_setmode@basic-clone-single-crtc: - bat-atsm-1: NOTRUN -> [SKIP][23] ([i915#6094]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@kms_setmode@basic-clone-single-crtc.html * igt@prime_vgem@basic-fence-flip: - bat-atsm-1: NOTRUN -> [SKIP][24] ([fdo#109295] / [i915#6078]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@prime_vgem@basic-fence-flip.html * igt@prime_vgem@basic-fence-mmap: - bat-atsm-1: NOTRUN -> [SKIP][25] ([fdo#109295] / [i915#4077]) +1 similar issue [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@prime_vgem@basic-fence-mmap.html * igt@prime_vgem@basic-write: - bat-atsm-1: NOTRUN -> [SKIP][26] ([fdo#109295]) +3 similar issues [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-atsm-1/igt@prime_vgem@basic-write.html #### Possible fixes #### * igt@i915_selftest@live@reset: - bat-rpls-2: [ABORT][27] ([i915#4983] / [i915#7913] / [i915#7981]) -> [PASS][28] [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/bat-rpls-2/igt@i915_selftest@live@reset.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/bat-rpls-2/igt@i915_selftest@live@reset.html [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836 [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#6077]: https://gitlab.freedesktop.org/drm/intel/issues/6077 [i915#6078]: https://gitlab.freedesktop.org/drm/intel/issues/6078 [i915#6093]: https://gitlab.freedesktop.org/drm/intel/issues/6093 [i915#6094]: https://gitlab.freedesktop.org/drm/intel/issues/6094 [i915#6166]: https://gitlab.freedesktop.org/drm/intel/issues/6166 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645 [i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997 [i915#7357]: https://gitlab.freedesktop.org/drm/intel/issues/7357 [i915#7677]: https://gitlab.freedesktop.org/drm/intel/issues/7677 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913 [i915#7948]: https://gitlab.freedesktop.org/drm/intel/issues/7948 [i915#7981]: https://gitlab.freedesktop.org/drm/intel/issues/7981 Build changes ------------- * Linux: CI_DRM_12824 -> Patchwork_114774v1 CI-20190529: 20190529 CI_DRM_12824: b976ff15c2b2d7bed87df9111ba336db6052000c @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7183: 3434cef8be4e487644a740039ad15123cd094526 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_114774v1: b976ff15c2b2d7bed87df9111ba336db6052000c @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits 91226c58c991 drm/ttm: Make the call to ttm_tt_populate() interruptible when faulting 69a632e09457 drm/ttm: Reduce the number of used allocation orders for TTM pages 033fc1c97171 drm/ttm: Don't print error message if eviction was interrupted 6f7fdbad6807 drm/ttm: Unexport ttm_global_swapout() d71f4e161efc drm/ttm: Use the BIT macro for the TTM_TT_FLAGs fc88a068593e drm/ttm/pool: Fix ttm_pool_alloc error path == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/index.html [-- Attachment #2: Type: text/html, Size: 10879 bytes --] ^ permalink raw reply [flat|nested] 22+ messages in thread
* [Intel-gfx] ✓ Fi.CI.IGT: success for drm/ttm: Small fixes / cleanups in prep for shrinking 2023-03-07 14:46 [Intel-gfx] [PATCH v2 0/7] drm/ttm: Small fixes / cleanups in prep for shrinking Thomas Hellström ` (7 preceding siblings ...) 2023-03-07 21:16 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/ttm: Small fixes / cleanups in prep for shrinking Patchwork @ 2023-03-09 12:09 ` Patchwork 8 siblings, 0 replies; 22+ messages in thread From: Patchwork @ 2023-03-09 12:09 UTC (permalink / raw) To: Thomas Hellström; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 38922 bytes --] == Series Details == Series: drm/ttm: Small fixes / cleanups in prep for shrinking URL : https://patchwork.freedesktop.org/series/114774/ State : success == Summary == CI Bug Log - changes from CI_DRM_12824_full -> Patchwork_114774v1_full ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (9 -> 10) ------------------------------ Additional (1): shard-rkl0 Known issues ------------ Here are the changes found in Patchwork_114774v1_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@api_intel_bb@crc32: - shard-tglu-10: NOTRUN -> [SKIP][1] ([i915#6230]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@api_intel_bb@crc32.html * igt@gem_basic@multigpu-create-close: - shard-tglu-10: NOTRUN -> [SKIP][2] ([i915#7697]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@gem_basic@multigpu-create-close.html * igt@gem_ccs@block-copy-compressed: - shard-tglu-10: NOTRUN -> [SKIP][3] ([i915#3555] / [i915#5325]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@gem_ccs@block-copy-compressed.html * igt@gem_create@create-ext-cpu-access-sanity-check: - shard-tglu-10: NOTRUN -> [SKIP][4] ([i915#6335]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@gem_create@create-ext-cpu-access-sanity-check.html * igt@gem_exec_fair@basic-none-rrul@rcs0: - shard-glk: [PASS][5] -> [FAIL][6] ([i915#2842]) +2 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-glk5/igt@gem_exec_fair@basic-none-rrul@rcs0.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-glk6/igt@gem_exec_fair@basic-none-rrul@rcs0.html * igt@gem_exec_fair@basic-none-solo@rcs0: - shard-apl: [PASS][7] -> [FAIL][8] ([i915#2842]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-apl7/igt@gem_exec_fair@basic-none-solo@rcs0.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-apl7/igt@gem_exec_fair@basic-none-solo@rcs0.html * igt@gem_exec_fair@basic-none-vip@rcs0: - shard-tglu-10: NOTRUN -> [FAIL][9] ([i915#2842]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@gem_exec_fair@basic-none-vip@rcs0.html * igt@gem_exec_suspend@basic-s4-devices@smem: - shard-tglu-10: NOTRUN -> [ABORT][10] ([i915#7975]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@gem_exec_suspend@basic-s4-devices@smem.html * igt@gem_lmem_swapping@heavy-verify-multi-ccs: - shard-apl: NOTRUN -> [SKIP][11] ([fdo#109271] / [i915#4613]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-apl1/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html * igt@gem_lmem_swapping@massive-random: - shard-tglu-10: NOTRUN -> [SKIP][12] ([i915#4613]) +3 similar issues [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@gem_lmem_swapping@massive-random.html * igt@gem_pxp@create-regular-buffer: - shard-tglu-10: NOTRUN -> [SKIP][13] ([i915#4270]) +3 similar issues [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@gem_pxp@create-regular-buffer.html * igt@gen7_exec_parse@basic-offset: - shard-tglu-10: NOTRUN -> [SKIP][14] ([fdo#109289]) +5 similar issues [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@gen7_exec_parse@basic-offset.html * igt@gen9_exec_parse@batch-zero-length: - shard-tglu-10: NOTRUN -> [SKIP][15] ([i915#2527] / [i915#2856]) +2 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@gen9_exec_parse@batch-zero-length.html * igt@i915_hwmon@hwmon-read: - shard-tglu-10: NOTRUN -> [SKIP][16] ([i915#7707]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@i915_hwmon@hwmon-read.html * igt@i915_pm_backlight@bad-brightness: - shard-tglu-10: NOTRUN -> [SKIP][17] ([i915#7561]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@i915_pm_backlight@bad-brightness.html * igt@i915_pm_rpm@i2c: - shard-tglu-10: NOTRUN -> [FAIL][18] ([i915#8275]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@i915_pm_rpm@i2c.html * igt@i915_pm_rpm@modeset-pc8-residency-stress: - shard-tglu-10: NOTRUN -> [SKIP][19] ([fdo#109506]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@i915_pm_rpm@modeset-pc8-residency-stress.html * igt@i915_suspend@basic-s3-without-i915: - shard-tglu-10: NOTRUN -> [INCOMPLETE][20] ([i915#7443]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@i915_suspend@basic-s3-without-i915.html * igt@kms_addfb_basic@invalid-smem-bo-on-discrete: - shard-tglu-10: NOTRUN -> [SKIP][21] ([i915#3826]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html * igt@kms_atomic@plane-primary-overlay-mutable-zpos: - shard-tglu-10: NOTRUN -> [SKIP][22] ([i915#404]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip: - shard-tglu-10: NOTRUN -> [SKIP][23] ([i915#5286]) +6 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html * igt@kms_big_fb@x-tiled-16bpp-rotate-270: - shard-tglu-10: NOTRUN -> [SKIP][24] ([fdo#111614]) +3 similar issues [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html * igt@kms_big_fb@yf-tiled-8bpp-rotate-0: - shard-tglu-10: NOTRUN -> [SKIP][25] ([fdo#111615]) +3 similar issues [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_big_fb@yf-tiled-8bpp-rotate-0.html * igt@kms_ccs@pipe-a-crc-primary-basic-4_tiled_dg2_rc_ccs: - shard-tglu-10: NOTRUN -> [SKIP][26] ([i915#3689] / [i915#6095]) +3 similar issues [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_ccs@pipe-a-crc-primary-basic-4_tiled_dg2_rc_ccs.html * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs: - shard-tglu-10: NOTRUN -> [SKIP][27] ([i915#3689] / [i915#3886]) +3 similar issues [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs: - shard-apl: NOTRUN -> [SKIP][28] ([fdo#109271] / [i915#3886]) +2 similar issues [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-apl1/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-c-bad-aux-stride-yf_tiled_ccs: - shard-tglu-10: NOTRUN -> [SKIP][29] ([fdo#111615] / [i915#3689]) +7 similar issues [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_ccs@pipe-c-bad-aux-stride-yf_tiled_ccs.html * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_ccs: - shard-tglu-10: NOTRUN -> [SKIP][30] ([i915#3689]) +11 similar issues [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_ccs.html * igt@kms_ccs@pipe-c-random-ccs-data-4_tiled_dg2_mc_ccs: - shard-tglu-10: NOTRUN -> [SKIP][31] ([i915#6095]) +6 similar issues [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_ccs@pipe-c-random-ccs-data-4_tiled_dg2_mc_ccs.html * igt@kms_chamelium_hpd@vga-hpd-without-ddc: - shard-tglu-10: NOTRUN -> [SKIP][32] ([i915#7828]) +11 similar issues [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_chamelium_hpd@vga-hpd-without-ddc.html * igt@kms_color@ctm-0-75@pipe-c-hdmi-a-1: - shard-tglu-10: NOTRUN -> [FAIL][33] ([i915#315] / [i915#6946]) +3 similar issues [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_color@ctm-0-75@pipe-c-hdmi-a-1.html * igt@kms_content_protection@atomic-dpms: - shard-tglu-10: NOTRUN -> [SKIP][34] ([i915#6944] / [i915#7116] / [i915#7118]) [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_content_protection@atomic-dpms.html * igt@kms_content_protection@srm@pipe-a-dp-1: - shard-apl: NOTRUN -> [TIMEOUT][35] ([i915#7173]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-apl1/igt@kms_content_protection@srm@pipe-a-dp-1.html * igt@kms_cursor_crc@cursor-rapid-movement-512x512: - shard-tglu-10: NOTRUN -> [SKIP][36] ([i915#3359]) [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html * igt@kms_cursor_crc@cursor-suspend@pipe-c-dp-1: - shard-apl: [PASS][37] -> [ABORT][38] ([i915#180]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-apl4/igt@kms_cursor_crc@cursor-suspend@pipe-c-dp-1.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-apl6/igt@kms_cursor_crc@cursor-suspend@pipe-c-dp-1.html * igt@kms_cursor_legacy@cursorb-vs-flipa-toggle: - shard-tglu-10: NOTRUN -> [SKIP][39] ([fdo#109274]) +8 similar issues [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_cursor_legacy@cursorb-vs-flipa-toggle.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-apl: [PASS][40] -> [FAIL][41] ([i915#2346]) [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-apl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1: - shard-glk: NOTRUN -> [SKIP][42] ([fdo#109271]) [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-glk6/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-tglu-10: NOTRUN -> [FAIL][43] ([i915#4767]) [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_flip@2x-flip-vs-rmfb: - shard-tglu-10: NOTRUN -> [SKIP][44] ([fdo#109274] / [i915#3637]) +8 similar issues [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_flip@2x-flip-vs-rmfb.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode: - shard-tglu-10: NOTRUN -> [SKIP][45] ([i915#2587] / [i915#2672]) +4 similar issues [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode.html * igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw: - shard-glk: [PASS][46] -> [DMESG-FAIL][47] ([i915#118]) [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-glk4/igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw.html [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-glk1/igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc: - shard-tglu-10: NOTRUN -> [SKIP][48] ([fdo#109280]) +41 similar issues [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite: - shard-tglu-10: NOTRUN -> [SKIP][49] ([fdo#110189]) +38 similar issues [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html * igt@kms_plane_lowres@tiling-yf: - shard-tglu-10: NOTRUN -> [SKIP][50] ([fdo#112054] / [i915#5288]) [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_plane_lowres@tiling-yf.html * igt@kms_plane_scaling@plane-upscale-with-rotation-20x20@pipe-c-hdmi-a-1: - shard-tglu-10: NOTRUN -> [SKIP][51] ([i915#5176]) +11 similar issues [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_plane_scaling@plane-upscale-with-rotation-20x20@pipe-c-hdmi-a-1.html * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-b-dp-1: - shard-apl: NOTRUN -> [SKIP][52] ([fdo#109271]) +22 similar issues [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-apl1/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-b-dp-1.html * igt@kms_prime@d3hot: - shard-tglu-10: NOTRUN -> [SKIP][53] ([i915#6524]) [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_prime@d3hot.html * igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf: - shard-tglu-10: NOTRUN -> [SKIP][54] ([i915#658]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf.html * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area: - shard-tglu-10: NOTRUN -> [SKIP][55] ([fdo#111068] / [i915#658]) +1 similar issue [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html * igt@kms_vrr@negative-basic: - shard-tglu-10: NOTRUN -> [SKIP][56] ([i915#3555]) +5 similar issues [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@kms_vrr@negative-basic.html * igt@kms_writeback@writeback-fb-id: - shard-apl: NOTRUN -> [SKIP][57] ([fdo#109271] / [i915#2437]) [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-apl1/igt@kms_writeback@writeback-fb-id.html * igt@prime_vgem@fence-flip-hang: - shard-tglu-10: NOTRUN -> [SKIP][58] ([fdo#109295]) [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@prime_vgem@fence-flip-hang.html * igt@tools_test@sysfs_l3_parity: - shard-tglu-10: NOTRUN -> [SKIP][59] ([fdo#109307]) [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@tools_test@sysfs_l3_parity.html * igt@v3d/v3d_perfmon@get-values-invalid-perfmon: - shard-tglu-10: NOTRUN -> [SKIP][60] ([fdo#109315] / [i915#2575]) +4 similar issues [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@v3d/v3d_perfmon@get-values-invalid-perfmon.html * igt@vc4/vc4_purgeable_bo@mark-purgeable-twice: - shard-tglu-10: NOTRUN -> [SKIP][61] ([i915#2575]) +8 similar issues [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-10/igt@vc4/vc4_purgeable_bo@mark-purgeable-twice.html #### Possible fixes #### * igt@drm_fdinfo@most-busy-idle-check-all@rcs0: - {shard-rkl}: [FAIL][62] ([i915#7742]) -> [PASS][63] [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-2/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-3/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html * igt@fbdev@pan: - {shard-rkl}: [SKIP][64] ([i915#2582]) -> [PASS][65] [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-1/igt@fbdev@pan.html [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-6/igt@fbdev@pan.html * igt@fbdev@write: - {shard-tglu}: [SKIP][66] ([i915#2582]) -> [PASS][67] +2 similar issues [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-tglu-6/igt@fbdev@write.html [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-1/igt@fbdev@write.html * igt@gem_eio@hibernate: - {shard-dg1}: [ABORT][68] ([i915#7975]) -> [PASS][69] [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-dg1-14/igt@gem_eio@hibernate.html [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-dg1-18/igt@gem_eio@hibernate.html * igt@gem_exec_endless@dispatch@bcs0: - {shard-rkl}: [SKIP][70] ([i915#6247]) -> [PASS][71] [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-5/igt@gem_exec_endless@dispatch@bcs0.html [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-2/igt@gem_exec_endless@dispatch@bcs0.html * igt@gem_exec_fair@basic-deadline: - {shard-rkl}: [FAIL][72] ([i915#2846]) -> [PASS][73] [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-3/igt@gem_exec_fair@basic-deadline.html [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-2/igt@gem_exec_fair@basic-deadline.html * igt@gem_exec_fair@basic-none-rrul@rcs0: - {shard-rkl}: [FAIL][74] ([i915#2842]) -> [PASS][75] +1 similar issue [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-1/igt@gem_exec_fair@basic-none-rrul@rcs0.html [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-5/igt@gem_exec_fair@basic-none-rrul@rcs0.html * igt@gem_exec_fair@basic-none-vip@rcs0: - shard-glk: [FAIL][76] ([i915#2842]) -> [PASS][77] [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-glk2/igt@gem_exec_fair@basic-none-vip@rcs0.html [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-glk8/igt@gem_exec_fair@basic-none-vip@rcs0.html * igt@gem_exec_reloc@basic-wc-read-noreloc: - {shard-rkl}: [SKIP][78] ([i915#3281]) -> [PASS][79] +6 similar issues [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-4/igt@gem_exec_reloc@basic-wc-read-noreloc.html [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-5/igt@gem_exec_reloc@basic-wc-read-noreloc.html * igt@gem_exec_schedule@semaphore-power: - {shard-rkl}: [SKIP][80] ([i915#7276]) -> [PASS][81] [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-1/igt@gem_exec_schedule@semaphore-power.html [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-5/igt@gem_exec_schedule@semaphore-power.html * igt@gem_mmap_gtt@coherency: - {shard-rkl}: [SKIP][82] ([fdo#111656]) -> [PASS][83] [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-1/igt@gem_mmap_gtt@coherency.html [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-5/igt@gem_mmap_gtt@coherency.html * igt@gem_partial_pwrite_pread@writes-after-reads: - {shard-rkl}: [SKIP][84] ([i915#3282]) -> [PASS][85] +4 similar issues [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-4/igt@gem_partial_pwrite_pread@writes-after-reads.html [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-5/igt@gem_partial_pwrite_pread@writes-after-reads.html * igt@gen9_exec_parse@bb-start-out: - {shard-rkl}: [SKIP][86] ([i915#2527]) -> [PASS][87] +3 similar issues [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-4/igt@gen9_exec_parse@bb-start-out.html [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-5/igt@gen9_exec_parse@bb-start-out.html * igt@i915_hangman@gt-engine-error@bcs0: - {shard-rkl}: [SKIP][88] ([i915#6258]) -> [PASS][89] [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-5/igt@i915_hangman@gt-engine-error@bcs0.html [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-3/igt@i915_hangman@gt-engine-error@bcs0.html * igt@i915_pipe_stress@stress-xrgb8888-ytiled: - {shard-rkl}: [SKIP][90] ([i915#4098]) -> [PASS][91] [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-1/igt@i915_pipe_stress@stress-xrgb8888-ytiled.html [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-6/igt@i915_pipe_stress@stress-xrgb8888-ytiled.html * igt@i915_pm_dc@dc5-dpms: - {shard-rkl}: [FAIL][92] ([i915#7330]) -> [PASS][93] [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-5/igt@i915_pm_dc@dc5-dpms.html [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-1/igt@i915_pm_dc@dc5-dpms.html * igt@i915_pm_rpm@dpms-mode-unset-lpsp: - {shard-tglu}: [SKIP][94] ([i915#1397]) -> [PASS][95] [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-tglu-6/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-8/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html * igt@i915_pm_rpm@fences-dpms: - {shard-rkl}: [SKIP][96] ([i915#1849]) -> [PASS][97] [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-1/igt@i915_pm_rpm@fences-dpms.html [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-6/igt@i915_pm_rpm@fences-dpms.html * igt@i915_pm_rpm@modeset-lpsp-stress: - {shard-dg1}: [SKIP][98] ([i915#1397]) -> [PASS][99] [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-dg1-16/igt@i915_pm_rpm@modeset-lpsp-stress.html [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-dg1-14/igt@i915_pm_rpm@modeset-lpsp-stress.html * igt@i915_pm_rpm@pm-tiling: - {shard-tglu}: [SKIP][100] ([i915#3547]) -> [PASS][101] [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-tglu-6/igt@i915_pm_rpm@pm-tiling.html [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-8/igt@i915_pm_rpm@pm-tiling.html * igt@kms_big_fb@x-tiled-32bpp-rotate-0: - {shard-rkl}: [SKIP][102] ([i915#1845] / [i915#4098]) -> [PASS][103] +27 similar issues [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-2/igt@kms_big_fb@x-tiled-32bpp-rotate-0.html [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-6/igt@kms_big_fb@x-tiled-32bpp-rotate-0.html * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip: - {shard-tglu}: [SKIP][104] ([i915#1845] / [i915#7651]) -> [PASS][105] +33 similar issues [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-tglu-6/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip.html [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-1/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip.html * igt@kms_cursor_legacy@basic-flip-before-cursor-atomic: - {shard-tglu}: [SKIP][106] ([i915#1845]) -> [PASS][107] +3 similar issues [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-tglu-6/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-1/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html * igt@kms_fbcon_fbt@psr: - {shard-rkl}: [SKIP][108] ([fdo#110189] / [i915#3955]) -> [PASS][109] [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-1/igt@kms_fbcon_fbt@psr.html [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-6/igt@kms_fbcon_fbt@psr.html * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ac-hdmi-a1-hdmi-a2: - shard-glk: [FAIL][110] ([i915#2122]) -> [PASS][111] [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-glk8/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ac-hdmi-a1-hdmi-a2.html [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-glk3/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ac-hdmi-a1-hdmi-a2.html * igt@kms_flip@flip-vs-suspend-interruptible@c-dp1: - shard-apl: [ABORT][112] ([i915#180]) -> [PASS][113] [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-apl6/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-apl1/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html * igt@kms_frontbuffer_tracking@fbc-1p-indfb-fliptrack-mmap-gtt: - {shard-tglu}: [SKIP][114] ([i915#1849]) -> [PASS][115] +9 similar issues [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-tglu-6/igt@kms_frontbuffer_tracking@fbc-1p-indfb-fliptrack-mmap-gtt.html [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-8/igt@kms_frontbuffer_tracking@fbc-1p-indfb-fliptrack-mmap-gtt.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt: - {shard-rkl}: [SKIP][116] ([i915#1849] / [i915#4098]) -> [PASS][117] +19 similar issues [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html * igt@kms_psr@cursor_plane_onoff: - {shard-rkl}: [SKIP][118] ([i915#1072]) -> [PASS][119] +2 similar issues [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-1/igt@kms_psr@cursor_plane_onoff.html [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-6/igt@kms_psr@cursor_plane_onoff.html * igt@kms_universal_plane@universal-plane-pipe-a-functional: - {shard-rkl}: [SKIP][120] ([i915#1845] / [i915#4070] / [i915#4098]) -> [PASS][121] +1 similar issue [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-2/igt@kms_universal_plane@universal-plane-pipe-a-functional.html [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-6/igt@kms_universal_plane@universal-plane-pipe-a-functional.html * igt@kms_universal_plane@universal-plane-pipe-c-functional: - {shard-tglu}: [SKIP][122] ([fdo#109274]) -> [PASS][123] [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-tglu-6/igt@kms_universal_plane@universal-plane-pipe-c-functional.html [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-tglu-1/igt@kms_universal_plane@universal-plane-pipe-c-functional.html * igt@prime_vgem@coherency-gtt: - {shard-rkl}: [SKIP][124] ([fdo#109295] / [fdo#111656] / [i915#3708]) -> [PASS][125] [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12824/shard-rkl-4/igt@prime_vgem@coherency-gtt.html [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114774v1/shard-rkl-5/igt@prime_vgem@coherency-gtt.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280 [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307 [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308 [fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312 [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315 [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506 [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723 [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068 [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614 [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615 [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656 [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054 [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118 [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132 [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 [i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722 [i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755 [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825 [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839 [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849 [i915#1850]: https://gitlab.freedesktop.org/drm/intel/issues/1850 [i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902 [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2232]: https://gitlab.freedesktop.org/drm/intel/issues/2232 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437 [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527 [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587 [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672 [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681 [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705 [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846 [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856 [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920 [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116 [i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315 [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299 [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359 [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458 [i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528 [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539 [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546 [i915#3547]: https://gitlab.freedesktop.org/drm/intel/issues/3547 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558 [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591 [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637 [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734 [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742 [i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826 [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952 [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955 [i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989 [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404 [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213 [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 [i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433 [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538 [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454 [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767 [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812 [i915#4818]: https://gitlab.freedesktop.org/drm/intel/issues/4818 [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833 [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852 [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859 [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860 [i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879 [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880 [i915#5115]: https://gitlab.freedesktop.org/drm/intel/issues/5115 [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286 [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288 [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289 [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325 [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533 [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461 [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563 [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723 [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095 [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227 [i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230 [i915#6247]: https://gitlab.freedesktop.org/drm/intel/issues/6247 [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248 [i915#6258]: https://gitlab.freedesktop.org/drm/intel/issues/6258 [i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335 [i915#6403]: https://gitlab.freedesktop.org/drm/intel/issues/6403 [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497 [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768 [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944 [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946 [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953 [i915#7052]: https://gitlab.freedesktop.org/drm/intel/issues/7052 [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116 [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118 [i915#7128]: https://gitlab.freedesktop.org/drm/intel/issues/7128 [i915#7173]: https://gitlab.freedesktop.org/drm/intel/issues/7173 [i915#7178]: https://gitlab.freedesktop.org/drm/intel/issues/7178 [i915#7276]: https://gitlab.freedesktop.org/drm/intel/issues/7276 [i915#7294]: https://gitlab.freedesktop.org/drm/intel/issues/7294 [i915#7330]: https://gitlab.freedesktop.org/drm/intel/issues/7330 [i915#7443]: https://gitlab.freedesktop.org/drm/intel/issues/7443 [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561 [i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651 [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697 [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701 [i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707 [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711 [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975 [i915#7984]: https://gitlab.freedesktop.org/drm/intel/issues/7984 [i915#8150]: https://gitlab.freedesktop.org/drm/intel/issues/8150 [i915#8152]: https://gitlab.freedesktop.org/drm/intel/issues/8152 [i915#8154]: https://gitlab.freedesktop.org/drm/intel/issues/8154 [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228 [i915#8275]: https://gitlab.freedesktop.org/drm/intel/issues/8275 Build changes ------------- * Linux: CI_DRM_12824 -> Patchwork_114774v1 CI-20190529: 20190529 CI_DRM_12824: b976ff15c2b2d7bed87df9111ba336db6052000c @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7183: 3434cef8be4e487644a740039ad15123cd094526 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_114774v1: b976ff15c2b2d7bed87df9111ba336db6052000c @ 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_114774v1/index.html [-- Attachment #2: Type: text/html, Size: 38576 bytes --] ^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2023-03-09 12:09 UTC | newest] Thread overview: 22+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-03-07 14:46 [Intel-gfx] [PATCH v2 0/7] drm/ttm: Small fixes / cleanups in prep for shrinking Thomas Hellström 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 1/7] drm/ttm: Fix a NULL pointer dereference Thomas Hellström 2023-03-07 16:55 ` Christian König 2023-03-07 17:46 ` Thomas Hellström 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 2/7] drm/ttm/pool: Fix ttm_pool_alloc error path Thomas Hellström 2023-03-08 8:48 ` Christian König 2023-03-08 8:58 ` Thomas Hellström 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 3/7] drm/ttm: Use the BIT macro for the TTM_TT_FLAGs Thomas Hellström 2023-03-08 8:49 ` Christian König 2023-03-09 7:06 ` Thomas Hellström 2023-03-09 8:06 ` Christian König 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 4/7] drm/ttm: Unexport ttm_global_swapout() Thomas Hellström 2023-03-08 8:49 ` Christian König 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 5/7] drm/ttm: Don't print error message if eviction was interrupted Thomas Hellström 2023-03-08 8:50 ` Christian König 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 6/7] drm/ttm: Reduce the number of used allocation orders for TTM pages Thomas Hellström 2023-03-07 19:42 ` kernel test robot 2023-03-08 9:15 ` Christian König 2023-03-08 9:22 ` Thomas Hellström 2023-03-07 14:46 ` [Intel-gfx] [PATCH v2 7/7] drm/ttm: Make the call to ttm_tt_populate() interruptible when faulting Thomas Hellström 2023-03-07 21:16 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/ttm: Small fixes / cleanups in prep for shrinking Patchwork 2023-03-09 12:09 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox