From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 84670CAC5B9 for ; Mon, 29 Sep 2025 20:04:37 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BEE8F10E253; Mon, 29 Sep 2025 20:04:36 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=collabora.com header.i=@collabora.com header.b="gGJrNrzT"; dkim-atps=neutral Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) by gabe.freedesktop.org (Postfix) with ESMTPS id CCE8410E253; Mon, 29 Sep 2025 20:04:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1759176273; bh=dkRa3F/RjStNkVbhPhsN2OogBfmvPdqSm8pHIAsLQp0=; h=From:To:Cc:Subject:Date:From; b=gGJrNrzTY+T1Wttfb8CmxmIiieYIux/itfykNvflKdkUTIcVB10rmRZgGY2Qw05nq NGDOSc72CmM0spkV7cd6m+N92f78X2O6YhZbwF6hM3yUv4hTFCoRBlRaz0dDw1kDzn K92fiaZ1tpMRXItTKoz3OymbRP5sY279W7qXvm8qjaH0ECUkzB4st9jI7q8y/gMDCB ichJsFNPG9o/79jtFHngcZZgomJgt4a7WIIPnUCa4niC1Yha1HDXNIEyXdsTVyvtQy /TJKMrNZ+y8j7cARsRpldzxsPmC3rcc3n0God8I8i0s/ey4V7ZQcZcNHVe1YIGkHo6 7y3VmIOZOkr1w== Received: from debian-rockchip-rock5b-rk3588.. (unknown [IPv6:2a01:e0a:5e3:6100:826d:bc07:e98c:84a]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: loicmolinari) by bali.collaboradmins.com (Postfix) with ESMTPSA id 32FF017E00EC; Mon, 29 Sep 2025 22:04:33 +0200 (CEST) From: =?UTF-8?q?Lo=C3=AFc=20Molinari?= To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , Boris Brezillon , Rob Herring , Steven Price , Liviu Dudau , Melissa Wen , =?UTF-8?q?Ma=C3=ADra=20Canal?= , Hugh Dickins , Baolin Wang , Andrew Morton , =?UTF-8?q?Lo=C3=AFc=20Molinari?= , Al Viro , =?UTF-8?q?Miko=C5=82aj=20Wasiak?= , Christian Brauner , Nitin Gote , Andi Shyti Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-mm@kvack.org, kernel@collabora.com Subject: [PATCH 0/8] drm: Optimize page tables overhead with THP Date: Mon, 29 Sep 2025 22:03:08 +0200 Message-ID: <20250929200316.18417-1-loic.molinari@collabora.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" This series aims to reduce the page tables overhead of DRM drivers for builds with CONFIG_TRANSPARENT_HUGEPAGE enabled and either the sysfs config '/sys/kernel/mm/transparent_hugepage/shmem_enabled' appropriately set or drivers using a dedicated huge tmpfs mount point. It starts by adding a huge page fault handler for GEM objects to insert PMD or PUD mappings whenever the shmem backing store manages to create huge folios. It then introduces a dedicated get_unmapped_area file operation on the DRM file descriptor for GEM objects to get the best virtual address alignment for the underlying shmem buffers. The remaining commits propose shmem helpers to create and release huge tmpfs mount points and adapt the i915 and V3D drivers. The helpers are then used to optionally enable Transparent Hugepage for Panfrost and Panthor. Loïc Molinari (8): drm/shmem-helper: Add huge page fault handler drm/gem: Introduce drm_gem_get_unmapped_area() fop drm/shmem-helper: Add huge tmpfs mount point helpers drm/i915: Use huge tmpfs mount point helpers drm/v3d: Use huge tmpfs mount point helpers drm/panthor: Introduce huge tmpfs mount point option drm/panthor: Improve IOMMU map/unmap debugging logs drm/panfrost: Introduce huge tmpfs mount point option drivers/gpu/drm/drm_gem.c | 110 ++++++++++++++++---- drivers/gpu/drm/drm_gem_shmem_helper.c | 112 ++++++++++++++++++++- drivers/gpu/drm/i915/gem/i915_gemfs.c | 33 +----- drivers/gpu/drm/panfrost/panfrost_device.c | 4 + drivers/gpu/drm/panfrost/panfrost_device.h | 2 + drivers/gpu/drm/panfrost/panfrost_drv.c | 6 ++ drivers/gpu/drm/panfrost/panfrost_drv.h | 11 ++ drivers/gpu/drm/panfrost/panfrost_gem.c | 29 +++++- drivers/gpu/drm/panfrost/panfrost_gem.h | 3 + drivers/gpu/drm/panthor/panthor_device.c | 4 + drivers/gpu/drm/panthor/panthor_device.h | 3 + drivers/gpu/drm/panthor/panthor_drv.c | 7 ++ drivers/gpu/drm/panthor/panthor_drv.h | 11 ++ drivers/gpu/drm/panthor/panthor_gem.c | 30 +++++- drivers/gpu/drm/panthor/panthor_gem.h | 3 + drivers/gpu/drm/panthor/panthor_mmu.c | 19 +++- drivers/gpu/drm/v3d/v3d_gemfs.c | 31 +----- include/drm/drm_gem.h | 4 + include/drm/drm_gem_shmem_helper.h | 14 +++ mm/shmem.c | 1 + 20 files changed, 346 insertions(+), 91 deletions(-) create mode 100644 drivers/gpu/drm/panfrost/panfrost_drv.h create mode 100644 drivers/gpu/drm/panthor/panthor_drv.h -- 2.47.3