nv50: allocate an extra code bo to avoid dmesg spam

Each code BO is a heap that allocates at the end first, and so GPs are
allocated at the very end of the allocated space. When executing, we see
PAGE_NOT_PRESENT errors for the next page. Just over-allocate to make
sure that there's something there.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
Ilia Mirkin 2014-01-13 13:36:28 -05:00 committed by Maarten Lankhorst
parent 58589f6c6d
commit d98b85b507

View file

@ -738,8 +738,12 @@ nv50_screen_create(struct nouveau_device *dev)
goto fail;
}
/* This over-allocates by a whole code BO. The GP, which would execute at
* the end of the last page, would trigger faults. The going theory is that
* it prefetches up to a certain amount. This avoids dmesg spam.
*/
ret = nouveau_bo_new(dev, NOUVEAU_BO_VRAM, 1 << 16,
3 << NV50_CODE_BO_SIZE_LOG2, NULL, &screen->code);
4 << NV50_CODE_BO_SIZE_LOG2, NULL, &screen->code);
if (ret) {
NOUVEAU_ERR("Failed to allocate code bo: %d\n", ret);
goto fail;