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 X-Spam-Level: X-Spam-Status: No, score=-0.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3103AC433E0 for ; Mon, 25 May 2020 15:33:19 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id D71162071A for ; Mon, 25 May 2020 15:33:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="p4+E/Hse" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D71162071A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 794B18004C; Mon, 25 May 2020 11:33:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 746218E0008; Mon, 25 May 2020 11:33:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 65B7A8004C; Mon, 25 May 2020 11:33:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0225.hostedemail.com [216.40.44.225]) by kanga.kvack.org (Postfix) with ESMTP id 518FE8E0008 for ; Mon, 25 May 2020 11:33:18 -0400 (EDT) Received: from smtpin28.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 0F5698245571 for ; Mon, 25 May 2020 15:33:18 +0000 (UTC) X-FDA: 76855635276.28.wing94_74170dbc3d750 X-HE-Tag: wing94_74170dbc3d750 X-Filterd-Recvd-Size: 3093 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf42.hostedemail.com (Postfix) with ESMTP for ; Mon, 25 May 2020 15:33:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.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=KJaDHPPz3lTydc/Mf8t2Wq2qJfQbT/hZX56yF4I1VI0=; b=p4+E/Hse0321y64/36UuJ2Qfs6 Gul+xxNp5aJduaZ1PfZNM7gTIZ0t0rr3gwpCZsfrh0ytNiwMA75G5TDk+cIJY9tNoNeXGQtJFFMup knIA8v1zC3tUEqafZQmNbpSMuACX2Sq6rw8krU5ByzLLwQGK+a+fH8dmZFGaVYRYKUscUAnJ3Kagl u7wXK0Lp6ZVPmsbOINIzof+ztfnlI7CcYNS3giFYq6YuRQUxaZGb2Y4vTbg7im8KArXPdi0yZWet7 VMBZ+G5jWafwo1yJ5UkkeK+3LCe5hknIglHaw8y2vW9zN+w6q2Hgz0+TXUL14LHt1dLkaoS4sUHXU C5Zt8M9g==; Received: from willy by bombadil.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1jdF6J-0000se-SQ; Mon, 25 May 2020 15:33:15 +0000 Date: Mon, 25 May 2020 08:33:15 -0700 From: Matthew Wilcox To: Konstantin Khlebnikov Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , Vlastimil Babka , "Kirill A. Shutemov" Subject: Re: [PATCH] mm: dump_page: add debugfs file for dumping page state by pfn Message-ID: <20200525153315.GC17206@bombadil.infradead.org> References: <159041635119.987025.7321864888027213705.stgit@buzz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <159041635119.987025.7321864888027213705.stgit@buzz> 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 Mon, May 25, 2020 at 05:19:11PM +0300, Konstantin Khlebnikov wrote: > Tool 'page-types' could list pages mapped by process or file cache pages, > but it shows only limited amount of state exported via procfs. > > Let's employ existing helper dump_page() to reach remaining information: > writing pfn into /sys/kernel/debug/dump_page dumps state into kernel log. > > # echo 0x37c43c > /sys/kernel/debug/dump_page > # dmesg | tail -6 > page:ffffcb0b0df10f00 refcount:1 mapcount:0 mapping:000000007755d3d9 index:0x30 > 0xffffffffae4239e0 name:"libGeoIP.so.1.6.9" > flags: 0x200000000020014(uptodate|lru|mappedtodisk) > raw: 0200000000020014 ffffcb0b187fd288 ffffcb0b189e6248 ffff9528a04afe10 > raw: 0000000000000030 0000000000000000 00000001ffffffff 0000000000000000 > page dumped because: debugfs request This makes me deeply uncomfortable. We're using %px, and %lx (for the 'raw' lines) so we actually get to see kernel addresses. We've rationalised this in the past as being acceptable because you're already in an "assert triggered" kind of situation. Now you're adding a way for any process with CAP_SYS_ADMIN to get kernel addresses dumped into the syslog. I think we need a different function for this, or we need to re-audit dump_page() for exposing kernel pointers, and not expose the raw data in struct page.