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 5D656C0218B for ; Thu, 23 Jan 2025 19:55:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A26CD280007; Thu, 23 Jan 2025 14:55:31 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9D6726B009C; Thu, 23 Jan 2025 14:55:31 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8C510280007; Thu, 23 Jan 2025 14:55:31 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 6DA906B009B for ; Thu, 23 Jan 2025 14:55:31 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id E63B7160541 for ; Thu, 23 Jan 2025 19:55:30 +0000 (UTC) X-FDA: 83039771220.28.80F32AD Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf09.hostedemail.com (Postfix) with ESMTP id 8B70F140008 for ; Thu, 23 Jan 2025 19:55:28 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=Blf7xPzL; spf=none (imf09.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=1737662129; 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: references:dkim-signature; bh=rKB6RsfhGqQLabdpnPnmcU9ZAb1rSKHiE7x1R8JvBmA=; b=7TLI6df8rGvqExX60b1UTTqXpIKukIxf0z/J+JLS3RY3gRarXp8uicsYK6XnnQzsd+Wr4Q nK3m3Fk1J8LZafRLcjBFI3gInOYeN1uuOu81ShWUXmD9daQUtqVH48duev+UkLZUbljrOi hMwVDYo3ga0b1DkmNy63BPj0DFsDnsY= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=Blf7xPzL; spf=none (imf09.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=1737662129; a=rsa-sha256; cv=none; b=PdI6IoImg0/mk9EJVzpy+0y8PKDUVb0KSPh5+WQEV0RWj3sl2fa/GJZTfhasbcbeD8c2rH j4VLW759IEZu13+G9dDr+iUHIXsVpj8sb7IPrb2+2t2SGHbEzEAvmeY9daByZV4LSqj4AR MghKLMHjvU7eOCnWhcTzrwduxN892vk= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Type:MIME-Version:Message-ID: Subject:Cc:To:From:Date:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:In-Reply-To:References; bh=rKB6RsfhGqQLabdpnPnmcU9ZAb1rSKHiE7x1R8JvBmA=; b=Blf7xPzLk/ba6lmow/Qur0o0xz /3GcsKgysVLGp3B+xpvQbs22tBYZff47n4KsnTynYZp7WfKnQU9QGqugMXStp/LPtyeYKrVIdmMMN 1tJNViPiNZbDALBdpRgPbUgvAOmMIFjkRw/pa+QZjg5OC5632tWhZ7j2tR9534nCCo+yYJtat+esr oimtqTy9dtmTDvWzSE8ayjQeb/P/Kxg9nn+SLJBKqvgcL8uFZEdX0qt8EqL8Wk5CRng12DjHaXv6J DKXaq6DZrCNYfpSFGAZgRtGo5gDrNL3sZpfOceGLDupL8RUagey05On3OtC7xD+PF2jVUfoib4I58 SWEcPNXw==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tb3IS-0000000ARS0-3cvk; Thu, 23 Jan 2025 19:55:24 +0000 Date: Thu, 23 Jan 2025 19:55:24 +0000 From: Matthew Wilcox To: linux-mm@kvack.org Cc: Joonsoo Kim , linux-fsdevel@vger.kernel.org Subject: page_ref tracepoints Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 8B70F140008 X-Stat-Signature: 3abezr9hfis6s8cc5mg8mgfuaqrrhy34 X-HE-Tag: 1737662128-714483 X-HE-Meta: U2FsdGVkX1+eJUSz6kNA25Zj52OUVkZ+FlbTPlwAsnKjUscHEf3PsnucpMPsJMg1ejXx32JxK1byEty60bHUFjCAVvcRP0TwZmRWcuUmer1luL9E/MO9kbhBky45S2pkcNhVy5MVpjAen3KufQbadGxYKIUENSiq1Ff+a7+QWx09gBLdORSiOXbdZHL/sdJpi6NdtiJHmeW7j/jFi3B3YFFTpQaoZTJMn4wIVMlFk8PnjeTI6McL+RV6qruYAuwpNX+c3eCA8MoJtQ9ZdMIU4EyVhturVNCStRANVEAgsBEMcER/+2HeAS2NRD9J+t4vvNCP2z9aKMDP4/LH2ekrAzjq4za+pwz4IvwKnrLT6vgk9a+5u5ESFNpT4lTN9lKvRqlLMcEeU4MQuMbyUnOW1zl3ZknHuXQETa5Nj83+i8j50ZZ6zqXrDWl1ms7Md4ZSEZk3ibFybeBJwyqyXQkc9qxu7Ckz26/5iXEqZ6+wDm8ko64OX+ZOdnn0J4/0lp/LHPtKTzte1lWkkufxbaDXxWmQvpghXVMPzTxzvQctberkVhd1p6Mmc2P1JbCN6cPi1vc1wG6fzZvvnrQLDM+ZG5P31fqxdghSP1mjUWlszZ8PafPEuNwYXQaJtUCI4hrCgMjNuMFBlhc0bF7NUwaZoNMgBaTbsw11hQZlPvfSTsgyrcFFsBz2kLMFkQ0xoJ4ZUeOOvvItitYw7z9YIK7qxF5s2VurPL88dbSUFUnuLVH1xIiT6ZwvEvtannsBeoWUEXO0mO6PZdR2IK3ayXQafAu2cg6L9Q+9xp4seatvieGqHLF6bB+4J/7N9iQgDdlYJXreG7KKDteVuYwyUljC0tsTJP2UfquDKm0SYkAl0S19gvr3615Ad0ol7wmT5g/vAXqgBBg+oXMxQuISjlZEV5KEPwGkE85enl4koL26RfT2nVCri9AdniVOZKfqX2zBqZSO3K0SDsGV+TsNU1r y9Fwki5C 6LsoVuZiFjNu82ldq1cOt0GZmM9XdejQaDm1/bt1Kt/4OvytbylOW7XblJMvjStSmFg+2m0f0nFPnUCYs7IbY91Pty7IKRqzvaOuAjsUoJD3TTFMH2WYQX6hqTMyXWevp8vxkDa/AcRo7e2KCtnvmaVtlhChJrSxszv2eirZxnzTuRB8K26zIKWyKfEFeCe/mQIPY2BHXF0wiWkRqiONSUbf0qBoFOR+a3UgqUwKkQQiq0oP+RXHHFsc9NgX24naIOUsYTeGjSfK2rHGCKLeu+HJ4HWCx2AL0tH8/dhKhpAPPr1+ziEykT3HRdYCgGkOaRkjZ 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: The page reference count tracepoints currently look like this: __entry->pfn = page_to_pfn(page); __entry->flags = page->flags; __entry->count = page_ref_count(page); __entry->mapcount = atomic_read(&page->_mapcount); __entry->mapping = page->mapping; __entry->mt = get_pageblock_migratetype(page); TP_printk("pfn=0x%lx flags=%s count=%d mapcount=%d mapping=%p mt=%d val=%d", Soon, pages will not have a ->mapping, nor a ->mapcount [1]. But they will still have a refcount, at least for now. put_page() will move out of line and look something like this: void put_page(struct page *page) { unsigned long memdesc = page->memdesc; if (memdesc_is_folio(memdesc)) return folio_put(memdesc_folio(memdesc)); BUG_ON(memdesc_is_slab(memdesc)); ... handle other memdesc types here ... if (memdesc_is_compound_head(memdesc)) page = memdesc_head_page(memdesc); if (put_page_testzero(page)) __put_page(page); } What I'm thinking is: - Define a set of folio_ref_* tracepoints which dump exactly the same info as page_ref does today - Remove mapping & mapcount from page_ref_* functions. Other ideas? I don't use these tracepoints myself; they generate far too much data to be useful to me. [1] In case you missed it, https://lore.kernel.org/linux-mm/Z37pxbkHPbLYnDKn@casper.infradead.org/