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 D6FD0C4167B for ; Thu, 9 Nov 2023 14:00:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4ACC480033; Thu, 9 Nov 2023 09:00:14 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 45E8A8D0073; Thu, 9 Nov 2023 09:00:14 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3253F80033; Thu, 9 Nov 2023 09:00:14 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 21B158D0073 for ; Thu, 9 Nov 2023 09:00:14 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id CC165A0831 for ; Thu, 9 Nov 2023 14:00:13 +0000 (UTC) X-FDA: 81438575106.05.0DC4327 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf28.hostedemail.com (Postfix) with ESMTP id 6CD47C003C for ; Thu, 9 Nov 2023 14:00:10 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=EgnRhzm5; dmarc=none; spf=none (imf28.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699538411; 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=cJx1aXyy4QVSvWKbJmU/0WcSwBWfkXB+0pmnNSq22MM=; b=SXwtkEinFXyG7Beb8yennzJJgQwou/O7BUMljv4JWxhpfycdeQngUTldum3BlpCvIF4ycS il1/JtpGFxHi6QUF1K3xhuXDFqKJIVLjzHn2qu1ahi4y7yKlKmvFEM2WelVd2+Zx8nchDI PO56qf4CLNip5J8RkxScUU4tO0iHPYc= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=EgnRhzm5; dmarc=none; spf=none (imf28.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699538411; a=rsa-sha256; cv=none; b=eYviUly3V052+2wyWAhVFPjlhUfEGfh3GT9Xu2O01h1qCJ1hXgqGRDd1hfe2Im0q9UjwWL Jjlyem5j5QUR3AHUJabhYc+gBrW+UkOOTp2x+T1Mv4zKq+tDtaj899HwVULhRuSbqiNrpG M2KAEct3hPrcK8jOgscPgmNsL8lnpj0= 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=cJx1aXyy4QVSvWKbJmU/0WcSwBWfkXB+0pmnNSq22MM=; b=EgnRhzm5BxEswLLtihvLUn73y1 G2xofd5AR0y9nCllY9+WJp8QpNUt7bI6R/Qmd2E9tqYs1gssx9tqVF5Fz4bsvq7+/JH/uwH85dZPl SZK5ppHLbennavE0zzUcpjBarbVIpc/PFaRAXjryjUpmv6qVHc0DpRWUuKWAUlfP533/y1huYksUV kSRsR2vlysMO3s2Rc54+mgrXA+CoCJtX3rgar80wYAP06bHg9gR6O6PrmtbvXkR7LU+gITkUq50P4 U8h/ljhxZ9Rw5I1/8O88fskfy29ejkT3mwlq5JR1R7QpkVNMnDFxKGaAejULtLy6Ve0WnmgIDY644 LZpPxRkQ==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1r15ZR-007cAw-J9; Thu, 09 Nov 2023 13:59:45 +0000 Date: Thu, 9 Nov 2023 13:59:45 +0000 From: Matthew Wilcox To: Jeff Xie Cc: akpm@linux-foundation.org, iamjoonsoo.kim@lge.com, vbabka@suse.cz, cl@linux.com, penberg@kernel.org, rientjes@google.com, roman.gushchin@linux.dev, 42.hyeyoo@gmail.com, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, chensong_2000@189.cn, xiehuan09@gmail.com Subject: Re: [RFC][PATCH 1/4] mm, page_owner: add folio allocate post callback for struct page_owner to make the owner clearer Message-ID: References: <20231109032521.392217-1-jeff.xie@linux.dev> <20231109032521.392217-2-jeff.xie@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231109032521.392217-2-jeff.xie@linux.dev> X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 6CD47C003C X-Stat-Signature: wzjpcm3zoneqtd5bjozwg61n7hnhc9if X-HE-Tag: 1699538410-199283 X-HE-Meta: U2FsdGVkX18mOGQI+UFr7XVXV+bLIVMtaGg7zI0l0eP45iBkdPuJGVpWn/z4xB+IQTOAfT8rE0PP2BgQMRy/G0KLL/4DLffFEgM56tSrtlAJaUxCKhyg5M/O29tLdwvOqsxE540DIczA3JL/e/JjNgob+2PxlsBB0MYCXA+o9qUcTo/F61LYfIStUN+6Xm5fxG8BzHOoEaGoW375TnURXQlnhSWtiOOLnUxWDJ5QjAogpCzOcbgG04scvBdgNMpcMoNm4f0uGQ57GsemxdEppLWZ7DpNmajoswpAYln/b6w4LRsSbMmkyeKxi2AIPipCStgSGmZQZ/AciW61gA70AZxZN+0w+C219raIBpfQopfRf+GSWj/vA9gQQxw+XHLF2tTXC48OIT0w7SSW6ONQ3U++VCoKVNCOIZqI6A+JnY3P2A2bf/gPOogYoS+FCEaNwi2zjdwSRP4re4r8xZ07zdUGfJ7ox5YF9uPBOT5RhNdN5IUfnO6HQFIRssvVC4Fv/zPIvc8dn+tOe388TnA9Wd25VdumfXxE/yHoFagQj/yGwmV4DXEB+E2tufcIgZZkgVBdPPKku33Vw0M/tVdJZJse4JWvo2bDm3FtJstCqRRlh5J3tPrk8QNF02hTTbrZntzpBjOyWX/glexM4t7UrNBcXirrx8Wef5dYUxvi1x27YK4r709zRBU2IOydp0I7RB8xOrQQ/A2JS+NnIXPhiiiWXM+7RMU6sNF5vwyW3CdacdweQeGLB3d7ccaPJbgXQGyAbGkrro//T5NdhEhgCkapZvTPlu+eK+Av0RFAZyUYbquxzSomn8j5benTz3M6rB/+L2NAcTcbG0AETAf6qBGAu/tlIaPuxDwvct4g0WXz4PuJm4Q5/KmxlMKBe0cRDPZKHbrZvlLYHBdJnF/T3yJoAkiQL83ZkW1eaZ0iSlKUIvGjLbUcnGQu+siAPxYw6PVUd1vLGzA8oTsBpYo Tx0T5l0N GmU++BrCNaB+iqXiY4hDNJm9EzY6ndr/UFrfbWyvNifkm77gFE9jTbhJiTfV7u1IG9mJAPql/hT2R3uncE8YHunihXMFYsN8b2J9JgtczpRgIfUHU2VU1/HcPH7AYmIdPChQ2ZMu7lSHdnR0Ev6Hj2bMXZM+6OfRu+7MquPOg1TWy34Fztb8ieIzWOxIHnRnQQAU4yd5xOkpGa2rrWzTY6Z8H+Qp1jrxEqENMKlRGeS8WWCR3Ibwz7+XPSxzJ2Pq1cL2w 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: On Thu, Nov 09, 2023 at 11:25:18AM +0800, Jeff Xie wrote: > adding a callback function in the struct page_owner to let the slab layer or the > anon/file handler layer or any other memory-allocated layers to implement what > they would like to tell. There's no need to add a callback. We can tell what a folio is. > + if (page_owner->folio_alloc_post_page_owner) { > + rcu_read_lock(); > + tsk = find_task_by_pid_ns(page_owner->pid, &init_pid_ns); > + rcu_read_unlock(); > + ret += page_owner->folio_alloc_post_page_owner(page_folio(page), tsk, page_owner->data, > + kbuf + ret, count - ret); > + } else > + ret += scnprintf(kbuf + ret, count - ret, "OTHER_PAGE\n"); if (folio_test_slab(folio)) ret += slab_page_owner_info(folio, kbuf + ret, count - ret); else if (folio_test_anon(folio)) ret += anon_page_owner_info(folio, kbuf + ret, count - ret); else if (folio_test_movable(folio)) ret += null_page_owner_info(folio, kbuf + ret, count - ret); else if (folio->mapping) ret += file_page_owner_info(folio, kbuf + ret, count - ret); else ret += null_page_owner_info(folio, kbuf + ret, count - ret); In this scenario, I have the anon handling ksm pages, but if that's not desirable, we can add else if (folio_test_ksm(folio)) ret += ksm_page_owner_info(folio, kbuf + ret, count - ret); right before the folio_test_anon() clause