From patchwork Wed Oct 21 11:46:50 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Harry Yoo (Meta)" X-Patchwork-Id: 3681 Return-Path: X-Original-To: noreply@patchwork.local Delivered-To: noreply@patchwork.local Received: from sin.lore.kernel.org (sin.lore.kernel.org [104.64.211.4]) by mxe881.netcup.net (Postfix) with ESMTPS id B236E1C503A for ; Wed, 21 Oct 2026 13:55:17 +0200 (CEST) Authentication-Results: mxe881; dkim=pass header.d=kernel.org; spf=pass (sender IP is 104.64.211.4) smtp.mailfrom=linux-sunxi+bounces-26773-noreply=patchwork.local@lists.linux.dev smtp.helo=sin.lore.kernel.org Received-SPF: pass (mxe881: domain of lists.linux.dev designates 104.64.211.4 as permitted sender) client-ip=104.64.211.4; envelope-from=linux-sunxi+bounces-26773-noreply=patchwork.local@lists.linux.dev; helo=sin.lore.kernel.org; Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.77.114.92]) by sin.lore.kernel.org (Postfix) with ESMTP id 5C1E03206A for ; Wed, 21 Oct 2026 11:48:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass header.oldest-pass=0 smtp.remote-ip=127.0.0.1 ARC-Seal: i=2; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=pass; t=1792583279; b=S7E48ZLhEiYxd2+Wpfv3ZHgfhqye5yo0ukViocngMfgXo/jkHsTAKzS3YpPoSW3Oitbe BqMosTfNovw70pXtwV0B03AP8gqxnI55uCou0JfEUGSLkt/BJIp6rvz5UfonfnxCxTem0 pqOJYsHIQsATWvp7qrBS5RjIcS+g9KRcYPbcG83MgW2iXnpbsyEvCO9hmJ5eADnSOY/B5 OXunKwov2m5tgG8WQMsoM2iGiVPfZG+le1Dc+BBvptDumAD4QwnxNsluj/Wv+V4zLzUF0 j1G83FlngjxQK5tUWxmq8oqkPZVvDOeEQqupx7sXleEyjmhubO2BZPrI7tT1oCqfPNg== ARC-Message-Signature: i=2; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1792583279; h=X-Original-To:Received:Received:DKIM-Signature:From:Date:Subject: X-Mailing-List:List-Id:List-Post:List-Help:List-Subscribe: List-Unsubscribe:List-Owner:Precedence:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: X-Mailer; bh=UY0BY5YZcT9xFUcwEXXKGABgtDytV9atXMOzM0KH+wY=; b=40uq6p08vQJj+8ukGmf9LeXHxYT0SkakLoxzNYyen6AQxJcg52ygQz752lzCm1TN3Aps RD6en6RbO3oY8l/BKeRIPMYfs3h6l8xOnBb62dj0XISL0WLNnWkxSIORsuP0TuXgFWbSp qEv8lImNAuT5qsBHcTJmuAN+4leRX8D7+bjK1riWUpY8ZB1ugX2E0W+miMWLda5LoiMMN g39iL6JpEcGcOA5zeVtLNUqgJboQQlv3RUQTluWFA836QJ7JkCEu7Eb4D1yFkE5aWs+nu iGNs7V+ttfPMZQ1oDoXD8/FuAPXH3b4/BZB6rG1iJIYB9aD589uJKllQeOTDczWcQOg== ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dkim=pass header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=YdhnBWYe; arc=pass header.oldest-pass=0 smtp.remote-ip=127.0.0.1 Received: from localhost.localdomain (localhost [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B170A606A335; Wed, 21 Oct 2026 11:47:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=YdhnBWYe X-Original-To: linux-sunxi@lists.linux.dev Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=100.103.45.18 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1792583279; b=CQ9r6m6Em+zHcKU8bEVNyr/qloTS868KpWaHRzK/NWikc9+xcy31op9FUzti5n6Of3bI AWsu6+LGqxsTAsm2Q3U752qUJ3IBM4UWD6op1UE4YrEjy9mv5IjcXB8MwWDYAO+NGu2kw ozcjxU21+To4j+WDKI8Jh63OG6JoK0KCwwVLapbNM2pPAaHGaFSbyV53RYLOn3Id12G6j jYK1WlXRVP5q8K6QlG8URQMzt4t7vceH/M6sI6UbkFMc+DQHIcw2gljLDE4hjLVu6ZEjJ 8Gh9JAg3K2H6HbeE/+R3AAQ7QaR91zOJrnKnFB7XeN9HMgtjoL/wdczitrnOZlGV+Rg== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1792583279; h=Received:DKIM-Signature:From:Date:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:Message-Id:References:In-Reply-To:To:Cc: X-Mailer; bh=UY0BY5YZcT9xFUcwEXXKGABgtDytV9atXMOzM0KH+wY=; b=z5EETyBVh3udOpGIr8PjmLbfn2v9W9ZyOuqB5Gr7kEiMZSET+V+4Pzsgzja2Tl3I37kH H5EY6QQyvvfYWeo3lmpEI/g/DL7YBnol6tqBm0lcEKivnYouifj/42mPPvNevWbZmerDJ IeS6M6HiN3nNZgXIufuB88VDbLZFCntDZfFu74HkCDJ31oHympdK7U6NUZgsGUqRWpcqv YPSU2T4oLn29/NE+I9BqTZUaIS0pAEhWBifiFW739ViuM/NpKHp4/7XnkiDbcOYgyBjiW RRwvtovFEYKJ4ZjJu/c6gchDrbmAbsuEZSeL0p4y/XC2etFF3UHU2e4ft82WmGcKmsg== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=YdhnBWYe; arc=none smtp.remote-ip=100.103.45.18 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 52666606A319; Wed, 21 Oct 2026 11:47:59 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 992091F000C4; Wed, 21 Oct 2026 11:47:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792583279; bh=UY0BY5YZcT9xFUcwEXXKGABgtDytV9atXMOzM0KH+wY=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=YdhnBWYe3LLCjDlSmUmc7fbfmRbuuqfaySN5me/ny51WQDoQFdlIh2+8UL9tQ3WUI QLOQEHpo/RasEj1yUxSmp5WVnLLlhN48g3Gdgpk8Da3uyBRRa/yvGrSoekpmLLSlo3 Ts4DDL/G29GuMseX9g/VaL9o4FJSAxHJ6wNXwITPioc8BGogc9r1dMo6sF1/O+WW1/ VrMkruz4tjRP7Siphpg2GtlCcBNpsGrYoZv7ztN3r8kNPqI9BXcYNIDVCR05R9IvcU jSpGR3PcurvE7W+458ZtaW8m9gmkJWIuysihjESrJLVgPldaTk6EQv6K6Wkr+5B2IS Xf8YIIoHyE0tw== From: "Harry Yoo (Meta)" Date: Wed, 21 Oct 2026 12:46:50 +0100 Subject: [PATCH slab/for-next 09/14] iommu: specify SLAB_MAY_ACCOUNT for slab-backed page table caches X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Message-Id: <20261021-memalloc-prof-dont-waste-slabobj-ext-metadata-v1-9-096800aa3330@kernel.org> References: <20261021-memalloc-prof-dont-waste-slabobj-ext-metadata-v1-0-096800aa3330@kernel.org> In-Reply-To: <20261021-memalloc-prof-dont-waste-slabobj-ext-metadata-v1-0-096800aa3330@kernel.org> To: Vlastimil Babka , Andrew Morton , Suren Baghdasaryan , Johannes Weiner , Michal Hocko , Shakeel Butt , Roman Gushchin Cc: Hao Li , Christoph Lameter , David Rientjes , Muchun Song , Hao Ge , Pedro Falcato , linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@meta.com, "Harry Yoo (Meta)" , Will Deacon , Robin Murphy , "Joerg Roedel (AMD)" , Niklas Schnelle , Matthew Rosato , Gerald Schaefer , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, linux-s390@vger.kernel.org, linux-sunxi@lists.linux.dev X-Mailer: b4 0.16.0 X-Rspamd-Server: rspamd-worker-8404 X-Spamd-Result: default: False [-2.18 / 15.00]; BAYES_HAM(-5.50)[100.00%]; RBL_SENDERSCORE(2.00)[104.64.211.4:from]; SUSPICIOUS_RECIPS(1.50)[]; MAILLIST(-0.18)[generic]; MIME_GOOD(-0.10)[text/plain]; BAD_REP_POLICIES(0.10)[]; HAS_LIST_UNSUB(-0.01)[]; FORGED_SENDER_MAILLIST(0.00)[]; RCPT_COUNT_TWELVE(0.00)[30]; ARC_ALLOW(0.00)[subspace.kernel.org:s=arc20261015:i=2]; DBL_BLOCKED_OPENRESOLVER(0.00)[sin.lore.kernel.org:helo,sin.lore.kernel.org:rdns,linux.dev:email,arm.com:email,8bytes.org:email,infradead.org:email,sholland.org:email]; TAGGED_RCPT(0.00)[]; FROM_HAS_DN(0.00)[]; FREEMAIL_CC(0.00)[linux.dev,gentwo.org,google.com,suse.de,kvack.org,vger.kernel.org,meta.com,kernel.org,arm.com,8bytes.org,linux.ibm.com,gmail.com,sholland.org,lists.infradead.org,lists.linux.dev]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; FROM_NEQ_ENVFROM(0.00)[harry@kernel.org,linux-sunxi@lists.linux.dev]; DKIM_TRACE(0.00)[kernel.org:+]; DMARC_POLICY_ALLOW(0.00)[kernel.org,quarantine]; R_SPF_ALLOW(0.00)[+ip4:104.64.211.4:c]; TO_DN_SOME(0.00)[]; R_DKIM_ALLOW(0.00)[kernel.org:s=k20260515]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:63949, ipnet:104.64.192.0/19, country:SG]; MIME_TRACE(0.00)[0:+]; TAGGED_FROM(0.00)[bounces-26773-noreply=patchwork.local]; MID_RHS_MATCH_FROM(0.00)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[104.64.211.4:from] X-Rspamd-Queue-Id: B236E1C503A X-MORS-Enabled: yes X-MORS-DOMAIN: patchwork.local X-MORS-HOSTING: hosting172546 X-MORS-USER: hosting172546 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= vfio, iommufd and vhost-vdpa call iommu_map() with GFP_KERNEL_ACCOUNT and the gfp is passed down to the drivers' page table allocations. Specify SLAB_MAY_ACCOUNT when the object may be charged to a memcg. __GFP_ACCOUNT without SLAB_MAY_ACCOUNT will not be allowed. Paths: VFIO_IOMMU_MAP_DMA -> iommu_map(GFP_KERNEL_ACCOUNT) -> s390_iommu_map_pages() -> dma_walk_cpu_trans() -> kmem_cache_alloc(dma_{region,page}_table_cache) iommu_map(GFP_KERNEL_ACCOUNT) -> arm_v7s_map_pages() -> __arm_v7s_alloc_table() -> kmem_cache_zalloc(data->l2_tables) iommu_map(GFP_KERNEL_ACCOUNT) -> sun50i_iommu_map() -> sun50i_dte_get_page_table() -> kmem_cache_zalloc(iommu->pt_pool) Assisted-by: LLM Cc: Will Deacon Cc: Robin Murphy Cc: "Joerg Roedel (AMD)" Cc: Niklas Schnelle Cc: Matthew Rosato Cc: Gerald Schaefer Cc: Chen-Yu Tsai Cc: Jernej Skrabec Cc: Samuel Holland Cc: linux-arm-kernel@lists.infradead.org Cc: iommu@lists.linux.dev Cc: linux-s390@vger.kernel.org Cc: linux-sunxi@lists.linux.dev Signed-off-by: Harry Yoo (Meta) --- drivers/iommu/io-pgtable-arm-v7s.c | 2 +- drivers/iommu/s390-iommu.c | 4 ++-- drivers/iommu/sun50i-iommu.c | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/iommu/io-pgtable-arm-v7s.c b/drivers/iommu/io-pgtable-arm-v7s.c index 1dbef8c55007..b544e5da237a 100644 --- a/drivers/iommu/io-pgtable-arm-v7s.c +++ b/drivers/iommu/io-pgtable-arm-v7s.c @@ -706,7 +706,7 @@ static struct io_pgtable *arm_v7s_alloc_pgtable(struct io_pgtable_cfg *cfg, data->l2_tables = kmem_cache_create("io-pgtable_armv7s_l2", ARM_V7S_TABLE_SIZE(2, cfg), ARM_V7S_TABLE_SIZE(2, cfg), - slab_flag, NULL); + slab_flag | SLAB_MAY_ACCOUNT, NULL); if (!data->l2_tables) goto out_free_data; diff --git a/drivers/iommu/s390-iommu.c b/drivers/iommu/s390-iommu.c index f148f559ac56..f308efadc87b 100644 --- a/drivers/iommu/s390-iommu.c +++ b/drivers/iommu/s390-iommu.c @@ -198,14 +198,14 @@ static int __init dma_alloc_cpu_table_caches(void) dma_region_table_cache = kmem_cache_create("PCI_DMA_region_tables", ZPCI_TABLE_SIZE, ZPCI_TABLE_ALIGN, - 0, NULL); + SLAB_MAY_ACCOUNT, NULL); if (!dma_region_table_cache) return -ENOMEM; dma_page_table_cache = kmem_cache_create("PCI_DMA_page_tables", ZPCI_PT_SIZE, ZPCI_PT_ALIGN, - 0, NULL); + SLAB_MAY_ACCOUNT, NULL); if (!dma_page_table_cache) { kmem_cache_destroy(dma_region_table_cache); return -ENOMEM; diff --git a/drivers/iommu/sun50i-iommu.c b/drivers/iommu/sun50i-iommu.c index be3f1ce696ba..51a30969dde4 100644 --- a/drivers/iommu/sun50i-iommu.c +++ b/drivers/iommu/sun50i-iommu.c @@ -1011,7 +1011,8 @@ static int sun50i_iommu_probe(struct platform_device *pdev) iommu->pt_pool = kmem_cache_create(dev_name(&pdev->dev), PT_SIZE, PT_SIZE, - SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA32, + SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA32 | + SLAB_MAY_ACCOUNT, NULL); if (!iommu->pt_pool) return -ENOMEM;