From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtpout3.mo533.mail-out.ovh.net (smtpout3.mo533.mail-out.ovh.net [46.105.35.92]) (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 06FBE367F31 for ; Mon, 6 Jul 2026 10:26:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=46.105.35.92 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783333601; cv=none; b=HFhbCrphX/iPZRGWk5Va8FWLWm84cg+wN2np7fPoNKSAsUv1QjGnqI/PC8f3gJg2hFiKl8Nd9W5sg72hs8iySkk/eC8zKwumtBHV+TL2L/aHfXIcLAnMt+Uz8fIdtwq3/ZSTWnvqik4K5gRShiilUgm8Qr/kJe8oZlRTT82nKNw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783333601; c=relaxed/simple; bh=u40s2xVTGJd7NrHDINR/9zuzda2nGgigAOqpECuUagE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RZfIdsy/6wieBQAimSefunrRem4M/OPg0N2nmpfE1y5s4lZ6Ub38FfC72t2iTqxdCCZPFLxF44bB5C52wJYbvGk+WPQztczp2niwTuHKQ52mWqfP2hpMQrLujmElOLJ9xtxpypgf/pNsesEJ9VjQicE5QTpRyG61qs4iP04himA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pixelcluster.dev; spf=pass smtp.mailfrom=pixelcluster.dev; dkim=pass (2048-bit key) header.d=pixelcluster.dev header.i=@pixelcluster.dev header.b=eUJyg/Kh; arc=none smtp.client-ip=46.105.35.92 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pixelcluster.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pixelcluster.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pixelcluster.dev header.i=@pixelcluster.dev header.b="eUJyg/Kh" Received: from director5.derp.mail-out.ovh.net (director5.derp.mail-out.ovh.net [57.128.106.70]) by mo533.mail-out.ovh.net (Postfix) with ESMTPS id 4gv0SN34SFz64D7; Mon, 6 Jul 2026 10:08:52 +0000 (UTC) Received: from director5.derp.mail-out.ovh.net (director5.derp.mail-out.ovh.net. [127.0.0.1]) by director5.derp.mail-out.ovh.net (inspect_sender_mail_agent) with SMTP for ; Mon, 6 Jul 2026 10:08:52 +0000 (UTC) Received: from mta6.priv.ovhmail-u1.ea.mail.ovh.net (unknown [10.110.113.205]) by director5.derp.mail-out.ovh.net (Postfix) with ESMTPS id 4gv0SM6Kn7z7tDb; Mon, 6 Jul 2026 10:08:51 +0000 (UTC) Received: from pixelcluster.dev (unknown [10.1.6.11]) (Authenticated sender: nat@pixelcluster.dev) by mta6.priv.ovhmail-u1.ea.mail.ovh.net (Postfix) with ESMTPSA id C3DC88E18F1; Mon, 6 Jul 2026 10:08:49 +0000 (UTC) Authentication-Results:garm.ovh; auth=pass (GARM-104R005a42a97b5-83e6-4135-bf5a-4167f33e25d6, F224CF1D020274B13B21E639C91833BCDAC0997A) smtp.auth=nat@pixelcluster.dev X-OVh-ClientIp:88.133.252.134 From: Natalie Vock Date: Mon, 06 Jul 2026 12:07:48 +0200 Subject: [PATCH v2 06/10] drm/ttm: move zombie handling into ttm_bo_evict 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 Message-Id: <20260706-ttm_2_drm_exec-v2-6-4bf6bfc0d320@pixelcluster.dev> References: <20260706-ttm_2_drm_exec-v2-0-4bf6bfc0d320@pixelcluster.dev> In-Reply-To: <20260706-ttm_2_drm_exec-v2-0-4bf6bfc0d320@pixelcluster.dev> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , Christian Koenig , Huang Rui , Matthew Auld , Matthew Brost , =?utf-8?q?Thomas_Hellstr=C3=B6m?= , Alex Deucher Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, amd-gfx@lists.freedesktop.org X-Mailer: b4 0.15.2 x-ovh-tracer-id: 9129922348778611004 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: dmFkZTF2rMupFDtSz5VGJXaGrwYUaRUbsc9Nn7nc8ghpwc35VyZFauYARogcas+VOSD8wf0IhZl41F2o83TSTJEqn1M70AEfTiU3uOfrR34AN46Y0JjeW4xo6cV+rH2TUD4SE1NDtof+377HjW5jUw1vYYddQq9f46CIv1pXDMg+OvLcv0mAeBq8idZd3/oeDOqFYW+mp/D/hf65ucF8pcrq4BoeAZT2yueghykMKcN1pOaBvVNRQXaTXALuE+8w2Owws5LoK70lx9jAX+i5vFCotZFddZWqe5L2MI0ywEcZRGnxLB/PRWCfMsAV61ff3CxEAEQBj4aCGHb8mrffVRaINrHzSOGJlXIUmJVwzUoH3BiotNBdeFHV2G71DUEencJEovZdqlMYUuhIAKjA+DfgjS3epEpEQNrzwPCKX2QgC5ldjdmvqjhO6m/WaW7AUu/ZUELhH43surbBI3DIUpdGLhRX8JNLcXwghofbs+01qhIeZxb1zkmYRQBbWo2Y8ozysScI3nlhIZDDntC275P1NiineIUI2cuFBMTmng7YcvOds0YdN9LWNMpWToi3AmaiWuIpn2hvQ6l7CMyrbKhV1zhntLZPe8aW3YFAGk3mXEHHaKn2q35sh1wDwOoxfvgLRxWhNns49UdPIv7G3QOsm+QGLosyNGvX9QaQMuvduSQGLQ DKIM-Signature: a=rsa-sha256; bh=e8QHyuDL2skEkQjNtYLhoBSaqvz+SM6k98JVY9giwR0=; c=relaxed/relaxed; d=pixelcluster.dev; h=From; s=ovhmo-selector-1; t=1783332532; v=1; b=eUJyg/KhLJxqzbeR8X8fv308CF/T3a0hdfG/bBr+nFr+3YsuvxnMub7QzWMolJwsdEYmMj6n 327Wv7hJcXwAMJdmbIRQTFF2jj/PcMin2O8QErzsN39K/kg/rfpoTsykFg7T8sIovxbHEIJjV0n T+OrsnDJiOruY/AxvbhYplnG4EmY7ZcLgxfLJ1gWDytfi/qsJGqzf82QmxOUEr3hRU8vWvQqliR 0xGisukUHwaIpYRgZhNMTlJqLQn+VSiA2glo7arWxyl/GSLCu2Rol/Kb7JX1B5ogMLTvwg6BKhP 7iHCL8Od0xVKOb+1OS7Guc6CG/VjTtuYMCowegzj6+eQA== Both callers do the same thing, so we can trivially unify that. Signed-off-by: Christian König Signed-off-by: Natalie Vock --- drivers/gpu/drm/ttm/ttm_bo.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index 24c52df169ac8..54f01611ec823 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -359,6 +359,13 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, struct ttm_place hop; int ret = 0; + if (ttm_bo_is_zombie(bo)) { + ret = ttm_bo_wait_ctx(bo, ctx); + if (!ret) + ttm_bo_cleanup_memtype_use(bo); + return ret; + } + memset(&hop, 0, sizeof(hop)); dma_resv_assert_held(bo->base.resv); @@ -466,13 +473,7 @@ int ttm_bo_evict_first(struct ttm_device *bdev, struct ttm_resource_manager *man if (!bo->resource || bo->resource->mem_type != mem_type) goto out_bo_moved; - if (ttm_bo_is_zombie(bo)) { - ret = ttm_bo_wait_ctx(bo, ctx); - if (!ret) - ttm_bo_cleanup_memtype_use(bo); - } else { - ret = ttm_bo_evict(bo, ctx); - } + ret = ttm_bo_evict(bo, ctx); out_bo_moved: dma_resv_unlock(bo->base.resv); out_no_lock: @@ -520,14 +521,7 @@ static s64 ttm_bo_evict_cb(struct ttm_lru_walk *walk, struct ttm_buffer_object * if (bo->pin_count || !bo->bdev->funcs->eviction_valuable(bo, evict_walk->place)) return 0; - if (ttm_bo_is_zombie(bo)) { - lret = ttm_bo_wait_ctx(bo, walk->arg.ctx); - if (!lret) - ttm_bo_cleanup_memtype_use(bo); - } else { - lret = ttm_bo_evict(bo, walk->arg.ctx); - } - + lret = ttm_bo_evict(bo, walk->arg.ctx); if (lret) goto out; -- 2.55.0