From patchwork Tue Feb 9 10:56:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yafang Shao X-Patchwork-Id: 12077757 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=-13.5 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham 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 6DF64C433DB for ; Tue, 9 Feb 2021 10:56:44 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id D2F6164E56 for ; Tue, 9 Feb 2021 10:56:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D2F6164E56 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 5649B6B006C; Tue, 9 Feb 2021 05:56:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 53BD16B006E; Tue, 9 Feb 2021 05:56:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 451316B0070; Tue, 9 Feb 2021 05:56:43 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0093.hostedemail.com [216.40.44.93]) by kanga.kvack.org (Postfix) with ESMTP id 2C0B76B006C for ; Tue, 9 Feb 2021 05:56:43 -0500 (EST) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id DD8F9A74B for ; Tue, 9 Feb 2021 10:56:42 +0000 (UTC) X-FDA: 77798426244.14.bear10_59038a727606 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin14.hostedemail.com (Postfix) with ESMTP id BDD161807DD3C for ; Tue, 9 Feb 2021 10:56:42 +0000 (UTC) X-HE-Tag: bear10_59038a727606 X-Filterd-Recvd-Size: 4639 Received: from mail-ot1-f54.google.com (mail-ot1-f54.google.com [209.85.210.54]) by imf08.hostedemail.com (Postfix) with ESMTP for ; Tue, 9 Feb 2021 10:56:42 +0000 (UTC) Received: by mail-ot1-f54.google.com with SMTP id e5so10226297otb.11 for ; Tue, 09 Feb 2021 02:56:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Y+87jDlelvAkmlccbbsaH9fufNQh8avTEY3L9pDsVQ4=; b=kOuKcCAoSI3K+pZ1OOigFzQmL/D1AGodIfTC5qH7C+a17cdSLZ+34W+s58QIpBZBd7 3p6G0oXARZUvPrUXY9oEM50P7StY6h7jW4hsT+6yKaFj5oshU/8SSHS8bcNocWW87FqZ y7VyHxI/NDL5D67ernOa8S2nl582y+xc4aeyAVDbaP95CJG3VWnxleiRmebbXSPqb58O 0hRg5R1oiENyFqG8J0dnBNfyW98qfTvHzEpw0u/K71rD/db3evICvlQaFzUJ17zljxTV 6FBbgr6QjPZTiV9exzfv2j0/PUR14UC8pUYXl5QV53BHEsR4b7P+44FIUBEWLX+wp8M4 C4OQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Y+87jDlelvAkmlccbbsaH9fufNQh8avTEY3L9pDsVQ4=; b=ArCseRzCwZwUqGyYQgCK8OJ4kiH4awbJjAF/voCL3Y79GfAx6LE7eGIP37L/ZcBLRk wB0Y9/hlZGvIda2QO8lUxYSyauoubR8GuEKGddoC/B8q4dvIfnqsgTTh4QI0YmndWB6D vhtF5fYVtTCa3PVWNICl89rSUI+VnCRGb49DaHSPVqI4JJnUcVBx4TZqYSzIBnaVLGX7 mt96VKL7yFj0IkyM7ia+l4gZw9XjWY1cPJZWIX7Le3AUIvu+3y8qgz4bCRYG8t4cy1rv irxlIDoVwyap8KYpB00KmuTzGgGgXDDR+f4ypu4FN4TaNfXFY9zU9dikzw+yyfV0noy2 3j3Q== X-Gm-Message-State: AOAM533t7/Ye7OAC8Gp4Y/olOhyoLnwJqZzleb9iijSG6rlwfbYqXX+L tKtdUt+c/OEjWe9EfptWExc= X-Google-Smtp-Source: ABdhPJwZ1E2WR8O8CEosYvCwLy1nVVpYDf1qJZ1fbJYyM7jJKanz/+mkswKuU5F9rw/bpVBI1OblIg== X-Received: by 2002:a9d:30f:: with SMTP id 15mr15715024otv.212.1612868201816; Tue, 09 Feb 2021 02:56:41 -0800 (PST) Received: from localhost.localdomain ([50.236.19.102]) by smtp.gmail.com with ESMTPSA id g3sm4171377ooi.28.2021.02.09.02.56.35 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 09 Feb 2021 02:56:41 -0800 (PST) From: Yafang Shao To: willy@infradead.org, andriy.shevchenko@linux.intel.com, david@redhat.com, linmiaohe@huawei.com, vbabka@suse.cz, cl@linux.com, penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, akpm@linux-foundation.org, pmladek@suse.com, rostedt@goodmis.org, sergey.senozhatsky@gmail.com, joe@perches.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yafang Shao Subject: [PATCH v4 1/3] mm, slub: use pGp to print page flags Date: Tue, 9 Feb 2021 18:56:11 +0800 Message-Id: <20210209105613.42747-2-laoar.shao@gmail.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: <20210209105613.42747-1-laoar.shao@gmail.com> References: <20210209105613.42747-1-laoar.shao@gmail.com> MIME-Version: 1.0 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: As pGp has been already introduced in printk, we'd better use it to make the output human readable. Before this change, the output is, [ 6155.716018] INFO: Slab 0x000000004027dd4f objects=33 used=3 fp=0x000000008cd1579c flags=0x17ffffc0010200 While after this change, the output is, [ 8846.517809] INFO: Slab 0x00000000f42a2c60 objects=33 used=3 fp=0x0000000060d32ca8 flags=0x17ffffc0010200(slab|head) Signed-off-by: Yafang Shao Reviewed-by: David Hildenbrand Reviewed-by: Vlastimil Babka Acked-by: David Rientjes Acked-by: Christoph Lameter Reviewed-by: Matthew Wilcox (Oracle) Reviewed-by: Miaohe Lin Reviewed-by: David Hildenbrand --- mm/slub.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/slub.c b/mm/slub.c index 34dcc09e2ec9..87ff086e68a4 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -638,8 +638,9 @@ void print_tracking(struct kmem_cache *s, void *object) static void print_page_info(struct page *page) { - pr_err("INFO: Slab 0x%p objects=%u used=%u fp=0x%p flags=0x%04lx\n", - page, page->objects, page->inuse, page->freelist, page->flags); + pr_err("INFO: Slab 0x%p objects=%u used=%u fp=0x%p flags=%#lx(%pGp)\n", + page, page->objects, page->inuse, page->freelist, + page->flags, &page->flags); } From patchwork Tue Feb 9 10:56:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yafang Shao X-Patchwork-Id: 12077759 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=-13.5 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham 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 48937C433DB for ; Tue, 9 Feb 2021 10:56:51 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id ABA0264EBA for ; Tue, 9 Feb 2021 10:56:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ABA0264EBA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 27DBD6B006E; Tue, 9 Feb 2021 05:56:50 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 22E7D6B0070; Tue, 9 Feb 2021 05:56:50 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 144666B0071; Tue, 9 Feb 2021 05:56:50 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0195.hostedemail.com [216.40.44.195]) by kanga.kvack.org (Postfix) with ESMTP id F19586B006E for ; Tue, 9 Feb 2021 05:56:49 -0500 (EST) Received: from smtpin06.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id BA0DD8248047 for ; Tue, 9 Feb 2021 10:56:49 +0000 (UTC) X-FDA: 77798426538.06.game53_200e6ce27606 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin06.hostedemail.com (Postfix) with ESMTP id 9958A100470D4 for ; Tue, 9 Feb 2021 10:56:49 +0000 (UTC) X-HE-Tag: game53_200e6ce27606 X-Filterd-Recvd-Size: 5979 Received: from mail-oi1-f178.google.com (mail-oi1-f178.google.com [209.85.167.178]) by imf40.hostedemail.com (Postfix) with ESMTP for ; Tue, 9 Feb 2021 10:56:48 +0000 (UTC) Received: by mail-oi1-f178.google.com with SMTP id l3so9013690oii.2 for ; Tue, 09 Feb 2021 02:56:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=o7q2vgd6GPGmGunsWTVUHI10pMlkl28NmpYlDYf/aRo=; b=fwCut5Niql0JG94VzPHt09KL8mT5vyceC3jqm+dWNCWohVILFNLFGFLCXMrvB9PAZh uM7mkHXr318esVxiFuZqu+0B+jwSWJEHyn5H2AR42VpwHrpgnNCsjMLlnOFOusgt+TXn gs3zT04Z6BlhZj6obXNi2hq7TfpBDIwbuFANtTuUiGMqYspoJYkmmT9439klI+MKU4/9 t5zwexVRGA54bgBYGxk4tIMibzvl+8F/fgH3hbLRkT6RIB86zqoXxLF2cAUq0W1W63Ug oo/uAhnHM9Knr2A2ojDHe6+RCTOxlj7iev8xQyWgYPBlUl72u9b0KPep0jkbDKQWNJ6V QLGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=o7q2vgd6GPGmGunsWTVUHI10pMlkl28NmpYlDYf/aRo=; b=TCy4QZKYm27tZ+BZZXJ/iAh6ZWp8Fw3HpEw8DBACbgcMb8PQNZ3RABC7QK7kkUIhXO pOj9wD5YFJ9sqvGFJ2iy7WC5TnhXqE28kulU2w0ITzWSTjUvzevILSbHIXPFwC6y1x6I RK4fuGpsA9Lo5sh+8vpzJ6UpR0baQA8TF8Xwh5uhq1QdPef/nLCT346VIkeJNSJCAKEZ 9BewkxPfnAJe87wckcP1vXTs6cCWlaNKPbysUN2wt3zHj3p1jFxJxO0FwVgNnfF8UhUh 3QEQs9S+Jd3BmQCGvmIrBvyO0yYtQ3pIm8AsmcXhRxoaMJbeFzFuiuG7jYONGVg7UFVr nRNw== X-Gm-Message-State: AOAM532p/f/6N01DbDTLhR7l+C/DjZvXtqd0aO+44D1UAp2u0ngEKAuk t+dPw6SLPzevHWCrzzJF8ZA= X-Google-Smtp-Source: ABdhPJyLW5f385Naxy45QhOOjhIEed19clGHeM7+L/mh+Irh7umoNKaBJP8mOGifb1aZByaSIGYkrw== X-Received: by 2002:a05:6808:21a:: with SMTP id l26mr1987055oie.42.1612868208449; Tue, 09 Feb 2021 02:56:48 -0800 (PST) Received: from localhost.localdomain ([50.236.19.102]) by smtp.gmail.com with ESMTPSA id g3sm4171377ooi.28.2021.02.09.02.56.42 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 09 Feb 2021 02:56:47 -0800 (PST) From: Yafang Shao To: willy@infradead.org, andriy.shevchenko@linux.intel.com, david@redhat.com, linmiaohe@huawei.com, vbabka@suse.cz, cl@linux.com, penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, akpm@linux-foundation.org, pmladek@suse.com, rostedt@goodmis.org, sergey.senozhatsky@gmail.com, joe@perches.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yafang Shao Subject: [PATCH v4 2/3] mm, slub: don't combine pr_err with INFO Date: Tue, 9 Feb 2021 18:56:12 +0800 Message-Id: <20210209105613.42747-3-laoar.shao@gmail.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: <20210209105613.42747-1-laoar.shao@gmail.com> References: <20210209105613.42747-1-laoar.shao@gmail.com> MIME-Version: 1.0 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: It is strange to combine "pr_err" with "INFO", so let's remove the prefix completely. This patch is motivated by David's comment[1]. - before the patch [ 8846.517809] INFO: Slab 0x00000000f42a2c60 objects=33 used=3 fp=0x0000000060d32ca8 flags=0x17ffffc0010200(slab|head) - after the patch [ 6343.396602] Slab 0x000000004382e02b objects=33 used=3 fp=0x000000009ae06ffc flags=0x17ffffc0010200(slab|head) [1]. https://lore.kernel.org/linux-mm/b9c0f2b6-e9b0-0c36-ebdd-2bc684c5a762@redhat.com/#t Suggested-by: Vlastimil Babka Signed-off-by: Yafang Shao Acked-by: Vlastimil Babka Reviewed-by: Miaohe Lin Cc: David Hildenbrand Cc: Matthew Wilcox Reviewed-by: David Hildenbrand --- mm/slub.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mm/slub.c b/mm/slub.c index 87ff086e68a4..2514c37ab4e4 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -612,7 +612,7 @@ static void print_track(const char *s, struct track *t, unsigned long pr_time) if (!t->addr) return; - pr_err("INFO: %s in %pS age=%lu cpu=%u pid=%d\n", + pr_err("%s in %pS age=%lu cpu=%u pid=%d\n", s, (void *)t->addr, pr_time - t->when, t->cpu, t->pid); #ifdef CONFIG_STACKTRACE { @@ -638,7 +638,7 @@ void print_tracking(struct kmem_cache *s, void *object) static void print_page_info(struct page *page) { - pr_err("INFO: Slab 0x%p objects=%u used=%u fp=0x%p flags=%#lx(%pGp)\n", + pr_err("Slab 0x%p objects=%u used=%u fp=0x%p flags=%#lx(%pGp)\n", page, page->objects, page->inuse, page->freelist, page->flags, &page->flags); @@ -695,7 +695,7 @@ static void print_trailer(struct kmem_cache *s, struct page *page, u8 *p) print_page_info(page); - pr_err("INFO: Object 0x%p @offset=%tu fp=0x%p\n\n", + pr_err("Object 0x%p @offset=%tu fp=0x%p\n\n", p, p - addr, get_freepointer(s, p)); if (s->flags & SLAB_RED_ZONE) @@ -788,7 +788,7 @@ static int check_bytes_and_report(struct kmem_cache *s, struct page *page, end--; slab_bug(s, "%s overwritten", what); - pr_err("INFO: 0x%p-0x%p @offset=%tu. First byte 0x%x instead of 0x%x\n", + pr_err("0x%p-0x%p @offset=%tu. First byte 0x%x instead of 0x%x\n", fault, end - 1, fault - addr, fault[0], value); print_trailer(s, page, object); @@ -3854,7 +3854,7 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page, for_each_object(p, s, addr, page->objects) { if (!test_bit(__obj_to_index(s, addr, p), map)) { - pr_err("INFO: Object 0x%p @offset=%tu\n", p, p - addr); + pr_err("Object 0x%p @offset=%tu\n", p, p - addr); print_tracking(s, p); } } From patchwork Tue Feb 9 10:56:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yafang Shao X-Patchwork-Id: 12077761 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=-13.5 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham 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 35F8DC433E0 for ; Tue, 9 Feb 2021 10:56:58 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 7B07164EB8 for ; Tue, 9 Feb 2021 10:56:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7B07164EB8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id EFFE46B0070; Tue, 9 Feb 2021 05:56:56 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EB1DF6B0071; Tue, 9 Feb 2021 05:56:56 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DC7126B0072; Tue, 9 Feb 2021 05:56:56 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0022.hostedemail.com [216.40.44.22]) by kanga.kvack.org (Postfix) with ESMTP id C75F36B0070 for ; Tue, 9 Feb 2021 05:56:56 -0500 (EST) Received: from smtpin06.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 92F9A8248047 for ; Tue, 9 Feb 2021 10:56:56 +0000 (UTC) X-FDA: 77798426832.06.ship31_470f5df27606 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin06.hostedemail.com (Postfix) with ESMTP id 6E19810047DF3 for ; Tue, 9 Feb 2021 10:56:56 +0000 (UTC) X-HE-Tag: ship31_470f5df27606 X-Filterd-Recvd-Size: 10504 Received: from mail-ot1-f46.google.com (mail-ot1-f46.google.com [209.85.210.46]) by imf15.hostedemail.com (Postfix) with ESMTP for ; Tue, 9 Feb 2021 10:56:55 +0000 (UTC) Received: by mail-ot1-f46.google.com with SMTP id d7so14793397otq.6 for ; Tue, 09 Feb 2021 02:56:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Tiu8l4y3al7LgwJKu3HpcATrkXUFgjknz33lq4pbxoA=; b=k++LRIBNM+LnlzQ3RhLOrOu9XfFeNd+paAUv57y7zWFDPHbBlIzD5V8nPvjq1w4Jq5 C+o6kshlFu9Qq/YiIJ2zxstUAd0XkLMRkjFPvd0IgZXasO4I4wFBEXlKE1Cim5ZEv3LG 1KZWNPnNlC5gYBA2A6e/UrzrF5eqObtqE6npzPyhwQ9pody7TkzcjI81UKclZJNIh17X so5s/SHiLgMiFafhbYYgftBH6MA6MAsn6UTZA4iSpwjWEHvtqVCZbv5rEPNR5nvZb/gh 5WtmJm+uvXfrxkRPanxBi5mVGMqTdxzm0+K33UVuMdOCGNPxQzh/SCRQW9GGUVD9ps0f 6C5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Tiu8l4y3al7LgwJKu3HpcATrkXUFgjknz33lq4pbxoA=; b=t/3h3DkJli51V+yAi2hsIDjTKHPrZU5Hdzx6eUoOz0uOxnLhFIXnNNMgzblw1yB4fn gQ798S5x3P6YtnBXVJXQtGbh6pIhMzDpeFMafva2bcB6Gy0P/1d2l+s+QLlRzWd/UwzD ScZS2Fn118Qf5TV6IxbdVmIT8CQdtlMpKDi5jdEmbMqQizdp4FdSyBcfULXJnDwR77bg MvY200ifDDr8VHYne+b4QlO6b7qmwCTKvmqv3lUIGvVd1ijLuM2L5GZtd9dmBDtLbKIl 5+m6ps4CZ7THQCWaKxG5Al8i0LMCw2NG2taFUMG8MehQG/HcZxjKGlA45vfCCRuO9xUH SA2Q== X-Gm-Message-State: AOAM5311pkPxtOIBppo0q2VQ0w+ZFJkBI+LT0yI1sT4nFeGmcVJRss7N wQ5hln7/2R+cCLnakIW/HqQ= X-Google-Smtp-Source: ABdhPJxktUXu4h77GSmd7pREko2nmczvFLgyZ8KCmheT4HTHlhsiJtr+jCmI/PRcGNPlbYxRmmdNgw== X-Received: by 2002:a9d:6f03:: with SMTP id n3mr14202565otq.295.1612868215229; Tue, 09 Feb 2021 02:56:55 -0800 (PST) Received: from localhost.localdomain ([50.236.19.102]) by smtp.gmail.com with ESMTPSA id g3sm4171377ooi.28.2021.02.09.02.56.48 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 09 Feb 2021 02:56:54 -0800 (PST) From: Yafang Shao To: willy@infradead.org, andriy.shevchenko@linux.intel.com, david@redhat.com, linmiaohe@huawei.com, vbabka@suse.cz, cl@linux.com, penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, akpm@linux-foundation.org, pmladek@suse.com, rostedt@goodmis.org, sergey.senozhatsky@gmail.com, joe@perches.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yafang Shao Subject: [PATCH v4 3/3] vsprintf: dump full information of page flags in pGp Date: Tue, 9 Feb 2021 18:56:13 +0800 Message-Id: <20210209105613.42747-4-laoar.shao@gmail.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: <20210209105613.42747-1-laoar.shao@gmail.com> References: <20210209105613.42747-1-laoar.shao@gmail.com> MIME-Version: 1.0 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: Currently the pGp only shows the names of page flags, rather than the full information including section, node, zone, last cpupid and kasan tag. While it is not easy to parse these information manually because there're so many flavors. Let's interpret them in pGp as well. To be compitable with the existed format of pGp, the new introduced ones also use '|' as the separator, then the user tools parsing pGp won't need to make change, suggested by Matthew. The new information is tracked onto the end of the existed one. On example of the output in mm/slub.c as follows, - Before the patch, [ 6343.396602] Slab 0x000000004382e02b objects=33 used=3 fp=0x000000009ae06ffc flags=0x17ffffc0010200(slab|head) - After the patch, [ 8838.835456] Slab 0x000000002828b78a objects=33 used=3 fp=0x00000000d04efc88 flags=0x17ffffc0010200(slab|head|node=0|zone=2|lastcpupid=0x1fffff) The documentation and test cases are also updated. The output of the test cases as follows, [ 501.485081] test_printf: loaded. [ 501.485768] test_printf: all 388 tests passed [ 501.488762] test_printf: unloaded. Signed-off-by: Yafang Shao Cc: David Hildenbrand Cc: Joe Perches Cc: Miaohe Lin Cc: Vlastimil Babka Cc: Andy Shevchenko Cc: Matthew Wilcox Acked-by: Vlastimil Babka --- Documentation/core-api/printk-formats.rst | 2 +- lib/test_printf.c | 60 +++++++++++++++++---- lib/vsprintf.c | 66 +++++++++++++++++++++-- 3 files changed, 114 insertions(+), 14 deletions(-) diff --git a/Documentation/core-api/printk-formats.rst b/Documentation/core-api/printk-formats.rst index 6d26c5c6ac48..93c3e48ff30d 100644 --- a/Documentation/core-api/printk-formats.rst +++ b/Documentation/core-api/printk-formats.rst @@ -538,7 +538,7 @@ Flags bitfields such as page flags, gfp_flags :: - %pGp referenced|uptodate|lru|active|private + %pGp referenced|uptodate|lru|active|private|node=0|zone=2|lastcpupid=0x1fffff %pGg GFP_USER|GFP_DMA32|GFP_NOWARN %pGv read|exec|mayread|maywrite|mayexec|denywrite diff --git a/lib/test_printf.c b/lib/test_printf.c index 7ac87f18a10f..148773dfe97a 100644 --- a/lib/test_printf.c +++ b/lib/test_printf.c @@ -569,24 +569,68 @@ netdev_features(void) { } +static void __init +page_flags_test(int section, int node, int zone, int last_cpupid, + int kasan_tag, int flags, const char *name, char *cmp_buf) +{ + unsigned long page_flags = 0; + unsigned long size = 0; + + flags &= BIT(NR_PAGEFLAGS) - 1; + if (flags) { + page_flags |= flags; + snprintf(cmp_buf + size, BUF_SIZE - size, "%s|", name); + size = strlen(cmp_buf); + } + +#ifdef SECTION_IN_PAGE_FLAGS + page_flags |= (sec & SECTIONS_MASK) << SECTIONS_PGSHIFT; + snprintf(cmp_buf + size, BUF_SIZE - size, "section=%#x|", sec); + size = strlen(cmp_buf); +#endif + + page_flags |= ((node & NODES_MASK) << NODES_PGSHIFT) | + ((zone & ZONES_MASK) << ZONES_PGSHIFT); + snprintf(cmp_buf + size, BUF_SIZE - size, "node=%d|zone=%d", node, zone); + size = strlen(cmp_buf); + +#ifndef LAST_CPUPID_NOT_IN_PAGE_FLAGS + page_flags |= (last_cpupid & LAST_CPUPID_MASK) << LAST_CPUPID_PGSHIFT; + snprintf(cmp_buf + size, BUF_SIZE - size, "|lastcpupid=%#x", last_cpupid); + size = strlen(cmp_buf); +#endif + +#if defined(CONFIG_KASAN_SW_TAGS) || defined(CONFIG_KASAN_HW_TAGS) + page_flags |= (tag & KASAN_TAG_MASK) << KASAN_TAG_PGSHIFT; + snprintf(cmp_buf + size, BUF_SIZE - size, "|kasantag=%#x", tag); + size = strlen(cmp_buf); +#endif + + test(cmp_buf, "%pGp", &page_flags); +} + static void __init flags(void) { unsigned long flags; - gfp_t gfp; char *cmp_buffer; + gfp_t gfp; + + cmp_buffer = kmalloc(BUF_SIZE, GFP_KERNEL); + if (!cmp_buffer) + return; flags = 0; - test("", "%pGp", &flags); + page_flags_test(0, 0, 0, 0, 0, flags, "", cmp_buffer); - /* Page flags should filter the zone id */ flags = 1UL << NR_PAGEFLAGS; - test("", "%pGp", &flags); + page_flags_test(0, 0, 0, 0, 0, flags, "", cmp_buffer); flags |= 1UL << PG_uptodate | 1UL << PG_dirty | 1UL << PG_lru | 1UL << PG_active | 1UL << PG_swapbacked; - test("uptodate|dirty|lru|active|swapbacked", "%pGp", &flags); - + page_flags_test(1, 1, 1, 0x1fffff, 1, flags, + "uptodate|dirty|lru|active|swapbacked", + cmp_buffer); flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC | VM_DENYWRITE; @@ -601,10 +645,6 @@ flags(void) gfp = __GFP_ATOMIC; test("__GFP_ATOMIC", "%pGg", &gfp); - cmp_buffer = kmalloc(BUF_SIZE, GFP_KERNEL); - if (!cmp_buffer) - return; - /* Any flags not translated by the table should remain numeric */ gfp = ~__GFP_BITS_MASK; snprintf(cmp_buffer, BUF_SIZE, "%#lx", (unsigned long) gfp); diff --git a/lib/vsprintf.c b/lib/vsprintf.c index 14c9a6af1b23..3f26611adb34 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -1916,6 +1916,66 @@ char *format_flags(char *buf, char *end, unsigned long flags, return buf; } +struct page_flags_layout { + int width; + int shift; + int mask; + const struct printf_spec *spec; + const char *name; +}; + +static const struct page_flags_layout pfl[] = { + {SECTIONS_WIDTH, SECTIONS_PGSHIFT, SECTIONS_MASK, + &default_dec_spec, "section"}, + {NODES_WIDTH, NODES_PGSHIFT, NODES_MASK, + &default_dec_spec, "node"}, + {ZONES_WIDTH, ZONES_PGSHIFT, ZONES_MASK, + &default_dec_spec, "zone"}, + {LAST_CPUPID_WIDTH, LAST_CPUPID_PGSHIFT, LAST_CPUPID_MASK, + &default_flag_spec, "lastcpupid"}, + {KASAN_TAG_WIDTH, KASAN_TAG_PGSHIFT, KASAN_TAG_MASK, + &default_flag_spec, "kasantag"}, +}; + +static +char *format_page_flags(char *buf, char *end, unsigned long flags) +{ + DECLARE_BITMAP(mask, ARRAY_SIZE(pfl)); + unsigned long last; + int i; + + if (flags & (BIT(NR_PAGEFLAGS) - 1)) { + if (buf < end) + *buf = '|'; + buf++; + } + + for (i = 0; i < ARRAY_SIZE(pfl); i++) + __assign_bit(i, mask, pfl[i].width); + + last = find_last_bit(mask, ARRAY_SIZE(pfl)); + + for_each_set_bit(i, mask, ARRAY_SIZE(pfl)) { + /* Format: Flag Name + '=' (equals sign) + Number + '|' (separator) */ + buf = string(buf, end, pfl[i].name, *pfl[i].spec); + + if (buf < end) + *buf = '='; + buf++; + buf = number(buf, end, (flags >> pfl[i].shift) & pfl[i].mask, + *pfl[i].spec); + + /* No separator for the last entry */ + if (i != last) { + if (buf < end) + *buf = '|'; + buf++; + } + } + + return buf; +} + static noinline_for_stack char *flags_string(char *buf, char *end, void *flags_ptr, struct printf_spec spec, const char *fmt) @@ -1929,10 +1989,10 @@ char *flags_string(char *buf, char *end, void *flags_ptr, switch (fmt[1]) { case 'p': flags = *(unsigned long *)flags_ptr; - /* Remove zone id */ - flags &= (1UL << NR_PAGEFLAGS) - 1; names = pageflag_names; - break; + buf = format_flags(buf, end, flags & (BIT(NR_PAGEFLAGS) - 1), names); + buf = format_page_flags(buf, end, flags); + return buf; case 'v': flags = *(unsigned long *)flags_ptr; names = vmaflag_names;