From patchwork Mon Mar 10 12:06:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 14009714 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E24A6C28B2E for ; Mon, 10 Mar 2025 12:06:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 51D1F28000E; Mon, 10 Mar 2025 08:06:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4A45F280009; Mon, 10 Mar 2025 08:06:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 31CEF28000E; Mon, 10 Mar 2025 08:06:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 14065280009 for ; Mon, 10 Mar 2025 08:06:28 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id EC9C51A0F1D for ; Mon, 10 Mar 2025 12:06:27 +0000 (UTC) X-FDA: 83205514014.12.5DCF4A7 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf04.hostedemail.com (Postfix) with ESMTP id 4BF7640006 for ; Mon, 10 Mar 2025 12:06:25 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=qjqmtDkn; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf04.hostedemail.com: domain of mripard@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=mripard@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741608385; h=from:from:sender: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:dkim-signature; bh=uHE1nUKCeU468qBrtTNfrCzVnJqW8y+5bo33k8ktLaA=; b=JMYS2u0/aCR+NBGpGoUTqBP7D4/tbGC82xHIo4dZG62YUu9h56gGvEiI4PWw7IxAg+26EB LEsZzE/fPTTQt19VFsSx312+TFp732KK3aohMEHThvs2myjgzkYN55YuMabUePMWwxgPsS S39tIAHPqt13hae1vkiBnPTelAjZtPw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741608385; a=rsa-sha256; cv=none; b=D1NfsOmfrCSD9PejkjEfZaR714jreMvKMTrkzS3AY+n8k8AcAhxbCWgr1InDOjqa7pHe+n Vva2dBG0cP2j7aUnXnnJAQhY/dgCb1lh53WM+61Hx1qev7/1d6cbfg6QW49dHn9gUD9WVu knAOJuGMAPJ+152/iGLpsan+GvmuCjw= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=qjqmtDkn; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf04.hostedemail.com: domain of mripard@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=mripard@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 5D5C5A45A99; Mon, 10 Mar 2025 12:00:54 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D605EC4CEEA; Mon, 10 Mar 2025 12:06:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741608384; bh=2YzE4b+Qi+V9hV6O5UCs1RYDTh6ddyq+BV8GpU5GQUE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=qjqmtDknv7QUg/iDumEaO9V3eXLQMkJoagsIq89SSs+1N7acbPZXWD17ldw1M3TKe PMliu5u6NwaMsA3bT6dLrX1yjvUMkL0oA80IjJJi+hypDgd7j5qAw1hgGQZOFzqnnQ ZInbEz/FbqYH2OiTTl6wgDaSimir6JW+oaipvFPaSPGfPzNZcQJFhuNQjx2PxWGM71 byt+Kceqio0vbEhIzd9qn2qVk4H5w0YpfWJ3v9GO7/gbbjyEBPL1Gt9VJhZEXA0uy3 h0vVv5EM1AXM3tM05QphZ64QctN82e6k9D5EqX4V2bEzy/jSs9ncUhvlHxQevCbp3o FnRn1MYeFwzGA== From: Maxime Ripard Date: Mon, 10 Mar 2025 13:06:08 +0100 Subject: [PATCH RFC 02/12] cma: Provide accessor to cma dmem region MIME-Version: 1.0 Message-Id: <20250310-dmem-cgroups-v1-2-2984c1bc9312@kernel.org> References: <20250310-dmem-cgroups-v1-0-2984c1bc9312@kernel.org> In-Reply-To: <20250310-dmem-cgroups-v1-0-2984c1bc9312@kernel.org> To: Andrew Morton , Marek Szyprowski , Robin Murphy , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= , Benjamin Gaignard , Brian Starkey , John Stultz , "T.J. Mercier" , Maarten Lankhorst , Thomas Zimmermann , David Airlie , Simona Vetter , Tomasz Figa , Mauro Carvalho Chehab Cc: Hans Verkuil , Laurent Pinchart , linux-mm@kvack.org, linux-kernel@vger.kernel.org, iommu@lists.linux.dev, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, Maxime Ripard X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1700; i=mripard@kernel.org; h=from:subject:message-id; bh=2YzE4b+Qi+V9hV6O5UCs1RYDTh6ddyq+BV8GpU5GQUE=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDOnnrm5cH1a87eYU773J9zyPXm56VvU+f61h0oRf0qv/s ur96Ku/31HCwiDGxSArpsgSI2y+JO7UrNedbHzzYOawMoEMYeDiFICJBKgwfM87LWv75/xvll/+ 5bx9sb0aNRxHUvaX7arWY/y6UinlPSPDzmh9kYQtsY85Fz4RDTOKPGBzTFnnmvzZJDFRv3YRq1Z +AA== X-Developer-Key: i=mripard@kernel.org; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D X-Rspam-User: X-Rspamd-Queue-Id: 4BF7640006 X-Rspamd-Server: rspam08 X-Stat-Signature: mo1yej9eew6teyanghkgkk4btcgi1r5p X-HE-Tag: 1741608385-473109 X-HE-Meta: U2FsdGVkX1/KxbQmshXy30r10oEPYMtnkljuziX/Pd+lXkM/gxpK6PkNy5/gfl4/0FxUwpFqF46BNxqKVlljjNTCSmvfNJxT9XRjARfwHf9BuFVK84mnTe9pcXPj9dDWMdkg4qMhRh9Hya1sH8i9Od0pklWS8EZyL0Oxwcn3xlbJhsGxoGd0WNY08aqUWAkO0ymrB9Ac/VeXO0IQiRb70mtt7WGsnof+8yIjcR7O+yZ7TwqbcZZ5dRZHumgNsR4rvUwAhprTlHiIZGVJhcKKrfLQeEW6Q+IMBXk16gMQxVXRbsd61+PBBdXe+0yxrX3ZI2/j8Ddi+ovQCQmXQGqJFdk0Vch7ec7wYY7EaOcBxFoYLX8Tzk3HVPhgd3bO42HKeWc523zMG7JvkC5J8pSvcAHFdostQomNt0jBWEkggw0AG7fgSBkXm4bOH5xaL0uU88hWpHp6M/mXi5Hcd+92WixD0EghnSsxmLQA782e7kznI3ChJlAUrWD44YoB04YlD5RjKv5OMfWMC7ujbpCNM5jdi5YYf6oll6Dspqywg7p5g5NtaXyhUda5baxFN4oBwZT15QqDQpPQhMrltAwkaj70H01AVZhqeDk9F0Ue2m984uUze0scb6eN9nm8ZBorpG8QsSq1dEcVj32oQhXzHWi80cp7ErZLKGKWC/QaAi5hKoz8ZICuF+zD86YWBTkxmojpY5UHL9YJQ3BogQ49I6QSurhTREg/eqBTAUjI+TL67uHRcMYrO/4bOrW/Db5oIcH0nWjszY2UZFNKYCkc8aMrgybYfgT15lXJ61rGLfaBhSWFNE/tfeREGKJiL8KNizkhwZCjc+i6nNMZ+6xjyeVbgZPI26Kh1mxgco58XChbHpBOWq61nuS9ICqRACQ4KiSdKjDOw0s5pSqtOEBMjW/JoEsL/MJT53/FfX6pbeuRvhKeExVICXAItTU7IpNyJjiYp/gLaw+S5i5WP9O 3gZRTq5K 7nNa1m2EP+JR2ug0nm5VgTprq0b9S52/IFrbUkFaP+hWoHaJ9/vAR0dXKCQpAHEPGWlUtt+zk794p8HcovmEBpnEn0Fs1xZt2QRq93vvSdALjd9x3Q/YE8I88a1fO0e4PQDQH0mfhwkytvJ6ls/1R/8ck6qBRKAN5+7HesUXx0fi2iC/UkjJ48ykoDa4m6oVE/a+eypDW2wXNm1vAWzxuDbFgXGYfv6D0wxgKOOp8UWdngcCf3t0fwmXUSpa+QZHpgQR0IS6vDy7ep0VI78oMHFxsxxvozn1vCvzWU3ihdVM6amjBQNnlGD09yo3s8kWtN+Tp X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: 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 --- 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 d15b64f51336df18d17a4097e27961fd1ac8d79f..d7b2f13918e536aeb8bccebc1934d36f2f0b4cf4 100644 --- a/include/linux/cma.h +++ b/include/linux/cma.h @@ -66,6 +66,15 @@ static inline bool cma_free_folio(struct cma *cma, const struct folio *folio) { return false; } #endif +#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 41a9ae907dcf69a73e963830d2c5f589dfc44f22..4973a8c6bacb9d4924f4969be07757cf631304b8 100644 --- a/mm/cma.c +++ b/mm/cma.c @@ -49,10 +49,17 @@ unsigned long cma_get_size(const struct cma *cma) const char *cma_get_name(const struct cma *cma) { return cma->name; } +#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) { if (align_order <= cma->order_per_bit) return 0;