From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E4A529BDBB for ; Wed, 17 Jun 2026 02:22:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781662976; cv=none; b=NtLBH0NqjlBJde2a3ZvPdTIFZH7S+da6GlgHkLDIbZfkEewMTvNbMerDZ8dsCR4g74Xss+dW35y3mLlJGvq8/GVrBb50Zd3B/81mq1f2vpbEaHG6GRD979NeE9wwSVTjs6sF7qQt0vNkHK4LqTeg2Ux6nkN6Idx++5lR+I2BzQs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781662976; c=relaxed/simple; bh=45uF6n/VZ+dbGp7B0HwEr/0X+qLKMtsft3m9nq2+/1I=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Content-Type; b=BbLjHfxWCIR/ROC5LZiWI7NLIVY2YXuR9437mxBx5gXzTPMvw/ej3cdzuevgqSIrh7kYWPsa/R6+jaXhM9vbAQbusMdDLxZPMkdG7c8rmmg8noNRsEnS/3hkPTtJ+SlCnjTTnt5y1+SRPR7ot2kjefu9VNVblg75t5Ystz2fUlo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=f8Yw6qlq; arc=none smtp.client-ip=192.198.163.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="f8Yw6qlq" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1781662974; x=1813198974; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=45uF6n/VZ+dbGp7B0HwEr/0X+qLKMtsft3m9nq2+/1I=; b=f8Yw6qlqX4j5SgdsVm70xdn5YWgkH+viuSQtzEetca47v+sqZSQfxnLB vR+Pe9LpgIDIvWdzK4qmiWXh4L5FYX4J93vTQbCrxHIBli7rv7KTDwXOT baB4nWhXWQbHsw4WhZl0YOsNsL9eRgUKo5t7PskQmhAyW0WfFgeQG9eu2 ZT0IJIPZCAQhN34vVd3QDR7DDv09Toa4CiqEWtoLRIPqi4RgbrYPgHMcA TnBF4wejeY/AT+rzNbgAAR+PuqJxBsTKPRoK+vQ5duKz6vsCBqInWkYsC 3J1uSppFBNACULZH/DRZEdtEfHte7w+vXJYwr2XM8vMa5WtPIg710msQD Q==; X-CSE-ConnectionGUID: G8pUGUaVRXmcp9OraKYyRQ== X-CSE-MsgGUID: mo76aY4MRHCkrm+7H1fMtg== X-IronPort-AV: E=McAfee;i="6800,10657,11819"; a="81576673" X-IronPort-AV: E=Sophos;i="6.24,208,1774335600"; d="scan'208";a="81576673" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jun 2026 19:22:53 -0700 X-CSE-ConnectionGUID: c82pWy48T+69qdidkxU0pQ== X-CSE-MsgGUID: LuevtLjdQl6zOm7ZGtUlPg== X-ExtLoop1: 1 Received: from gsse-cloud1.jf.intel.com ([10.54.39.91]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jun 2026 19:22:53 -0700 From: Matthew Brost To: intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: Christian Koenig , Huang Rui , Matthew Auld , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , linux-kernel@vger.kernel.org, =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= Subject: [PATCH] drm/ttm/pool: Try harder for beneficial orders Date: Tue, 16 Jun 2026 19:22:48 -0700 Message-Id: <20260617022248.1165101-1-matthew.brost@intel.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a driver specifies a beneficial order, TTM should make a reasonable effort to allocate pages at that order. Use __GFP_RETRY_MAYFAIL instead of __GFP_NORETRY when allocating at the beneficial order. This allows reclaim to try harder before falling back to smaller orders, at the cost of longer allocation setup time. That tradeoff is acceptable for beneficial-order allocations: higher-order backing pages can improve TLB hit rates and reduce the number of TLB invalidations needed when moving memory. Cc: Christian Koenig Cc: Huang Rui Cc: Matthew Auld Cc: Maarten Lankhorst Cc: Maxime Ripard Cc: Thomas Zimmermann Cc: David Airlie Cc: Simona Vetter Cc: dri-devel@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org Cc: Thomas Hellström Signed-off-by: Matthew Brost --- Together with other Xe/core shrinker changes currently under development, this change significantly improved performance under memory fragmentation on PTL. In 3DMark Wild Life Extreme, performance improved by up to 120% compared to the baseline fragmented-memory case. GravityMark also showed approximately a 20% improvement under similar conditions. --- drivers/gpu/drm/ttm/ttm_pool.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/ttm/ttm_pool.c b/drivers/gpu/drm/ttm/ttm_pool.c index 9f0ab99eb289..682ae4f40424 100644 --- a/drivers/gpu/drm/ttm/ttm_pool.c +++ b/drivers/gpu/drm/ttm/ttm_pool.c @@ -168,6 +168,11 @@ static struct page *ttm_pool_alloc_page(struct ttm_pool *pool, gfp_t gfp_flags, if (order && beneficial_order && order != beneficial_order) gfp_flags &= ~__GFP_RECLAIM; + if (beneficial_order && order == beneficial_order) { + gfp_flags &= ~__GFP_NORETRY; + gfp_flags |= __GFP_RETRY_MAYFAIL; + } + if (!ttm_pool_uses_dma_alloc(pool)) { p = alloc_pages_node(pool->nid, gfp_flags, order); if (p) { -- 2.34.1