From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f45.google.com (mail-ed1-f45.google.com [209.85.208.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4AFF83B6370 for ; Fri, 26 Jun 2026 11:29:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.45 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782473346; cv=none; b=l5pfrdCru72Y8GshTJZYYL5W04hupkJxd/d/fnl0yjrsUtWIdGAW8VICIMQYywKhY1XCjjeN5zUbUc3SreLG8G9hPe8G21w25C505Gcrd5qx4InID8v+UqQ2DuSJ/szEDgXgQtYp3Gt693RvdhUALxR1vkpXTfSYcPb4XCFQ8D4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782473346; c=relaxed/simple; bh=wuBRNr1Jl+MQ7pic4Sl+aoruGSwEh38qgddaTVgF55Y=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=YK0OOlv4eBHSEj8i5ELvcRAXCAspZ/FjsF70zFnvVVH8xAVxNNbj+X7YIkT8Ura4CqIsbc4g3A2yjNyAu6CehCDlu6JEOKtH6eDNXj8+UC8AUUlbHPWu5K1FT7nMyozXmCOrgy1y90hxnQ05h+04M4WedIep3a3LTNgn9wrRml8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=P5qmUiN9; arc=none smtp.client-ip=209.85.208.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="P5qmUiN9" Received: by mail-ed1-f45.google.com with SMTP id 4fb4d7f45d1cf-697cd68d7adso1351140a12.1 for ; Fri, 26 Jun 2026 04:29:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782473344; x=1783078144; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=LhgdMS5TXgKcR8QoNKupqhHAfY6bdNKf0RyWHL3p3Ao=; b=P5qmUiN90FEEd02ayOQWpW+eIpB0ATMfsAGcGR+QEIx9hmkXrY2Q14/p8KoINiHhoD I6OA5I/4xad41o5kUSdeODCRS1DwfO8rVR/TQcEtoY6G6oF0S8GityWryTJdk4WS0jaN 51AM05TcF1t7VYmBuP2i6kY2hF6nsyrGrmonKO5LI8XZYuH6b9cHpSo6MQp1mMbDJS/D mCa2TWIFtUx6l3s3wKQZ/3dZLfhm9CF6VHnc+S2KpjPXAfTAZwhX78Ff+LoAtS1RbbDJ HRWPMghqoksMuXiu4jhw0d8/z+ABd+dDuFE11JaK1uTRiWUtArjN7jPao/TNevtb2qN9 duEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782473344; x=1783078144; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=LhgdMS5TXgKcR8QoNKupqhHAfY6bdNKf0RyWHL3p3Ao=; b=RYjGSeaHg559o/22/gXQNiIRrLiYG+sorMU/bOtyE06GYLfErxQ8yGCeerDdQOmm5D zF3nO/0m0M1tIRQmh96G3gWMyJCrpKJdaZqxGMVL5/ll6+ZKo9GNdFvHbKOleNF0HI55 uucUKoSQh/lUo4Pth8tUZ1YGm49Agm0A5Uf0mCcY0/cUPc7tAFlfBIHSmOIo+Yk4f1mt j+/7PuEhwZNp+fwwKI6XBxFuDLmZ0LDvfvCWe7dj7PiCS9/P1GTDRv0auAnigRTNwYgV riPmsVIYJLcpNNvU6CTUC9yB1P2p6+6v/nYNct2ioiSb8h0dbPMPVOHuXOTEpNUVy2hj sGyw== X-Forwarded-Encrypted: i=1; AHgh+RoJZxLi7TMY9Yt1QtU/LW+TDKgwonxG/EYaEH7By0q1zQNEna/x4s+aiKY3dx+I7obh5KPpFgAKMy5mY4k=@vger.kernel.org X-Gm-Message-State: AOJu0YxIAZOSCOn1qPT9GbO9w4Y9yeTn8lBX+JF/h4BOpByHSyuGUE1u Kle5zpHvLPSfWKOqCKWyoT3AaAmHSJoewHR0yAcc5YNoFtexsuBnlEJZ X-Gm-Gg: AfdE7cl0kwX/S53k/lc7t0m5jRbZgBu1CVzLFCe2vBaTT//Ay3fLIEchZNUFV1jYxeJ 2Loilw94VMohq5qMBw5Slu245M95Jp6tskCwy5uyCF4HESuJTRXCW9dhlrUbIznWzZkhCRDocD0 ZEv60NSuDfJT9h+J+FFPt7xH9DVp+vFcPUgeERo4dnC0EpIIWYYFgKnNATWDcVdZMMFJzH7XFdQ 8/StDqU38UasQWAdwaCj1MJsZmIVsaGq1dzM3kntp6ZNbWkTWzR9mncI7wEeeJnYSD6xi81SAxN TnVnCprx+VNJrd1K+bJsaNl64qGsrE5sV8iGw2AZp1MbVsPlqWWGoX4QELVzCC31tjf+iV6WjlY ACBq4AIZYp++8RtpEdiyCs+fczS6dGSt5ljoJDUSYMFvc03ylen1KX+JKHWDjX0kbPK+v5jvulG GykHzrNY3r26WnqCYxTCvSRSfAzR/90Izw+TmL22KT7XKVCxAc4+cuUqid+nxxaS7zYlJhYkLsc O5dsvxRPm8DqK+DugWU6JBYHM5RErTWcKzPVeER6pDt X-Received: by 2002:a17:907:3c8b:b0:c12:f85:bea4 with SMTP id a640c23a62f3a-c120f85cbb7mr361613666b.47.1782473343510; Fri, 26 Jun 2026 04:29:03 -0700 (PDT) Received: from fedora ([154.66.167.183]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c122176f39csm88811566b.21.2026.06.26.04.29.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Jun 2026 04:29:03 -0700 (PDT) From: aquiles To: matthew.brost@intel.com, thomas.hellstrom@linux.intel.com, rodrigo.vivi@intel.com Cc: airlied@gmail.com, simona@ffwll.ch, intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, aquiles Subject: [PATCH 1/2] drm/xe: count UMA shrinkable BOs as reclaimable without swap Date: Fri, 26 Jun 2026 11:26:37 +0000 Message-ID: <20260626112638.2042298-1-achillezongo07@gmail.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit On integrated (UMA) devices all GPU buffer objects reside in system RAM. xe_shrinker_count() previously gated shrinkable (non-purgeable) page counts on ttm_backup_bytes_avail(), so those pages were invisible to the kernel's memory reclaim on systems without swap configured. On UMA, shrinkable system-memory BOs can be reclaimed independently of swap availability. Report them unconditionally so the shrinker can always request their eviction under memory pressure. Signed-off-by: aquiles --- drivers/gpu/drm/xe/xe_shrinker.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/xe/xe_shrinker.c b/drivers/gpu/drm/xe/xe_shrinker.c index 83374cd57..3ca2de342 100644 --- a/drivers/gpu/drm/xe/xe_shrinker.c +++ b/drivers/gpu/drm/xe/xe_shrinker.c @@ -140,16 +140,22 @@ xe_shrinker_count(struct shrinker *shrink, struct shrink_control *sc) { struct xe_shrinker *shrinker = to_xe_shrinker(shrink); unsigned long num_pages; + long uma_reclaimable_pages; bool can_backup = !!(sc->gfp_mask & __GFP_FS); + bool is_uma = !IS_DGFX(shrinker->xe); num_pages = ttm_backup_bytes_avail() >> PAGE_SHIFT; read_lock(&shrinker->lock); + uma_reclaimable_pages = is_uma ? shrinker->shrinkable_pages : 0; + if (can_backup) - num_pages = min_t(unsigned long, num_pages, shrinker->shrinkable_pages); + num_pages = min_t(unsigned long, num_pages, + shrinker->shrinkable_pages - uma_reclaimable_pages); else num_pages = 0; + num_pages += uma_reclaimable_pages; num_pages += shrinker->purgeable_pages; read_unlock(&shrinker->lock); -- 2.54.0