Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp2103734ybe; Tue, 3 Sep 2019 08:03:41 -0700 (PDT) X-Google-Smtp-Source: APXvYqxG1apjQdJtDxbFrQZffntl105kETkRH2GMzeqPSsxCIIsSt3kNAYVMEuP24PkmMN6pvNlE X-Received: by 2002:aa7:8488:: with SMTP id u8mr41665480pfn.229.1567523021081; Tue, 03 Sep 2019 08:03:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567523021; cv=none; d=google.com; s=arc-20160816; b=qt6ML+agDitcgFryHKDhqGIS+lNZ2isyOScp7+v3e5Si+4SoD/3Trqtxi0r4/PdTvi +DuNskwDhd5wPqNczDunB9MttfrYU+FNuD6rmPwNRW5K+LPjzGlz50AohSUaQ3ptAe5D kN4QRD/Q4atdQnkNw4miV7AVsOC8mNVmONi+qoIcOpw7BQzidOGpU3fkC/+z9+tgKWb8 KgUD8pOamJJyWjTj0xc5urrdWDw83HXJkTbu1+xjWf/6/pIF0+b3X/DPowVpvaP+Wva0 zmxg67dweTyMJyv27Fuauwgg2s/n5DnNbeLAi8CEVq871F0Ds2cRtTV1BZpioDs9GDw7 e7VA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=a2fhN1NcP29VAX6Q4kuHnoYPTW0IlOqHifPZstOm4mo=; b=v4s71UDtEyvT07XeVLUm7lG8dIdUQ+nWiqy4FebSqAMyTjAGeBQ+P4Wr3mAXspG0oQ hbHfe50cEU7GoBF54Tg5U+251dJ3kHvZhf0+kRgd9E7y6KPU+HFGIDtOQ9cO9mAEyf5h rv8SAgw5qeJHJBAD6wN0BXWUACNE84ivK5wJQTBz6MTzq4KfH6BCg+jc/RQFkAq/hJzI oTO5IgeHJf8n/Olgl30MKYX1iT6MrOI6U1/OEabxedKpeqtUnZj8h0czz4bVgTFrd0M0 xMfjwpTs6TnZyEFjOgDCgiYtJW2yQcqjPC+FW+otf1h+PZV+bA8ZVIXKL0TqmeEE04g6 cpSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=jKTgxbew; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 73si15235495pgg.72.2019.09.03.08.03.18; Tue, 03 Sep 2019 08:03:41 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=jKTgxbew; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729783AbfICPB7 (ORCPT + 99 others); Tue, 3 Sep 2019 11:01:59 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:37321 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727069AbfICPB7 (ORCPT ); Tue, 3 Sep 2019 11:01:59 -0400 Received: by mail-pg1-f195.google.com with SMTP id d1so9297707pgp.4 for ; Tue, 03 Sep 2019 08:01:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=a2fhN1NcP29VAX6Q4kuHnoYPTW0IlOqHifPZstOm4mo=; b=jKTgxbewf7sPASPHDIRjZy/DSg3ccnPxPhmVM1qw2+3zyIY1XYDZ5fOOV+Je7/21m3 /zKF5xLg2gmAdqSC/V898UGcMHe8vo0jdhWTZPgtUj+4omdGaDQMpZ3rsz2yJjr23hYB VWOBGrtzqY/vAsw1rWOghUctwpPEduxbmy9VqF3hWvqrKcQjlRWpYEzPXKGnu1GIrzvs dP3X5JiFfCiv0SkWuWyA7f/+6J5Z1Gt4/cUXSH+H7NXJi7Pg2eWYRkbsNF5QkBggK6xh 3T8Og5eFyiiSTQzmTPgE3TpO3TTIBa3NbJSq9u0nCtrLFCbWmpJVWeOaKlj/WrA42Fxn LTNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=a2fhN1NcP29VAX6Q4kuHnoYPTW0IlOqHifPZstOm4mo=; b=Y2U0S/Ti4jqvY2mSGP8N/CyA0raGlNI50XhHBuqGUIRViRufEWzZ7rFZzhgHC5IQhl zer0+QnesU3wEPJbQBK7EIghDjnfudeB+4X0Gd11oOHsH1BlUR7Ky1CV6AyXQoRgfDiw LGLDnVLIxPrWeLHiE34ZyDP7oezTyB8M+obMlU2x80742yuo55JVJHZbVo6cnx5akfMF dU6QbCshvgQYoWPYtUgE+ZbWvXVFjyOcp2z/QeWLEAdNWmXBeDJa0n0LAp7SOFKHr5xC 0Vmt7Lmd5A1E2EYJM7QPtlDUDjRAblka2um0gieWJMM69ktvNncKWUj+zNEvPR7HGY0l flTw== X-Gm-Message-State: APjAAAW1eGiBQg5/v1v1/7AgMg2I6XGi0FMIq8rK5RC+3YkeD76oCa8g K6kvzwYA9OHbbT8XGsmUgWsjy94NR7R2Mwqf5KIdTA== X-Received: by 2002:a63:3006:: with SMTP id w6mr30960993pgw.440.1567522917541; Tue, 03 Sep 2019 08:01:57 -0700 (PDT) MIME-Version: 1.0 References: <20190903145536.3390-1-dja@axtens.net> <20190903145536.3390-6-dja@axtens.net> In-Reply-To: <20190903145536.3390-6-dja@axtens.net> From: Andrey Konovalov Date: Tue, 3 Sep 2019 17:01:46 +0200 Message-ID: Subject: Re: [PATCH v7 5/5] kasan debug: track pages allocated for vmalloc shadow To: Daniel Axtens Cc: kasan-dev , Linux Memory Management List , "the arch/x86 maintainers" , Andrey Ryabinin , Alexander Potapenko , Andy Lutomirski , LKML , Mark Rutland , Dmitry Vyukov , Christophe Leroy , PowerPC , gor@linux.ibm.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Sep 3, 2019 at 4:56 PM Daniel Axtens wrote: > > Provide the current number of vmalloc shadow pages in > /sys/kernel/debug/kasan_vmalloc/shadow_pages. Maybe it makes sense to put this into /sys/kernel/debug/kasan/ (without _vmalloc) and name e.g. vmalloc_shadow_pages? In case we want to expose more generic KASAN debugging info later. > > Signed-off-by: Daniel Axtens > > --- > > Merging this is probably overkill, but I leave it to the discretion > of the broader community. > > On v4 (no dynamic freeing), I saw the following approximate figures > on my test VM: > > - fresh boot: 720 > - after test_vmalloc: ~14000 > > With v5 (lazy dynamic freeing): > > - boot: ~490-500 > - running modprobe test_vmalloc pushes the figures up to sometimes > as high as ~14000, but they drop down to ~560 after the test ends. > I'm not sure where the extra sixty pages are from, but running the > test repeately doesn't cause the number to keep growing, so I don't > think we're leaking. > - with vmap_stack, spawning tasks pushes the figure up to ~4200, then > some clearing kicks in and drops it down to previous levels again. > --- > mm/kasan/common.c | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/mm/kasan/common.c b/mm/kasan/common.c > index e33cbab83309..e40854512417 100644 > --- a/mm/kasan/common.c > +++ b/mm/kasan/common.c > @@ -35,6 +35,7 @@ > #include > #include > #include > +#include > > #include > > @@ -750,6 +751,8 @@ core_initcall(kasan_memhotplug_init); > #endif > > #ifdef CONFIG_KASAN_VMALLOC > +static u64 vmalloc_shadow_pages; > + > static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr, > void *unused) > { > @@ -776,6 +779,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr, > if (likely(pte_none(*ptep))) { > set_pte_at(&init_mm, addr, ptep, pte); > page = 0; > + vmalloc_shadow_pages++; > } > spin_unlock(&init_mm.page_table_lock); > if (page) > @@ -829,6 +833,7 @@ static int kasan_depopulate_vmalloc_pte(pte_t *ptep, unsigned long addr, > if (likely(!pte_none(*ptep))) { > pte_clear(&init_mm, addr, ptep); > free_page(page); > + vmalloc_shadow_pages--; > } > spin_unlock(&init_mm.page_table_lock); > > @@ -947,4 +952,25 @@ void kasan_release_vmalloc(unsigned long start, unsigned long end, > (unsigned long)shadow_end); > } > } > + > +static __init int kasan_init_vmalloc_debugfs(void) > +{ > + struct dentry *root, *count; > + > + root = debugfs_create_dir("kasan_vmalloc", NULL); > + if (IS_ERR(root)) { > + if (PTR_ERR(root) == -ENODEV) > + return 0; > + return PTR_ERR(root); > + } > + > + count = debugfs_create_u64("shadow_pages", 0444, root, > + &vmalloc_shadow_pages); > + > + if (IS_ERR(count)) > + return PTR_ERR(root); > + > + return 0; > +} > +late_initcall(kasan_init_vmalloc_debugfs); > #endif > -- > 2.20.1 > > -- > You received this message because you are subscribed to the Google Groups "kasan-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an email to kasan-dev+unsubscribe@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/msgid/kasan-dev/20190903145536.3390-6-dja%40axtens.net.