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 9B656CDB47E for ; Wed, 18 Oct 2023 14:09:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D7A2880015; Wed, 18 Oct 2023 10:09:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D022C6B01A9; Wed, 18 Oct 2023 10:09:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B7C9580015; Wed, 18 Oct 2023 10:09:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id A89BE6B01A8 for ; Wed, 18 Oct 2023 10:09:22 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 845C71CBB72 for ; Wed, 18 Oct 2023 14:09:22 +0000 (UTC) X-FDA: 81358764564.29.B095B7D Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf20.hostedemail.com (Postfix) with ESMTP id 468411C002B for ; Wed, 18 Oct 2023 14:09:20 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=A82ROViW; spf=none (imf20.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1697638160; a=rsa-sha256; cv=none; b=8oQW4WFE1kuwI8R9RcLiWPDVsPhJTEpzgupf2AII/zvuQsJK8WyF/0ijs7FBHL3NEqgWxd e+49BzOo8VzFl9Rla7X1MyfhW4fX1YwY6tXpssbAqeiNT1lpvLshesAHTUGI2OPT1EfyI3 dWGecVmyTOgemBMCXRNXm8fBrOQUIDI= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=A82ROViW; spf=none (imf20.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1697638160; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=rpuNbd94xDpC5yviFqSYGb67pMTnatBYUkMFHMRu+WQ=; b=K033EBq1srgtDlRL0+KDjoKVwNNFql8ejSfH0DXHlF7gztBf1nUWqdkSwLO+KR0vXfYfIh Qjt0T0clFX7NG1SpOW3yzm0l4YfkGBlzl26cOsTsaCKnyFsETxJR7dqz1+a4G67lUIMi6l rCKYS50hSIX/P6IH5+eiZ02Cnk+6TlA= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=rpuNbd94xDpC5yviFqSYGb67pMTnatBYUkMFHMRu+WQ=; b=A82ROViWDiEH/4M8z9imm3e3/s x3RZpyqNnJVjq0TTDrFUnQWW0cApFYG2OBqbUdhaJ5dv7tI4kZtXZdv7Q6uMron4TrtFc4csYr81K IzWKOwYfwxQzxuVeilxnF09krQw/KDNK4OnstLrWDgoIDPAi3seMj2BV9TAubjJq+caaUBxekrS4g 67ih3Qc27mQsMD/D5mIT185qkJW7k8Ij5dS2tQVLevrYTmfE24at7lH9r05KP3FBjEeJ6yY446GpW UZ2bC6OY1SIFkny/wEnPNHrpDc83dWl0BYXOQ4xtfDuLYKahDDeUqGRaS5DR2VaQn3L/jhjGQZbDX gP/2Gl+g==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1qt7Dg-001ICr-G8; Wed, 18 Oct 2023 14:08:20 +0000 Date: Wed, 18 Oct 2023 15:08:20 +0100 From: Matthew Wilcox To: Sourav Panda Cc: corbet@lwn.net, gregkh@linuxfoundation.org, rafael@kernel.org, akpm@linux-foundation.org, mike.kravetz@oracle.com, muchun.song@linux.dev, rppt@kernel.org, david@redhat.com, rdunlap@infradead.org, chenlinxuan@uniontech.com, yang.yang29@zte.com.cn, tomas.mudrunka@gmail.com, bhelgaas@google.com, ivan@cloudflare.com, pasha.tatashin@soleen.com, yosryahmed@google.com, hannes@cmpxchg.org, shakeelb@google.com, kirill.shutemov@linux.intel.com, wangkefeng.wang@huawei.com, adobriyan@gmail.com, vbabka@suse.cz, Liam.Howlett@oracle.com, surenb@google.com, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v2 1/1] mm: report per-page metadata information Message-ID: References: <20231018005548.3505662-1-souravpanda@google.com> <20231018005548.3505662-2-souravpanda@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231018005548.3505662-2-souravpanda@google.com> X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 468411C002B X-Stat-Signature: 9qt5z8aiayxwdr57tw43yt3747eptbx7 X-Rspam-User: X-HE-Tag: 1697638160-232313 X-HE-Meta: U2FsdGVkX19hCHZAcFhuJGlePXMSk9ds4deFvmfMjuxy2kWeYIXjO7LSOMSzM3eXA2GfGHI6Wwz8russDkTSYhx1vERfViWL4PpnhqyNijdqgMR0fmzPs9L4H298iwUIF44hqimAZMaH50sa3YzB7b5ST69wgjhbdBziTuQjqEacq7N9jK7UceG3mqPy8aMC2vW3dIPrbyAQmZeZPYgG1MTkkgpxOgApTBPc5N3mxT3VforoERhupEgrkBlWYbD2WGG3vz+1z0I0FQ2Mn3iSohfjI5eX8ZU2BJ37KI+Kq9GZSnP/dk3KdKMkl7F2u7cEALvrwQe1kxBU+//ZxJM0aAn2Wsp4u8n6LUq6lOLmikazVIWmOoPL5meo5dcHeFXSg1/IA5GH6kCqwHG7Z46uGCMoRYigMZYIKmN3tutqose11EdIb0m926tOffnzBFwFDEgjlQna1nAagY9ptUAgC+LAcMCyanR9Ydo/oox+gIDMlQQybJLYkAClmAY+GHly4sACPVyWLKSD7bln8S0OK3U+WmFp4h60z5cCasNNmN1bAtG9JjwZtluDojw6zJ48UYU1DoNh0Pg4li6edfm5P5DfGNlOozE1IWqZ+xC2Hnud3GZ5jiFu/PU+SJDM+rCoRtBtxXoHJoWSJP3xoP+fDx7cM0cM/7mhnVkMgVo5VocszU+LQkaGM5bqCtqaDLRoslOP6gMB7KRGdpSuteDTltMa4ruE8MPmfoKw5wFHcLaP/4x3kX08mu1YC4xvGGPM+OvjeMzFX8TwekDDuuqnqkrzxD7bL99kOvRjhfB2PK80OgFuB+En9zrLPINR/EDfqQ9l8uXIf1eRgBFxYgkKz0XjUel5GlxlSZY2rWCQuGkJ9IUosivSc9cXlO3CMauf3XaiO6jDFYJOQgROpsI5DLnU3Vqu78eFkqPmgTjulFx6+E3O3zYiD5649BVVe4j22ElR/Q2SoO/4w/Z/3m0 R5biXDNQ Mj9QdxlDT9YjZNywa2fRxvhRRsDbS/MjwrBxCUrpWdCGBJgeH2+mrMJRc7JJPyu0dkrIwAhkbZvgeUXyWpYJEqR5XMFvFAn82Y7tCAxBGMD8b1/IgoqQYDuR8n7UvPhs/TvwMHHvIije6XgyOxuDyWBqllU552UJBNDd15GCMGQ+z6HqKIKzS6jp8frOzpA3y/KarZg4h/lEGLfia6X7MB78BMQ== 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: On Tue, Oct 17, 2023 at 05:55:48PM -0700, Sourav Panda wrote: > + mod_node_early_perpage_metadata(pgdat->node_id, > + PAGE_ALIGN(size) >> PAGE_SHIFT); What a curious way of writing DIV_ROUND_UP(size, PAGE_SIZE) (throughout). A quick grep shows about 230 DIV_ROUND_UP and 110 of what you wrote, so it's not something you invented, but DIV_ROUND_UP is clearer. > @@ -303,18 +308,25 @@ static int __meminit init_section_page_ext(unsigned long pfn, int nid) > > static void free_page_ext(void *addr) > { > + size_t table_size; > + struct page *page; > + > + table_size = page_ext_size * PAGES_PER_SECTION; > + > if (is_vmalloc_addr(addr)) { > + page = vmalloc_to_page(addr); > vfree(addr); > } else { > - struct page *page = virt_to_page(addr); > - size_t table_size; > - > - table_size = page_ext_size * PAGES_PER_SECTION; > + page = virt_to_page(addr); > > BUG_ON(PageReserved(page)); > kmemleak_free(addr); > free_pages_exact(addr, table_size); > } > + > + __mod_node_page_state(page_pgdat(page), NR_PAGE_METADATA, > + -1L * (PAGE_ALIGN(table_size) >> PAGE_SHIFT)); This troubles me. We're freeing the memory and then dereferencing the page that was freed. I know that struct pages don't go away when they're freed, and they don't change which node they're allocated to, but it feels wrong. I'd be happier if the page_pgdat() were extracted prior to freeing the memory.