Re: [PATCH] drm/radeon: TTM must be init with cpu-visible VRAM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 28.02.2014 16:36, schrieb Lauri Kasanen:
On Fri, 28 Feb 2014 17:30:39 +0200
Lauri Kasanen <cand@xxxxxxx> wrote:

On Fri, 28 Feb 2014 10:36:59 +0100
Christian König <deathsimple@xxxxxxxxxxx> wrote:

Am 27.02.2014 22:38, schrieb Lauri Kasanen:
Without this, a bo may get created in the cpu-inaccessible vram.
Before the CP engines get setup, all copies are done via cpu memcpy.

This means that the cpu tries to read from inaccessible memory, fails,
and the radeon module proceeds to disable acceleration.

Doing this has no downsides, as the real VRAM size gets set as soon as the
CP engines get init.

This is a candidate for 3.14 fixes.
This should be unnecessary, since TTM gets initialized only seeing the
visible VRAM and later on radeon_ttm_set_active_vram_size gets called to
increase the limit.

If this isn't the case any more we should figure out why instead of
working around it like this.
Negative, TTM gets initialized with real_vram just a few lines above
this patch, not visible_vram.
git blame shows 7a50f01a from 2009, "drm/radeon/kms: vram sizing on
certain r100 chips needs workaround." by Dave Airlie.

So the TTM VRAM init has been wrong for five years, and only worked by
accident because until now all allocations were done bottom-up.

Yeah, just came to the same conclusion. We probably never hit the case in the last five years because we don't really access the memory before we start the copy ring.

Please fix ttm_bo_init_mm to use rdev->mc.visible_vram_size instead.

That allocations are made bottom-up is relied upon in a couple of other cases as well, the stolen VGA memory and the UVD firmware handling for example.

Christian.

- Lauri

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel





[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux