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=-11.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable 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 B0B36C433E1 for ; Sat, 11 Jul 2020 01:32:54 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 724E82075F for ; Sat, 11 Jul 2020 01:32:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=nvidia.com header.i=@nvidia.com header.b="qijBUqfr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 724E82075F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nvidia.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id EF6BF8D0002; Fri, 10 Jul 2020 21:32:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EA6838D0001; Fri, 10 Jul 2020 21:32:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DBB7A8D0002; Fri, 10 Jul 2020 21:32:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0189.hostedemail.com [216.40.44.189]) by kanga.kvack.org (Postfix) with ESMTP id C7D358D0001 for ; Fri, 10 Jul 2020 21:32:53 -0400 (EDT) Received: from smtpin30.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 75BB645C1 for ; Sat, 11 Jul 2020 01:32:53 +0000 (UTC) X-FDA: 77024071026.30.bed07_100c9c426ed3 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin30.hostedemail.com (Postfix) with ESMTP id 481D9180B3C8E for ; Sat, 11 Jul 2020 01:32:53 +0000 (UTC) X-HE-Tag: bed07_100c9c426ed3 X-Filterd-Recvd-Size: 5338 Received: from hqnvemgate26.nvidia.com (hqnvemgate26.nvidia.com [216.228.121.65]) by imf11.hostedemail.com (Postfix) with ESMTP for ; Sat, 11 Jul 2020 01:32:52 +0000 (UTC) Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate26.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Fri, 10 Jul 2020 18:32:38 -0700 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Fri, 10 Jul 2020 18:32:51 -0700 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Fri, 10 Jul 2020 18:32:51 -0700 Received: from [10.2.51.208] (10.124.1.5) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Sat, 11 Jul 2020 01:32:50 +0000 Subject: Re: [PATCH v2 1/6] mm: Handle page->mapping better in dump_page From: John Hubbard To: "Matthew Wilcox (Oracle)" , CC: Andrew Morton , Vlastimil Babka , "Kirill A. Shutemov" , William Kucharski , Mike Rapoport References: <20200709202117.7216-1-willy@infradead.org> <20200709202117.7216-2-willy@infradead.org> <15cff11a-6762-8a6a-3f0e-dd227280cd6f@nvidia.com> Message-ID: Date: Fri, 10 Jul 2020 18:32:50 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <15cff11a-6762-8a6a-3f0e-dd227280cd6f@nvidia.com> X-Originating-IP: [10.124.1.5] X-ClientProxiedBy: HQMAIL101.nvidia.com (172.20.187.10) To HQMAIL107.nvidia.com (172.20.187.13) Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1594431158; bh=wMlpnYj1FVUTu/v0G7TOn+6elPWscLE47OKBalE3NR4=; h=X-PGP-Universal:Subject:From:To:CC:References:Message-ID:Date: User-Agent:MIME-Version:In-Reply-To:X-Originating-IP: X-ClientProxiedBy:Content-Type:Content-Language: Content-Transfer-Encoding; b=qijBUqfroA8HuV+DTzViaz07EJGg5F5wal10Tz4Mf7IgpHKOBlX2wKuZdIrYAvvoq IF5KY8MVHJq8OIsNKIaVMMkLwlQXzQVWr2LRogq7KEBfVcoILjj7VOovGUBJvSrU1v r92cZbUIj5sheWTOe+a7G/EFu6XRefTnyrpjNJ+UdEO6PEsqM8HFPl4d/1vNxAY/fk LsCh+o51F1SMHEifATm+oD6bNEpoa3hAv3QhHR32ofz0DkMQ49rOHPLz/1LSQK94fo iRPvNDxPXLCGf7FKr6ydOQMk0CrQ5keYA+Fz0YHotFYhzq3alPLdd88HisVJKckVL1 WiW2oDUr4j+IQ== X-Rspamd-Queue-Id: 481D9180B3C8E X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam05 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 2020-07-10 18:30, John Hubbard wrote: > On 2020-07-09 13:21, Matthew Wilcox (Oracle) wrote: >> If we can't call page_mapping() to get the page mapping, handle the >> anon/ksm/movable bits correctly. >=20 > Hi Matthew, >=20 > I see why you did this, as otherwise the new printing won't work. Oh, and I forget to add: my only comment was just a documentation suggestion, not critical at all, and so: Reviewed-by: John Hubbard thanks, --=20 John Hubbard NVIDIA >=20 >> >> Signed-off-by: Matthew Wilcox (Oracle) >> --- >> =C2=A0 mm/debug.c | 7 ++++++- >> =C2=A0 1 file changed, 6 insertions(+), 1 deletion(-) >> >> diff --git a/mm/debug.c b/mm/debug.c >> index 4f376514744d..e5de63406b59 100644 >> --- a/mm/debug.c >> +++ b/mm/debug.c >> @@ -70,7 +70,12 @@ void __dump_page(struct page *page, const char *reaso= n) >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (page < head || (page >=3D head + MAX_= ORDER_NR_PAGES)) { >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Corrupt page, = cannot call page_mapping */ >=20 > It's tricky to step lightly through the debris of corrupted page > pointer here, but how about this updated comment, to replace the one-line= r > above: >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * Corrupt page, so we c= annot call page_mapping. Instead, do a > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * safe subset of the st= eps that page_mapping() does. Caution: > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * this will be misleadi= ng for tail pages, PageSwapCache pages, > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * and potentially other= situations. (See the page_mapping() > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * implementation for wh= at's missing here.) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 */ >=20 >=20 >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mapping =3D page->mapping; >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned long tmp =3D (unsig= ned long)page->mapping; >> + >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (tmp & PAGE_MAPPING_ANON) >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mapp= ing =3D NULL; >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 else >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mapp= ing =3D (void *)(tmp & ~PAGE_MAPPING_FLAGS); >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 head =3D page; >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 compound =3D fals= e; >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } else { >> >=20