From nobody Fri Apr 3 06:46:51 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 Tested-by: Albert Esteve --- 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 From nobody Fri Apr 3 06:46:51 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 AD1C5345749 for ; Wed, 18 Feb 2026 17:15:05 +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=1771434906; cv=none; b=LsUMcjq0Oar5icH2+GkybtQot5KKkpaKEtKm8DSL7T4rSbUwKY9lPiuFQ353ioYIO7ItP6A+0xu9T7IeWdFjuIOMmnk6Qz6IxmvyFq0tuLrt3VshN8OUNWcgBO07a+s7lSgWIhllu8N2eY9u4ITDzFqlQRbSCwlZyNqh12oWfSM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771434906; c=relaxed/simple; bh=tvITXHeVStwjhEWmH+cVpE7FG4BkG61UXXc8maGmGU8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UyTqua6q9p7b7nZu0ojusZ2Iwva2hd73GLUSvuzz77qyDojcKRuf7SvT4MyxtUH1DDfBLo34YlI+MPZfpl6wY+u8phvRWabw+FLSaE7S7gHEM4qqeMlv3u+xbRrAqZuHjL6ThiQEVH2ua4UaW9/0A++cJHKY8r0Eyej9MBtNt48= 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=IUYGgHHC; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=p6Rij6Rj; 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="IUYGgHHC"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="p6Rij6Rj" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1771434904; 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=42FtUK8DRzgqq7HgnylfgEXKEQfWmOW3Tw8CmlqQgJI=; b=IUYGgHHCy36LGtPIudFHAmrLD5P/hAFxd0EXCCklHj7xF80ceN6eobU5zsoBd96uBJZvqL LArhMJHbz4g3SJf1VIripW36Ju/vSLQGl5k3ZLSxdWOLX6SsC6slDl3vwTx5cVtVEbu+0R T/HBjaZbtyiwSKTvT6U87cXSLi0j5M4= Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-594-dm0ZqDDEM6m7JhwfDuQA5w-1; Wed, 18 Feb 2026 12:15:03 -0500 X-MC-Unique: dm0ZqDDEM6m7JhwfDuQA5w-1 X-Mimecast-MFC-AGG-ID: dm0ZqDDEM6m7JhwfDuQA5w_1771434903 Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-8c70ed6c849so16304185a.1 for ; Wed, 18 Feb 2026 09:15:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1771434903; x=1772039703; 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=42FtUK8DRzgqq7HgnylfgEXKEQfWmOW3Tw8CmlqQgJI=; b=p6Rij6Rj2jON0x1NgxfH3ArJbWiXUBE9oXTTFfL7AvetIxmKRWmhdXHax/bYU0REcp ozvqmcLn90snRrK4BQvJVQUn/b4brv+hWMqQlFiOj/jrAKUBixXw/AIhfVQtAH3wyJld F97Z/6YpgfCRdMASGkvep05cRAOkRw8G/DkFmMY+qRShdtvct7znbhWjzF2SDfo9IIIr 1FMLuM9R/zoXgTVq49j7zcVXqrrTdFD2TsJb8JFyAuuF3buOY5bBspgrgkzQ5crEHibI v/NlOdEhr2Ifw3qGHJWhkuqA0+Sc7jq6MT5InF/glNKtOXrA4kvt38hZWqVMq4WlK30p wdkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771434903; x=1772039703; 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=42FtUK8DRzgqq7HgnylfgEXKEQfWmOW3Tw8CmlqQgJI=; b=OiZUzhRYn7DXIpl+brjNhVJ81Nl58Hv+34K94QfXRr4p8JqkIdB7GdrNbuzVNgO6qJ 60lfMzXUXNIngwJHqGgDZl4K3kNC0fGId4TbFd0ptNiBEZWweU79PcMpI69aS10ZtX6U bzFCF535JJLnsdWp10MpRqrzLwoaD/ZxmOeNaGzB0H/zgu9KZIbaO4MqSjE4jIX1q8mZ kYMHp1XrmFHqdUS7aWKHTYaaCnMQpatP1xAaUwQINt2Iyh+OhvxcbwgU9EI/tmliLwX6 4FkqwzQ5o6mJ0lwOGWL8y+ZslkgMbvHs5Fg/8JRurO4SbgMqRQnB1zFD4Rs5ETPPnUQY E3sg== X-Forwarded-Encrypted: i=1; AJvYcCXO+qAVIAM0andmjrUOIwI1N+Nxwr20isXsa8Yr93zJLcxMkkRPSJUJYRAra/DCZKIedJBB4qK7OzdNGsU=@vger.kernel.org X-Gm-Message-State: AOJu0Yxffm5PElo9nNjqtpLXkSecJxQXP6tJ4M2xC5TdvIOKiqIAbuFO P/ZcXMM1OLqQ2+f2ZU/jtS9XiWortK7+N73vinxtADDgItnmHrPpWlnFQEPRfAG0F5AtIMsAdqz SimV803U7P6Y+VsU/YpW/w5lJ+s2fhtI7ZHZTIeBqtQbHj/6I66qTuxAGXVMFCTTo1w== X-Gm-Gg: AZuq6aJa9qqt0Z47K9+YjokvGVZiz9LCJzYVtPe+HaIVuFA+o7i1Y6JRnJv2j4PZsWC 711Tx6me1F6MpxavsMmVGY/V76qS8isuXtmq4QEKslIdZX8+Uw+ng2to887gsem+hqnVB6+MX0f CPY3eXSjm/FSPQUWiIiiVWsnQ1z2VJYYdhqMatAwkmbzDDX+y6oHyCRLQtEipUtWAgrZkNmVBox NPuRjguJljdW8uLVLmCB7804W/PyJJsDQnhpHUxZdEfKmKoDbjI92ahx6I6whA9m7Mp8MWVqY1L ZCxp7NeB8ySPPSQiYqZOZ0G8+HnSoTvpveM6NE1cttU4mLnJBovrLICwVtXsDUfVh2LgHsYjKjr N7aQ63xnFK5bBgVF4M4rQoyXZ4CSnDk5ByG2fJ4prsmditA4LHD2jGWIb9u5Xosk= X-Received: by 2002:a05:620a:294b:b0:8ca:2cf9:819c with SMTP id af79cd13be357-8cb423c2500mr1979540785a.40.1771434902635; Wed, 18 Feb 2026 09:15:02 -0800 (PST) X-Received: by 2002:a05:620a:294b:b0:8ca:2cf9:819c with SMTP id af79cd13be357-8cb423c2500mr1979531285a.40.1771434901901; Wed, 18 Feb 2026 09:15:01 -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 af79cd13be357-8cb3a3e9adesm1523117985a.49.2026.02.18.09.14.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Feb 2026 09:15:00 -0800 (PST) From: Eric Chanudet Date: Wed, 18 Feb 2026 12:14:11 -0500 Subject: [PATCH v2 2/3] cma: Provide accessor to cma dmem 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-2-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 Consumers of the CMA API will have to know which CMA region their device allocate from in order for them to charge the memory allocation in the right one. Let's provide an accessor for that region. Signed-off-by: Maxime Ripard Signed-off-by: Eric Chanudet Tested-by: Albert Esteve --- include/linux/cma.h | 9 +++++++++ mm/cma.c | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/include/linux/cma.h b/include/linux/cma.h index 62d9c1cf632652489ccd9e01bf1370f2b1f3c249..8ece66c35e9e640b98db4b24a9b= d118ad07ec082 100644 --- a/include/linux/cma.h +++ b/include/linux/cma.h @@ -77,4 +77,13 @@ static inline bool cma_validate_zones(struct cma *cma) } #endif =20 +#if IS_ENABLED(CONFIG_CGROUP_DMEM) +struct dmem_cgroup_region *cma_get_dmem_cgroup_region(struct cma *cma); +#else /* CONFIG_CGROUP_DMEM */ +static inline struct dmem_cgroup_region *cma_get_dmem_cgroup_region(struct= cma *cma) +{ + return NULL; +} +#endif /* CONFIG_CGROUP_DMEM */ + #endif diff --git a/mm/cma.c b/mm/cma.c index 78016647d512868cd87bc2c1a52dd2295acaaf01..c8b0de1da3e71bd6b8ab749ab58= eb27446a1657e 100644 --- a/mm/cma.c +++ b/mm/cma.c @@ -53,6 +53,13 @@ const char *cma_get_name(const struct cma *cma) return cma->name; } =20 +#if IS_ENABLED(CONFIG_CGROUP_DMEM) +struct dmem_cgroup_region *cma_get_dmem_cgroup_region(struct cma *cma) +{ + return cma->dmem_cgrp_region; +} +#endif /* CONFIG_CGROUP_DMEM */ + static unsigned long cma_bitmap_aligned_mask(const struct cma *cma, unsigned int align_order) { --=20 2.52.0 From nobody Fri Apr 3 06:46:51 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.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 A6289345CB2 for ; Wed, 18 Feb 2026 17:15:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771434912; cv=none; b=STU5vSEE71reQhoVNfjofMcvOsopyEzKNWa7e15hf3nxEwQioAeEdh9UBw+mBJ4dJ2FylblfNFQbrE1BVZTmuABkh8nX4Grxy7ev1i6t/b+w6+bzN0FxmJ93DKjaQdh+QrO/dPEljzyx58ak/ImHXI72p3B34WYZszHFLvGtZ8U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771434912; c=relaxed/simple; bh=J3KmHWHvAFmGVjG/uQfaIEu+JFw9VxdB6dh65Ea9/Tg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DHEfupcD5gwtmqZBWDdUGDh2IJRFKEg5yA9gqRw8vWCxstpf5RcfV35GAcvgz28Hp1dqLrwT0LLgeQQECrgae7s+lCnmTEQfZjfhLPHdyUI+zEDcQeL7qA+n1h8q76Qrv7O6abhF6L4bBoWMOscQ4WhQ1Dr14fxrcOD8+djBnmU= 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=YXCsPxHS; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=BBBW0c+z; arc=none smtp.client-ip=170.10.129.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="YXCsPxHS"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="BBBW0c+z" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1771434906; 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=RWROfJdWhlgxA5rcp8Pj9VJ7m2fa4/nREAlFrPf4oa8=; b=YXCsPxHS1XoX08qE57J0uO7e/ABt0x88xarlYiF/w53DJw+CzcGQu5QZT03kWGkmUJR0I1 ztPbZHxEQZdla14VZAnCtVR8tyT+aAIL4u/Ug64CWRL7fivBRVe//5hZEV92Iz+pjkNkw8 m1aXzlNb8PAxpvuyAFbJtsArMQqkf7w= Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-479-KUWE3TKxP2OEepgA82pLXQ-1; Wed, 18 Feb 2026 12:15:05 -0500 X-MC-Unique: KUWE3TKxP2OEepgA82pLXQ-1 X-Mimecast-MFC-AGG-ID: KUWE3TKxP2OEepgA82pLXQ_1771434905 Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-8946f1b8691so1076846d6.3 for ; Wed, 18 Feb 2026 09:15:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1771434905; x=1772039705; 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=RWROfJdWhlgxA5rcp8Pj9VJ7m2fa4/nREAlFrPf4oa8=; b=BBBW0c+zODAlsJsHcanCOTXhlO1yeyXyRRq3JiytR5K0wK3pjA35vZUTZrUP4Jfrsq wLPfPVujV4wE45vK6wxRSoqnMXzUqVC5NHiatVvfTKbT3+4FTHaluT7Noea4iIScwPxv KMsl0SLz1w3vAlrMKNca0rTmz8tajVMLNM9l/ZHjzm11/ee2ewi3bpTWnw+v91pyb/IN rCJX2uNhwwdGVuFYCObNDnivKe88/ZqGue7j+2suLmPwflFxtt7mkeMq3Zt1zjXvWiME iQJolFoAeV/3whKX+sQ7S6XFgd4f1q7CnpMn7SkK2ky45niUjA4knxvEUPnNxP25vINH DIfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771434905; x=1772039705; 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=RWROfJdWhlgxA5rcp8Pj9VJ7m2fa4/nREAlFrPf4oa8=; b=hakY08x11ZoTtpRrwJlJx5i9lW9PuCte7USyCdVqhgYeefwuHYVo9qFFJXxR7XYQLJ PiuW77oEZTF5bbhUj2b7f9GcPN/sWEMMVU2ZZTRr3e3bK6X9zSlV2s5J5gh66NWCitQG ZuuZkGKXTcqinX+yEYSgd9RTzVQza6hzTx+8ITUNhR1UPOIg+C3fcEuYACwsuOL51g1c Zf8NASXZC9r1A6F0wWy0VCs7/WuoXWDSkfYV1oADBzzNpCGPiVcmzgBLYLu8ygkf7FOC MEj0PR92+PrEt1lobE0o2ESP75p2U2C3MzUztPeKGktA+4QCjWK7N6SiUkf9Wcpvzotd lbRw== X-Forwarded-Encrypted: i=1; AJvYcCURnutB497jfNRiq1kKudF6ozcAABr7ze+R+Mrt4vdGMgPGQ/zlVR60HpNo+k36tULy6cUXNaCpzdAKwAM=@vger.kernel.org X-Gm-Message-State: AOJu0YzTgtwj6WIPOHu4tEpbKzgoilncUIBTwGQhMLwhtLaYhoEjZhoO rATnhezD+N+19MwhXl8JfF8rEqpZSAbGhTtRfDBk8ZSQvkwwO5UQ0i7rdUw0Ht1qyiqwSRhzUti W6UT8Npk65sEPYksruIRn6Pn8ijS47PykV7amD+4D1tYPRprqV/CZnENUjJ5Bwn58BQ== X-Gm-Gg: AZuq6aI3n5u3UwGlgHqLksldxQQ5mxQH4GlUgLote7StaEh/PfT/SmvlXSevlaecwxJ dwBt9O4D7lhKR452YKyw1CnyLRYxoEGAwQ74eZKxPNY6AozpmTGQywyNMhL0ue+h+wLdlS/H9E9 Bl8DjTc+WZL4xAQjqX6/RqFoDreoa2HNuuhEpbnUYwfUvhuSs0AjsoSia8uo5nX5sMWvbed5b7y hkuukqmWnU8D7EfjQPS6k7Glv2SrVowOfmrRpxAi93ZiTTaJVORbtOzr3FaPsWObiTIr9mhLk3h Z4tioAjN8cm3/SlzLWynWpTZu6uQICpkJEsAEGWdepTJ8F2hh/j+3uFV6+dKSx4h4cztgCSm/PC I0Ha9VByt7kop0goNSL82ACFXAQBB2haB06Dss47qekHwxdllTQ6E1NStVDl4jyA= X-Received: by 2002:a05:6214:5194:b0:895:d652:e3a5 with SMTP id 6a1803df08f44-89957fd539fmr37373456d6.23.1771434904516; Wed, 18 Feb 2026 09:15:04 -0800 (PST) X-Received: by 2002:a05:6214:5194:b0:895:d652:e3a5 with SMTP id 6a1803df08f44-89957fd539fmr37372786d6.23.1771434904004; Wed, 18 Feb 2026 09:15:04 -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-8971cc7f82csm195307856d6.4.2026.02.18.09.15.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Feb 2026 09:15:02 -0800 (PST) From: Eric Chanudet Date: Wed, 18 Feb 2026 12:14:12 -0500 Subject: [PATCH v2 3/3] dma-buf: heaps: cma: charge each cma heap's dmem 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-3-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 X-Mailer: b4 0.14.2 The cma dma-buf heaps let userspace allocate buffers in CMA regions without enforcing limits. Since each cma region registers in dmem, charge against it when allocating a buffer in a cma heap. Signed-off-by: Eric Chanudet Acked-by: Maxime Ripard Tested-by: Albert Esteve --- drivers/dma-buf/heaps/cma_heap.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/dma-buf/heaps/cma_heap.c b/drivers/dma-buf/heaps/cma_h= eap.c index 49cc45fb42dd7200c3c14384bcfdbe85323454b1..bbd4f9495808da19256d97bd6a4= dca3e1b0a30a0 100644 --- a/drivers/dma-buf/heaps/cma_heap.c +++ b/drivers/dma-buf/heaps/cma_heap.c @@ -27,6 +27,7 @@ #include #include #include +#include =20 #define DEFAULT_CMA_NAME "default_cma_region" =20 @@ -58,6 +59,7 @@ struct cma_heap_buffer { pgoff_t pagecount; int vmap_cnt; void *vaddr; + struct dmem_cgroup_pool_state *pool; }; =20 struct dma_heap_attachment { @@ -276,6 +278,7 @@ static void cma_heap_dma_buf_release(struct dma_buf *dm= abuf) kfree(buffer->pages); /* release memory */ cma_release(cma_heap->cma, buffer->cma_pages, buffer->pagecount); + dmem_cgroup_uncharge(buffer->pool, buffer->len); kfree(buffer); } =20 @@ -319,9 +322,17 @@ static struct dma_buf *cma_heap_allocate(struct dma_he= ap *heap, if (align > CONFIG_CMA_ALIGNMENT) align =3D CONFIG_CMA_ALIGNMENT; =20 + if (mem_accounting) { + ret =3D dmem_cgroup_try_charge( + cma_get_dmem_cgroup_region(cma_heap->cma), size, + &buffer->pool, NULL); + if (ret) + goto free_buffer; + } + cma_pages =3D cma_alloc(cma_heap->cma, pagecount, align, false); if (!cma_pages) - goto free_buffer; + goto uncharge_cgroup; =20 /* Clear the cma pages */ if (PageHighMem(cma_pages)) { @@ -376,6 +387,8 @@ static struct dma_buf *cma_heap_allocate(struct dma_hea= p *heap, kfree(buffer->pages); free_cma: cma_release(cma_heap->cma, cma_pages, pagecount); +uncharge_cgroup: + dmem_cgroup_uncharge(buffer->pool, size); free_buffer: kfree(buffer); =20 --=20 2.52.0