From nobody Fri Apr 3 08:27:23 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (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 732EB3446B6 for ; Wed, 18 Feb 2026 17:15:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771434903; cv=none; b=AEjU925ybGHHooLgzu1bRUSahzJ6h9pbFVEO+mZUVvMNODNhbqUKugYFoCLqo2qSXSQ14+zV9Kdfj/FVruequtAGj2aPL8ERVz8GMBrvE8YWvKjQgVq7/Mk7uwIXx78+qqfW0M+GFRcYraS2LpOdSeSBirtMazF8jYNV7d5VFKQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771434903; c=relaxed/simple; bh=q2phHLlodPo3v5sf59GdN9ehFzXr/Zvq+imzW04dHco=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=A+balTbjA2cxPIcdS73sIkuj6d2/rWwPIhyXTHp/+V4Ag0ZE+PcNEbeX087qJpN8x/GTzFnyIyfD78LQW39YD3fQvOHSk+S9VKty03HLE5l+EqDH4mW5EkojwzTMMtQXERx3PbLuqXhjPar6hg1RyVAVZJBvT0FPIc9mRXDST3s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=avf7wLd1; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=nlG9gDqa; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="avf7wLd1"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="nlG9gDqa" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1771434901; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VXUqFvDgr/GgZzXRZIRhwXqtA/ygCg24XF2XyoDsQa8=; b=avf7wLd12v+orlKzEG9kpaNixDaX0SD0XOpY39OvVRaC2G4ElReFEGS7QVoHCXpKg40QJx cBN/XBrr6tYHcj/GxmRyuxNIIlIle8TxFpyIucQs35zNhpUlEb9GVZMETmwXtlu9ZCW3gi KYkDibxtfdNol2Cn/P1TBjwo0rqbhGI= Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-348-WnPoHO0oMquHmXuhU3F0cg-1; Wed, 18 Feb 2026 12:15:00 -0500 X-MC-Unique: WnPoHO0oMquHmXuhU3F0cg-1 X-Mimecast-MFC-AGG-ID: WnPoHO0oMquHmXuhU3F0cg_1771434900 Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8cb4817f3c8so10835585a.3 for ; Wed, 18 Feb 2026 09:15:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1771434900; x=1772039700; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=VXUqFvDgr/GgZzXRZIRhwXqtA/ygCg24XF2XyoDsQa8=; b=nlG9gDqaMPF8P6SAEeUs6klBW1edQIEKhIYVKA0Xq90PRiA7HuMDzjqn7t4UFv1J/O ZzDknFH7LcelmgE9Xyi8HTEVZJfOpnPyOErX8YM422+L24ypwW0PzFWbipvzzCnXPGfT B+rMtxeWV45vzNLSim1D/Ttdy/sWGb4ojxdqNvW2JX6JI9AHR8kr18d7QrDK0dfOs1+L KBuCQLE7cfTH9NANpu/jJkRDRrTpdZvriCK8yHAMaB1P/CX109IUwsrp49rvhAXugLL8 3+UDWyGLgLo7fVKIL84Z2VjKacGQCi91M8CiNzfDJqtZ7KWX70fM0Ru/d4p3a+wbJJP3 nHGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771434900; x=1772039700; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=VXUqFvDgr/GgZzXRZIRhwXqtA/ygCg24XF2XyoDsQa8=; b=IBxIQWW70qWJatgeHEfWrsFdHKsZybk46vjXWUs2Xi9oJOeP8bN7mY/L5rfoZMm+nU ZCPbIncVmHe7T8j9rgEa/Frc7qYtdteG5rbnJBc3AfWsTj+jZ2J+nUXM7WNp99xCFN9S xtciwlaIeVlBNSr8uiN2sjgj1cg4McY1GNUfpS1TooML6dFM0664Ejji59Z+nQXrOubf NYrzrZrIWrajxRSV5NqFe8Q/UVDefV3gwpLxhNhp4Mnb05LwFNLjtSfWp9XKohO/5GY4 1aunc94XqmSW0206K9vmApRSeeHc2Eax6JIp8lC1sw6y7KUZx70CoZ8HRewA4uCIzeL4 cLJA== X-Forwarded-Encrypted: i=1; AJvYcCWoU+0M5Xw22Qpqx8lBHE8cSkSLCaPhl5gcDL0pxMBh9kR8rfgIhe696hDg7ay9T0IInhqa7PvZMizRRhk=@vger.kernel.org X-Gm-Message-State: AOJu0YzDongflqwc0ytS7v/5vpcKBEhQkD5litEN6Ir19W4KGK0DU1Rm UhB82UP/KCGqE5XT54IMbFtqA8UvNTdQoOuM+k9Dy/3S1tQ+RrgeAdL+ucClGpHWnXKy3BER43r EdfSKYssDcLebRIp30sq3xtIUq2fuK6zlqZrnqht4KZs8ghSg3tHkL0BOIxvdmqi1Lw== X-Gm-Gg: AZuq6aIjJP4BxjMhY/ymwjc/wM/+ZYKMzwTQDMth4pCFTHB8cjNPOq07rCp9kDY1SzN r+GrgPicskiQZpIFilpzTIrmzkB2bZngymKRgpCX2E9FkjlkqvzH1EBN/OE7ZFQcQWEj2xWjtgO dKSw76uLkYi3zzaMBIludjVOgYjH+9sIZIlHzvYmtJO4uF4VycNXFc6L5iuWGgRZ5xcnXd46ZkM Pv9wIWWt/lbd6k327h+aj5WPNkHe8dSEy2BEtbvTP7AIuxJYr8oePcQqc2nCFNbOW1o29hK5M+C oiehTliKGJS6j04mCwgmRjLR51XJoCQGGp1B773z6Sk9Yyx8lzOvUidO+RL7SNcteFouaeOhA07 N7JSCmXOdxDRINpFuC1IMrcjh6DX/JoTDlipMO06M25rXwZ4sbmWeHdAU+wZIW9M= X-Received: by 2002:a05:620a:7081:b0:8c7:fdc:e871 with SMTP id af79cd13be357-8cb408629c4mr2086848185a.34.1771434899692; Wed, 18 Feb 2026 09:14:59 -0800 (PST) X-Received: by 2002:a05:620a:7081:b0:8c7:fdc:e871 with SMTP id af79cd13be357-8cb408629c4mr2086841985a.34.1771434899177; Wed, 18 Feb 2026 09:14:59 -0800 (PST) Received: from localhost (pool-100-17-19-56.bstnma.fios.verizon.net. [100.17.19.56]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-89949b3d543sm57039066d6.16.2026.02.18.09.14.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Feb 2026 09:14:58 -0800 (PST) From: Eric Chanudet Date: Wed, 18 Feb 2026 12:14:10 -0500 Subject: [PATCH v2 1/3] cma: Register dmem region for each cma region 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: quoted-printable Message-Id: <20260218-dmabuf-heap-cma-dmem-v2-1-b249886fb7b2@redhat.com> References: <20260218-dmabuf-heap-cma-dmem-v2-0-b249886fb7b2@redhat.com> In-Reply-To: <20260218-dmabuf-heap-cma-dmem-v2-0-b249886fb7b2@redhat.com> To: Sumit Semwal , Benjamin Gaignard , Brian Starkey , John Stultz , "T.J. Mercier" , =?utf-8?q?Christian_K=C3=B6nig?= , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko Cc: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, linux-kernel@vger.kernel.org, Maxime Ripard , Albert Esteve , linux-mm@kvack.org, Eric Chanudet , Maxime Ripard X-Mailer: b4 0.14.2 From: Maxime Ripard Now that the dmem cgroup has been merged, we need to create memory regions for each allocator devices might allocate DMA memory from. Since CMA is one of these allocators, we need to create such a region. CMA can deal with multiple regions though, so we'll need to create a dmem region per CMA region. Signed-off-by: Maxime Ripard Signed-off-by: Eric Chanudet --- mm/cma.c | 13 ++++++++++++- mm/cma.h | 3 +++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/mm/cma.c b/mm/cma.c index 813e6dc7b0954864c9ef8cf7adc6a2293241de47..78016647d512868cd87bc2c1a52= dd2295acaaf01 100644 --- a/mm/cma.c +++ b/mm/cma.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -142,6 +143,15 @@ static void __init cma_activate_area(struct cma *cma) int allocrange, r; struct cma_memrange *cmr; unsigned long bitmap_count, count; + struct dmem_cgroup_region *region; + + region =3D dmem_cgroup_register_region(cma_get_size(cma), "cma/%s", cma->= name); + if (IS_ERR(region)) + goto out; + +#ifdef CONFIG_CGROUP_DMEM + cma->dmem_cgrp_region =3D region; +#endif =20 for (allocrange =3D 0; allocrange < cma->nranges; allocrange++) { cmr =3D &cma->ranges[allocrange]; @@ -183,7 +193,8 @@ static void __init cma_activate_area(struct cma *cma) cleanup: for (r =3D 0; r < allocrange; r++) bitmap_free(cma->ranges[r].bitmap); - + dmem_cgroup_unregister_region(region); +out: /* Expose all pages to the buddy, they are useless for CMA. */ if (!test_bit(CMA_RESERVE_PAGES_ON_ERROR, &cma->flags)) { for (r =3D 0; r < allocrange; r++) { diff --git a/mm/cma.h b/mm/cma.h index c70180c36559c295d837725e26596cf546cd8b7e..e91bedcb17be8c9e0d31aea1b67= c0db36315536d 100644 --- a/mm/cma.h +++ b/mm/cma.h @@ -62,6 +62,9 @@ struct cma { unsigned long flags; /* NUMA node (NUMA_NO_NODE if unspecified) */ int nid; +#ifdef CONFIG_CGROUP_DMEM + struct dmem_cgroup_region *dmem_cgrp_region; +#endif }; =20 enum cma_flags { --=20 2.52.0