> -----Original Message----- > From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf > Of Michel Dänzer > Sent: Sunday, March 26, 2017 8:59 PM > To: amd-gfx at lists.freedesktop.org > Cc: Zachary Michaels; Julien Isorce > Subject: [PATCH] drm/radeon: Override fpfn for all VRAM placements in > radeon_evict_flags > > From: Michel Dänzer <michel.daenzer at amd.com> > > We were accidentally only overriding the first VRAM placement. For BOs > with the RADEON_GEM_NO_CPU_ACCESS flag set, > radeon_ttm_placement_from_domain creates a second VRAM placment > with > fpfn == 0. If VRAM is almost full, the first VRAM placement with > fpfn > 0 may not work, but the second one with fpfn == 0 always will > (the BO's current location trivially satisfies it). Because "moving" > the BO to its current location puts it back on the LRU list, this > results in an infinite loop. > > Fixes: 2a85aedd117c ("drm/radeon: Try evicting from CPU accessible to > inaccessible VRAM first") > Reported-by: Zachary Michaels <zmichaels at oblong.com> > Reported-and-Tested-by: Julien Isorce <jisorce at oblong.com> > Signed-off-by: Michel Dänzer <michel.daenzer at amd.com> Reviewed-by: Alex Deucher <alexander.deucher at amd.com> > --- > drivers/gpu/drm/radeon/radeon_ttm.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c > b/drivers/gpu/drm/radeon/radeon_ttm.c > index 5c7cf644ba1d..37d68cd1f272 100644 > --- a/drivers/gpu/drm/radeon/radeon_ttm.c > +++ b/drivers/gpu/drm/radeon/radeon_ttm.c > @@ -213,8 +213,8 @@ static void radeon_evict_flags(struct > ttm_buffer_object *bo, > rbo->placement.num_busy_placement = 0; > for (i = 0; i < rbo->placement.num_placement; i++) { > if (rbo->placements[i].flags & > TTM_PL_FLAG_VRAM) { > - if (rbo->placements[0].fpfn < fpfn) > - rbo->placements[0].fpfn = > fpfn; > + if (rbo->placements[i].fpfn < fpfn) > + rbo->placements[i].fpfn = > fpfn; > } else { > rbo->placement.busy_placement = > &rbo->placements[i]; > -- > 2.11.0 > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx