summaryrefslogtreecommitdiff
path: root/tools/lib/python
diff options
context:
space:
mode:
authorMaíra Canal <mcanal@igalia.com>2026-09-30 16:06:51 -0300
committerMaíra Canal <mcanal@igalia.com>2026-10-01 10:36:09 -0300
commitbca45af5998a05f34b13a2ef11e639bac9c62643 (patch)
tree4ff4646eb43752714bfc94675cc708e4c0a7492f /tools/lib/python
parentb41ff8b529278216cba22a5dcdc93fea2a3a9619 (diff)
downloadlinux-next-bca45af5998a05f34b13a2ef11e639bac9c62643.tar.gz
linux-next-bca45af5998a05f34b13a2ef11e639bac9c62643.zip
drm/vc4: Use kvmalloc_objs() for the BO cache size list
The BO cache size list has one entry per BO page count, so its size scales with the largest BO ever freed. A 64 MiB BO already needs at least an order-6 allocation, which fails under fragmentation and triggers a warn_alloc() splat on BO close: page allocation failure: order:7, mode:0x40cc0(GFP_KERNEL|__GFP_COMP) Call trace: ... warn_alloc+0x118/0x190 __alloc_pages_slowpath+0x4a8/0x520 ... __kmalloc_noprof+0x3ac/0x5d8 vc4_free_object+0x128/0x370 [vc4] drm_gem_object_handle_put_unlocked+0xb8/0x158 [drm] drm_gem_object_release_handle+0x74/0xe8 [drm] drm_gem_handle_delete+0x6c/0xa8 [drm] drm_gem_close_ioctl+0x34/0x50 [drm] The list doesn't need physically contiguous memory. Use kvmalloc_objs() so large lists can fall back to vmalloc(), avoiding the allocation failure. Fixes: c826a6e10644 ("drm/vc4: Add a BO cache.") Reviewed-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com> Link: https://patch.msgid.link/20260930190721.1897264-2-mcanal@igalia.com Signed-off-by: Maíra Canal <mcanal@igalia.com>
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions