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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id AE8C8C4345F for ; Sat, 13 Apr 2024 00:25:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F3F016B009F; Fri, 12 Apr 2024 20:25:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EEE7F6B00A0; Fri, 12 Apr 2024 20:25:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D1A956B00A1; Fri, 12 Apr 2024 20:25:38 -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 B200E6B009F for ; Fri, 12 Apr 2024 20:25:38 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 7EEEE161051 for ; Sat, 13 Apr 2024 00:25:38 +0000 (UTC) X-FDA: 82002615156.19.0FA9BF2 Received: from mail-oo1-f54.google.com (mail-oo1-f54.google.com [209.85.161.54]) by imf02.hostedemail.com (Postfix) with ESMTP id B82F880008 for ; Sat, 13 Apr 2024 00:25:36 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=soleen-com.20230601.gappssmtp.com header.s=20230601 header.b=Hb9NPKLS; dmarc=pass (policy=none) header.from=soleen.com; spf=pass (imf02.hostedemail.com: domain of pasha.tatashin@soleen.com designates 209.85.161.54 as permitted sender) smtp.mailfrom=pasha.tatashin@soleen.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712967936; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=oW/KEiSNsnRBw/l+ZCWeQ/h6Gx3xayfzLPqYuXkw+Zo=; b=mMzxN3+rpeBgDnJ1qsmPnsb335jtwwF41beWHyocp/Egs5UhnpDFBGckeCXtG2rBVTTNWJ FsUdrDSKK5v/fWrQkQUm4A6CXMsJnYjIU12eo1NP8XVRzBKlpUjFMEdrR+/164nDQ8RDJU Me2T7RiTo4R+CM00KUTI0eHjidoaOUE= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=soleen-com.20230601.gappssmtp.com header.s=20230601 header.b=Hb9NPKLS; dmarc=pass (policy=none) header.from=soleen.com; spf=pass (imf02.hostedemail.com: domain of pasha.tatashin@soleen.com designates 209.85.161.54 as permitted sender) smtp.mailfrom=pasha.tatashin@soleen.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712967936; a=rsa-sha256; cv=none; b=Y5F9W2Qdo1hKseiUS9VaM7igQLGLm+QBFmGlc09kHXT6LslGW420r+dLRUZwkpNJo5e5LD 5cc9GnWAaGX6uzZReDOfNHFj9OYOg0j3RGLHMExTfEW4Kw+jwrUw+3lHeTuDOejWaKA9yw ZZLgdYRqL+Z1VyxiJ9Gp9017TroPfPQ= Received: by mail-oo1-f54.google.com with SMTP id 006d021491bc7-5aa17c69cf7so984095eaf.2 for ; Fri, 12 Apr 2024 17:25:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=soleen-com.20230601.gappssmtp.com; s=20230601; t=1712967936; x=1713572736; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=oW/KEiSNsnRBw/l+ZCWeQ/h6Gx3xayfzLPqYuXkw+Zo=; b=Hb9NPKLSIPsu+r4zhxTEpjB81xfCYi5FkuYGXud/ExzvlliTf0CZqOXJVqQi3Enad/ PnhXYp4Ki9Tk4hdEpOy7tI29WQl1S/tVdlOttpUZUBNanWu41p+sbXhTcvqna4LWCRMg YjHI50Rx6MHNXx+xqgg1277xopIQ+dy61e5vO5tPPrteFDdZtRzlada0a3YsgWH0gBcg L67dmD0QgX/riiVcrLAvLHTnMMiaZfNalWwMT3ctwd5AjZxlrtW43byV20UVgtjbF4oL QTwYFhqWOCWNoVHPofrLFnqjYsi4krAZ4yUvEzUTTnlqQUTO97GLiJ1qYyzNDuMhUc+s aEOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712967936; x=1713572736; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oW/KEiSNsnRBw/l+ZCWeQ/h6Gx3xayfzLPqYuXkw+Zo=; b=OE7BfyPq7Wai0FokvPn99DH/mF/hr2cBrvvIhxBCF/aISfizy62rIR6GLHfN9v6pKj uv8/rwMLvKalmDqb9UerkyPf3AcDWORpVPfOdZICX/2BeJKWFjJVO9nbmJzhqb9ikhJw KFSCbfnvbcfRklm1S5e8gXiv6l7T18AXUQ8ejuU0N0Je4iEapDsyX//sMgGmus3pnxn5 szHv0X6tfre7L5nXeCat26oKawhQFj0T5xRlptw3DW3fotFqaBut8T8VMK1HHIxdYeQp Am1Gly5My5GXaZlqPtlZSSId8Qqn+z2VNCrAWYHCQDjeb0EU3t+7qAQIu/Xt6RzTnnVL gHJg== X-Forwarded-Encrypted: i=1; AJvYcCVwdIbH8bgbuQ4eAe5tAs28G7MOKo+xbmPWNf1C6iVBE0pRiGyfQP22MPTPkbJGMF2eWvnF/p0Sr0On8TKZWJS0uKo= X-Gm-Message-State: AOJu0Yyp7w0TI7bVNAo0o4XTP6y0G6CHkJ4XCWeTF2je7jIQwSwd1jBx o5pJDhg9Vd29HPz4bq2pEFexPGGpLnveVpJ17R59Oz+uDlTCBX8XSrVjRBr4D4c= X-Google-Smtp-Source: AGHT+IEyUReT/k6LJnKcktKQV3wXgSN/KWZ97Vz9yLFBdXAq+5mOndsoGpnTEJQKhqddAuehqON2DA== X-Received: by 2002:a54:4393:0:b0:3c7:203:789 with SMTP id u19-20020a544393000000b003c702030789mr42394oiv.37.1712967935759; Fri, 12 Apr 2024 17:25:35 -0700 (PDT) Received: from soleen.c.googlers.com.com (128.174.85.34.bc.googleusercontent.com. [34.85.174.128]) by smtp.gmail.com with ESMTPSA id wl25-20020a05620a57d900b0078d5fece9a6sm3053490qkn.101.2024.04.12.17.25.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Apr 2024 17:25:35 -0700 (PDT) From: Pasha Tatashin To: akpm@linux-foundation.org, alim.akhtar@samsung.com, alyssa@rosenzweig.io, asahi@lists.linux.dev, baolu.lu@linux.intel.com, bhelgaas@google.com, cgroups@vger.kernel.org, corbet@lwn.net, david@redhat.com, dwmw2@infradead.org, hannes@cmpxchg.org, heiko@sntech.de, iommu@lists.linux.dev, jernej.skrabec@gmail.com, jonathanh@nvidia.com, joro@8bytes.org, krzysztof.kozlowski@linaro.org, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-rockchip@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-sunxi@lists.linux.dev, linux-tegra@vger.kernel.org, lizefan.x@bytedance.com, marcan@marcan.st, mhiramat@kernel.org, m.szyprowski@samsung.com, pasha.tatashin@soleen.com, paulmck@kernel.org, rdunlap@infradead.org, robin.murphy@arm.com, samuel@sholland.org, suravee.suthikulpanit@amd.com, sven@svenpeter.dev, thierry.reding@gmail.com, tj@kernel.org, tomas.mudrunka@gmail.com, vdumpa@nvidia.com, wens@csie.org, will@kernel.org, yu-cheng.yu@intel.com, rientjes@google.com, bagasdotme@gmail.com, mkoutny@suse.com Subject: [PATCH v6 11/11] iommu: account IOMMU allocated memory Date: Sat, 13 Apr 2024 00:25:22 +0000 Message-ID: <20240413002522.1101315-12-pasha.tatashin@soleen.com> X-Mailer: git-send-email 2.44.0.683.g7961c838ac-goog In-Reply-To: <20240413002522.1101315-1-pasha.tatashin@soleen.com> References: <20240413002522.1101315-1-pasha.tatashin@soleen.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: B82F880008 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: d81ifk58tcwx5qnpc6kstey7z8hfmbph X-HE-Tag: 1712967936-759359 X-HE-Meta: U2FsdGVkX19aLYpiiAjnhZcUrU8klDbsTSzfsGuVp7+zJJmTfZZ9bpstbMQWhnu7nFUdnjJR5C84Q4I7VkY0oQ7PhDGyOu3A2txUE/YenFeKWtfMewUjm8mFq/C/fyq3DKNITw+Z3tbEh4itgUr5J1b35/cngBvlr79vfbVJpx2M9wY+CGy0nEKcfkNBsh3lFswzijivLrIGWQ8oYy3PMXd8/TDyk4GZWTCRbx+gnNRvxTR7yd3PWwdGsiklRTSAW7rzSMi1XX2NN67GBUz2IHTnu1YmhREZkN4FiB974ivSKq198mMBYlf1fGHx87XlI0vYyB7ryUZuxXXyhdy9fuT2+uwIKArbJHOMe7N0CZFBCdiFRM1+KH+Scgwq4tHHzhs5PEXeG+w8jh45j6i5hOZX39LhCC1GDCSpoUjt8IIDsk+eJyplYeB3KT5UV2GnZIqWsgHmCv9Y4vAROf8uo3iVnmgTl/RavMNtvv12Apddj2jN8NGzg9jqmqudwbgRdtru5X3WDOMWyxp2SmlKUaIAGXSR2z8MLlHAyIUy6nbzkG2lehwLA88oGHo+2ToUefi5oETQror0NAEADG14n7UyDQTADTOqk0c+JWGm3GYxAgiJrC11oj0H3G0ZNJD1xBUlIsYlUEB5GoELDkJSXDH3lz8zeJ+sydZyz//yL8wqcRZKwU58bnx/vZrj+ieZtcqaMmD8SxrwYdLwLqmnlTPtEX0Aag1q5gGOAcTB1Hn1x826pidfxRAQ4iD+c7yzhtzvcW/s+0Jrrz2lgvHeWxcnbUeZPebrxKpTqJRDiINQ1ttC8jwEBRZoIomm+ug6etQj7nC6grgACcmDh137cSxrIsqa4vxW7MPtPtU2+DsBVdq4W3ObHl5p+a5zUp3jGrVQy9cZ18zd0cxiTMONafIJR8loyZdJzwR7QOd/seR1JEOmdAd4guy1NET5FHpIMit21ir8tnylV8+mpVM Izcby8HC 4j0RHP7QbjHdPz1oGqW7Eg0NgMo1g3wnEfsPy58aTqZWembA7R9VaOAN3YiXrCGKALjW7ntQaePMqsdU6e7uVI41DByqJxQZPC/C0jSzA+08K+xufs3AmJ3ebdOZ9efgBkUfaRWvzR0FWq9ep3Mbhdi4HrglXaCcgcK40SfuY9U45JbEFTAtGWAf94Klz9l+7Y0JfpaD7dzIxC4wZ4sa+dX7H6bFWBlS/0qyUER2YxDTJOq/SmWNs6Mw9GsF8m3WNIUDzCMuJsuNzMrdR+56jr54vKhRVRg4wwFWjW5JX9nZIw4JRoKp3l54OngOb5wp0pBCaNS8y1800sHulkT5hm7dF8Py/7QB+0iLLsUYcgd7cC3cuwnrFte2Jpo7fITj7Av0/KU4tNFHdj7vB4svyHWwWnE9IZTZmh5Ej4yraUnVSBSlEiSgpntIjBez1iKERC4Nft+1z096enk6UTXNgv/GNQyK9EBv532HQtzyQd+RktMzxkBy2TBtbFd2CRhf6Mt0hOrbYEcpm8uPzQONs66XSu8ZHIOqO4TRCWf6uTE01PbUH5Wuw7M1N4xfcMS2vwiyT 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: In order to be able to limit the amount of memory that is allocated by IOMMU subsystem, the memory must be accounted. Account IOMMU as part of the secondary pagetables as it was discussed at LPC. The value of SecPageTables now contains mmeory allocation by IOMMU and KVM. There is a difference between GFP_ACCOUNT and what NR_IOMMU_PAGES shows. GFP_ACCOUNT is set only where it makes sense to charge to user processes, i.e. IOMMU Page Tables, but there more IOMMU shared data that should not really be charged to a specific process. Signed-off-by: Pasha Tatashin Acked-by: David Rientjes Tested-by: Bagas Sanjaya --- Documentation/admin-guide/cgroup-v2.rst | 2 +- Documentation/filesystems/proc.rst | 4 ++-- drivers/iommu/iommu-pages.h | 2 ++ include/linux/mmzone.h | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst index 17e6e9565156..15f80fea8df7 100644 --- a/Documentation/admin-guide/cgroup-v2.rst +++ b/Documentation/admin-guide/cgroup-v2.rst @@ -1432,7 +1432,7 @@ PAGE_SIZE multiple when read back. sec_pagetables Amount of memory allocated for secondary page tables, this currently includes KVM mmu allocations on x86 - and arm64. + and arm64 and IOMMU page tables. percpu (npn) Amount of memory used for storing per-cpu kernel diff --git a/Documentation/filesystems/proc.rst b/Documentation/filesystems/proc.rst index c6a6b9df2104..707e39280a9a 100644 --- a/Documentation/filesystems/proc.rst +++ b/Documentation/filesystems/proc.rst @@ -1110,8 +1110,8 @@ KernelStack PageTables Memory consumed by userspace page tables SecPageTables - Memory consumed by secondary page tables, this currently - currently includes KVM mmu allocations on x86 and arm64. + Memory consumed by secondary page tables, this currently includes + KVM mmu and IOMMU allocations on x86 and arm64. NFS_Unstable Always zero. Previous counted pages which had been written to the server, but has not been committed to stable storage. diff --git a/drivers/iommu/iommu-pages.h b/drivers/iommu/iommu-pages.h index 1264b0f6b6c3..82ebf0033081 100644 --- a/drivers/iommu/iommu-pages.h +++ b/drivers/iommu/iommu-pages.h @@ -30,6 +30,7 @@ static inline void __iommu_alloc_account(struct page *page, int order) const long pgcnt = 1l << order; mod_node_page_state(page_pgdat(page), NR_IOMMU_PAGES, pgcnt); + mod_lruvec_page_state(page, NR_SECONDARY_PAGETABLE, pgcnt); } /** @@ -42,6 +43,7 @@ static inline void __iommu_free_account(struct page *page, int order) const long pgcnt = 1l << order; mod_node_page_state(page_pgdat(page), NR_IOMMU_PAGES, -pgcnt); + mod_lruvec_page_state(page, NR_SECONDARY_PAGETABLE, -pgcnt); } /** diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index be17195f6f86..8f9c9590a42c 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -205,7 +205,7 @@ enum node_stat_item { NR_KERNEL_SCS_KB, /* measured in KiB */ #endif NR_PAGETABLE, /* used for pagetables */ - NR_SECONDARY_PAGETABLE, /* secondary pagetables, e.g. KVM pagetables */ + NR_SECONDARY_PAGETABLE, /* secondary pagetables, KVM & IOMMU */ #ifdef CONFIG_IOMMU_SUPPORT NR_IOMMU_PAGES, /* # of pages allocated by IOMMU */ #endif -- 2.44.0.683.g7961c838ac-goog