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 9A361C5CFC1 for ; Tue, 11 Aug 2026 12:40:38 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5708A10EB8D; Tue, 11 Aug 2026 12:40:38 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="ZfDK1Gnp"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) by gabe.freedesktop.org (Postfix) with ESMTPS id DA6C510EB87 for ; Tue, 11 Aug 2026 12:40:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1786452035; x=1817988035; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=g5DaAMSOWsv5816a2dN5M6wDPAXDMAMz/gSgdV/MYWc=; b=ZfDK1Gnp0qw7t9pj3miMK4JMnorRoRPVtUnTvdsPsc+3INHIs5p5Hr08 Ai0hY8KgWJpfTPYmio6ttibH0xzC7AWtCmm+NDJGpR9yiMhTGMi494LqI sT6EqqsOvdySUKRWP+glXAKx6YLJa6+mbdeONQu1c68F8U6ThS5m0kmpO NoOzvoldBLA2P3koH7L23XJ1n9fOiYvF2a1/RQtZ9XNMZbT8uol6b3f3u 4O3farylZgGalb/fbfTaYiKQ2bNekhiXR4wEheeUgsAz78hzfJ0Oar9Nu sKeRtIFLpW0Y12+TXl68zZeMpgktao0bFKa60+aZYg/5XJ1GJOAhJIYZE g==; X-CSE-ConnectionGUID: GYrcYpbRSpSpqPOiY/Sj4g== X-CSE-MsgGUID: tdM3XDDGTg+csPXgnUYrAw== X-IronPort-AV: E=McAfee;i="6800,10657,11871"; a="86912989" X-IronPort-AV: E=Sophos;i="6.25,217,1779174000"; d="scan'208";a="86912989" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2026 05:40:35 -0700 X-CSE-ConnectionGUID: 2mEcEgfWQFiSk69+TfoTSg== X-CSE-MsgGUID: f7t51XwXSzWQ1tN0K/nxdA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.25,217,1779174000"; d="scan'208";a="265329848" Received: from tejasupa-desk.iind.intel.com (HELO tejasupa-desk) ([10.190.239.37]) by fmviesa004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2026 05:40:33 -0700 From: Tejas Upadhyay To: intel-xe@lists.freedesktop.org Cc: himal.prasad.ghimiray@intel.com, Tejas Upadhyay , Matthew Brost Subject: [PATCH V15 01/14] drm/xe: Link VRAM object with gpu buddy Date: Tue, 11 Aug 2026 18:10:05 +0530 Message-ID: <20260811124016.3614699-17-tejas.upadhyay@intel.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260811124016.3614699-16-tejas.upadhyay@intel.com> References: <20260811124016.3614699-16-tejas.upadhyay@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" Setup to link TTM buffer object inside gpu buddy. This functionality is critical for supporting the memory page offline feature on CRI, where identified faulty pages must be traced back to their originating buffer for safe removal. V2(MattB): Clear block->private in xe_ttm_vram_mgr_del as well Reviewed-by: Himal Prasad Ghimiray Reviewed-by: Matthew Brost Signed-off-by: Tejas Upadhyay --- drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c index b518f7dec680..5ab5dfdb183c 100644 --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c @@ -54,6 +54,7 @@ static int xe_ttm_vram_mgr_new(struct ttm_resource_manager *man, struct xe_ttm_vram_mgr *mgr = to_xe_ttm_vram_mgr(man); struct xe_ttm_vram_mgr_resource *vres; struct gpu_buddy *mm = &mgr->mm; + struct gpu_buddy_block *block; u64 size, min_page_size; unsigned long lpfn; int err; @@ -138,6 +139,8 @@ static int xe_ttm_vram_mgr_new(struct ttm_resource_manager *man, } mgr->visible_avail -= vres->used_visible_size; + list_for_each_entry(block, &vres->blocks, link) + block->private = tbo; mutex_unlock(&mgr->lock); if (!(vres->base.placement & TTM_PL_FLAG_CONTIGUOUS) && @@ -176,8 +179,11 @@ static void xe_ttm_vram_mgr_del(struct ttm_resource_manager *man, to_xe_ttm_vram_mgr_resource(res); struct xe_ttm_vram_mgr *mgr = to_xe_ttm_vram_mgr(man); struct gpu_buddy *mm = &mgr->mm; + struct gpu_buddy_block *block; mutex_lock(&mgr->lock); + list_for_each_entry(block, &vres->blocks, link) + block->private = NULL; gpu_buddy_free_list(mm, &vres->blocks, 0); mgr->visible_avail += vres->used_visible_size; mutex_unlock(&mgr->lock); -- 2.52.0