nouveau: find the smallest page allocation to cover a buffer alloc.
authorDave Airlie <airlied@redhat.com>
Fri, 11 Aug 2023 03:15:20 +0000 (13:15 +1000)
committerDanilo Krummrich <dakr@redhat.com>
Wed, 29 Nov 2023 02:03:55 +0000 (03:03 +0100)
commite9ba37d9f9a6872b069dd893bd86a7d77ba8c153
tree40dadfe44b7d2502bfbb3759c008821d92209703
parentb9c02e1052650af56d4487efa5fade3fb70e3653
nouveau: find the smallest page allocation to cover a buffer alloc.

With the new uapi we don't have the comp flags on the allocation,
so we shouldn't be using the first size that works, we should be
iterating until we get the correct one.

This reduces allocations from 2MB to 64k in lots of places.

Fixes dEQP-VK.memory.allocation.basic.size_8KiB.forward.count_4000
on my ampere/gsp system.

Cc: stable@vger.kernel.org # v6.6
Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Signed-off-by: Danilo Krummrich <dakr@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230811031520.248341-1-airlied@gmail.com
drivers/gpu/drm/nouveau/nouveau_bo.c