From patchwork Tue Apr 26 05:38:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yosry Ahmed X-Patchwork-Id: 12826479 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C45A3C433EF for ; Tue, 26 Apr 2022 05:40:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Mime-Version: Message-Id:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=1SODY6JH/11UspjUleYS/hffydRsvbpUDuiqSbD4XPA=; b=kwf zzk8+Mkk6uBc8j/qiJKl7FT4ogCrzYH3RuL58o9xvHQp0SXhTaTvK5pHTL0dEyPsgYM07KxB3FIjk 3nJ4xthRdUOizlppuXjFShkXSZTxo19MwH+phqducLJ6ZrkgUiKO2RCLzBsMh05iYOBTdwqLekVaX 7zMy8+4HtFtHRY6uVwO/eRK6j/JP/sGwIM4kpvg62KAUITTnPVpg5SP6TiEshBQfWfjujagPER/CF BPjD6JJ6HiymHRZwGmmxb1gjyMXXI0i+cjJCRkir1DSwzblWLHyCN63X59A8LMXctS/kFmu3Vx/xq +ARBAiUiiqRaox25cz3uKjDkqVQBSAw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1njDv2-00CbeK-LR; Tue, 26 Apr 2022 05:39:24 +0000 Received: from mail-pl1-x64a.google.com ([2607:f8b0:4864:20::64a]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1njDuz-00Cbam-E8 for linux-arm-kernel@lists.infradead.org; Tue, 26 Apr 2022 05:39:22 +0000 Received: by mail-pl1-x64a.google.com with SMTP id u8-20020a170903124800b0015195a5826cso10721567plh.4 for ; Mon, 25 Apr 2022 22:39:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:message-id:mime-version:subject:from:to:cc; bh=wiy4ZFErG6M19mqQHUKpS1yTWJiAAlT4dR/xLvJk6Hw=; b=FnVqBEYT/x+/otkeQ3+MGU8nRgioALOZEJyWRms+DoU60vLvG4knvZ85+k1mr3tVc0 vqArKWu7LcXihZYZOL7dZijR1qW/fUI1ogYdryU7KR30je7tEjpL7SWeqEnnd/Z0l+6p oQzkcbfWngpMAliZPhAsfXTSWCnwz8fWFa74DRSIzlIoZx+NC9CPJeMNUZ3R63A72PJf QZcKxPUm3H1SOIAqby7P9meP48e3oR4Bh8C/ma3u+fJEHhbZdFo9brPFPEbwbLiTho1C Qvh2BmXNRXBqnJccxzxqqdYZqemamQonwCzTKOX5d0cQHIkgbJ7rHfmHl0679wZSmYIx AFng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=wiy4ZFErG6M19mqQHUKpS1yTWJiAAlT4dR/xLvJk6Hw=; b=UpxAURH2LE9RLety8+Ly8JoKexuDHUESABG6L9/XuCDFfefhun1M98tfLeEuNRRS6z HX+Bdg7+4axNhj2+lU2CJjVJj7Aslodr8LZnLs/xPqE0G9N2T1zljG7bjTdLFIIu7Qdw SXc/hNK+xOOSHOzXSY/xzfnVmpZr9VwoF8uOc7c2NbNd355qhd1uRgwkjcifWAcqe6Dv 31IxrgR7+7qYl3c2VgFmriEpgG9A715y4Wsvup+zfteOnMdpsNCkue0OFZtpR60BQxOc grloXq/AG/ik/OcwcuQd7eaicr4Zr+Gp6Dn7hkE6HSgiCg39/qwDiL3dvauH/Z53pt/Y 35Kg== X-Gm-Message-State: AOAM530zDYEJ1oHdigLHxKHD3mOpcrmeOmqV79z7IeuSDZ0c2v+S7vVu 2UrLA0lslHHZuBWxCrMSO6MXl3wn/g98xDVJ X-Google-Smtp-Source: ABdhPJxvg8pZpaAGbW2v0JTDOhNhWaI7b9G2UFmwsQAHLCDtYBjVtAQ+AyjheoLnE1s4SzV5HxUjB6H2aYquwIV1 X-Received: from yosry.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:2327]) (user=yosryahmed job=sendgmr) by 2002:a05:6a00:8c8:b0:4fe:ecb:9b8f with SMTP id s8-20020a056a0008c800b004fe0ecb9b8fmr22623121pfu.55.1650951557634; Mon, 25 Apr 2022 22:39:17 -0700 (PDT) Date: Tue, 26 Apr 2022 05:38:58 +0000 Message-Id: <20220426053904.3684293-1-yosryahmed@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.36.0.rc2.479.g8af0fa9b8e-goog Subject: [PATCH v3 0/6] KVM: mm: count KVM page table pages in memory stats From: Yosry Ahmed To: Sean Christopherson , Huacai Chen , Aleksandar Markovic , Anup Patel , Atish Patra , Paolo Bonzini , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , Andrew Morton , Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , James Morse , Catalin Marinas , Shameer Kolothum , Marc Zyngier , Alexandru Elisei , Suzuki K Poulose Cc: linux-mips@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, cgroups@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, Yosry Ahmed X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220425_223921_500956_187F7A4D X-CRM114-Status: GOOD ( 13.80 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org We keep track of several kernel memory stats (total kernel memory, page tables, stack, vmalloc, etc) on multiple levels (global, per-node, per-memcg, etc). These stats give insights to users to how much memory is used by the kernel and for what purposes. Currently, memory used by kvm for its page tables is not accounted in any of those kernel memory stats. This patch series accounts the memory pages used by KVM for page tables in those stats in a new NR_SECONDARY_PAGETABLE stat. The riscv and mips patches are not tested due to lack of resources. Feel free to test or drop them. Changes in V3: - Added NR_SECONDARY_PAGETABLE instead of piggybacking on NR_PAGETABLE stats. Changes in V2: - Added accounting stats for other archs than x86. - Changed locations in the code where x86 KVM page table stats were accounted based on suggestions from Sean Christopherson. Yosry Ahmed (6): mm: add NR_SECONDARY_PAGETABLE stat KVM: mmu: add a helper to account page table pages used by KVM. KVM: x86/mmu: count KVM page table pages in pagetable stats KVM: arm64/mmu: count KVM page table pages in pagetable stats KVM: riscv/mmu: count KVM page table pages in pagetable stats KVM: mips/mmu: count KVM page table pages in pagetable stats arch/arm64/kernel/image-vars.h | 3 ++ arch/arm64/kvm/hyp/pgtable.c | 50 +++++++++++++++++++++------------- arch/mips/kvm/mips.c | 1 + arch/mips/kvm/mmu.c | 9 +++++- arch/riscv/kvm/mmu.c | 26 +++++++++++++----- arch/x86/kvm/mmu/mmu.c | 16 +++++++++-- arch/x86/kvm/mmu/tdp_mmu.c | 16 +++++++++-- drivers/base/node.c | 2 ++ fs/proc/meminfo.c | 2 ++ include/linux/kvm_host.h | 9 ++++++ include/linux/mmzone.h | 1 + mm/memcontrol.c | 1 + mm/page_alloc.c | 6 +++- mm/vmstat.c | 1 + 14 files changed, 111 insertions(+), 32 deletions(-)