From patchwork Mon Feb 1 11:56:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yafang Shao X-Patchwork-Id: 12058847 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 E7BEFC433DB for ; Mon, 1 Feb 2021 11:56:58 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 5BE2964EA5 for ; Mon, 1 Feb 2021 11:56:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5BE2964EA5 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 CDF0C6B0070; Mon, 1 Feb 2021 06:56:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C671C6B0071; Mon, 1 Feb 2021 06:56:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B57C86B0072; Mon, 1 Feb 2021 06:56:57 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0211.hostedemail.com [216.40.44.211]) by kanga.kvack.org (Postfix) with ESMTP id A14926B0070 for ; Mon, 1 Feb 2021 06:56:57 -0500 (EST) Received: from smtpin22.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 67C133632 for ; Mon, 1 Feb 2021 11:56:57 +0000 (UTC) X-FDA: 77769547674.22.gate98_20027a2275c2 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin22.hostedemail.com (Postfix) with ESMTP id 4968518038E67 for ; Mon, 1 Feb 2021 11:56:57 +0000 (UTC) X-HE-Tag: gate98_20027a2275c2 X-Filterd-Recvd-Size: 4531 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by imf35.hostedemail.com (Postfix) with ESMTP for ; Mon, 1 Feb 2021 11:56:56 +0000 (UTC) Received: by mail-pl1-f175.google.com with SMTP id y10so5587549plk.7 for ; Mon, 01 Feb 2021 03:56:56 -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=hIsvW8P9+uYLezvOEppL2cu9Sms7br/nplzxkf+Uuow=; b=Uu1LJYqpQCre5B6+Qh8vSJ3YYTTxMi+qsQNfArcHITOE2isNcr4A9MTpdxAzQqf+k2 h7LDkqQEiXMOH1oBlo0tMgDj7I98QPAI/Mfd6eTPj+mEK5h2SRAuwpcBx/iESzd08q/6 MeVA4Gge1kXB5Vg6Vlcl9Gk0Hz+HzEGPZyfPm5n7D4QRvflKpphd3oZKJztYx3B6Ljed biyMGx6WhBtwFCSdj2U2Fj6kzZsz02oHVgh+0vxE6bT5qvim6A66rh36lSM5Lsy5Gfl3 uG5F9cDOUuBx/rtHS4C+8iVxwNHPREjdd5Q8dU9VnHPhv2skUx6B5Q+xT419HBEXr/oW K8HQ== 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=hIsvW8P9+uYLezvOEppL2cu9Sms7br/nplzxkf+Uuow=; b=Cu22xkCgtnuFr8UDBA3znZ4B9D2CPl7jKe53Dl/t+/l7ucxuCD1TlexAcz7JOpxAKJ aYwWhOKATn0W1YW7ysgJcQhngyA6NcthPlvtiSg+iENYvrVQYsLxFlS0ynzDujmlkSni jnG1LwMdWoJ3YdXnV8V9ayrcvJ/7keVDHKWiy2gHv/mJ9NpuyXW7WKRwEO6zq9JwiMur aUdVWnLHqzzSVWSOj91JeA7TYO1VYwKSEXKT/maE2mduq+UWzuZTX2x9PBkg31zL8YeM 4gHubzeKXlLusXy/EBU48KsgN66VlRpN/GEyFn4Awz/9RE5A+8WdkbaPJ0SPU98Y+NxB xfFw== X-Gm-Message-State: AOAM5301G6Bahsk0+h3YBnNFv69+Gr9+BC4LMtG3pUBaFnqgx3ZU+9BM wvq/b8kdlh+Gi8WG1L4IcBI= X-Google-Smtp-Source: ABdhPJwotWx0PNovNqXAjWXtfufDcrYYrYEaWnGE6Fjq3aTUQJyyzmhls5TUbA66zs1mkTfD5SvkaA== X-Received: by 2002:a17:903:2292:b029:de:45c0:7005 with SMTP id b18-20020a1709032292b02900de45c07005mr17472088plh.75.1612180615792; Mon, 01 Feb 2021 03:56:55 -0800 (PST) Received: from localhost.localdomain ([50.236.19.102]) by smtp.gmail.com with ESMTPSA id dw23sm7195152pjb.3.2021.02.01.03.56.49 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 01 Feb 2021 03:56:55 -0800 (PST) From: Yafang Shao To: andriy.shevchenko@linux.intel.com, david@redhat.com, vbabka@suse.cz, linmiaohe@huawei.com, 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, linux@rasmusvillemoes.dk Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yafang Shao Subject: [PATCH v2 1/3] mm, slub: use pGp to print page flags Date: Mon, 1 Feb 2021 19:56:08 +0800 Message-Id: <20210201115610.87808-2-laoar.shao@gmail.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: <20210201115610.87808-1-laoar.shao@gmail.com> References: <20210201115610.87808-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) Reviewed-by: David Hildenbrand Reviewed-by: Vlastimil Babka Acked-by: David Rientjes Signed-off-by: Yafang Shao --- 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 Mon Feb 1 11:56:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yafang Shao X-Patchwork-Id: 12058849 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 1869FC433DB for ; Mon, 1 Feb 2021 11:57:07 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 955C564EA3 for ; Mon, 1 Feb 2021 11:57:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 955C564EA3 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 145A96B0071; Mon, 1 Feb 2021 06:57:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0CF296B0072; Mon, 1 Feb 2021 06:57:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E8BC56B0073; Mon, 1 Feb 2021 06:57:05 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0122.hostedemail.com [216.40.44.122]) by kanga.kvack.org (Postfix) with ESMTP id D41D56B0071 for ; Mon, 1 Feb 2021 06:57:05 -0500 (EST) Received: from smtpin03.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 9A4EC181AEF15 for ; Mon, 1 Feb 2021 11:57:05 +0000 (UTC) X-FDA: 77769548010.03.screw93_2403498275c2 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin03.hostedemail.com (Postfix) with ESMTP id 7D2FF28A4E8 for ; Mon, 1 Feb 2021 11:57:05 +0000 (UTC) X-HE-Tag: screw93_2403498275c2 X-Filterd-Recvd-Size: 5831 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) by imf20.hostedemail.com (Postfix) with ESMTP for ; Mon, 1 Feb 2021 11:57:04 +0000 (UTC) Received: by mail-pj1-f46.google.com with SMTP id s24so10146665pjp.5 for ; Mon, 01 Feb 2021 03:57:04 -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=j9ylQWblYtnPRQvoph8wZjHjgqRFeyFluXHMnXSNEII=; b=Cgs5/WEVA1zE3HynJRWc9yOQHPVngA7hG6MVTwWqBpVLN3EQ0daP5cr/pFQ00U3F3H Ct+zTvg5uiFpQVsmCaOL7HWzU4SzvJBmsUd0g5YPGDt4SFnrH4sBjMjjISuEI8QdNWaJ OfWdwyosuqi4lISVDOCV6ogPjs911BjuQo1V5TCv7L9MgKucbHup40LG0uqnzzC7NrJb 2fhQ+LV5yfZyKY40YqWeGOM7PNvIULEB/Rpw+V28oiVRSEdpi7lGlwjxWT9Jgj6P1lMM 7J6vnMuALYbot0o34PhXbaz+dixJWyBYtm/m58rfcduSDgk8M62z5lS8KcaQxPVdLq5w 9fOg== 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=j9ylQWblYtnPRQvoph8wZjHjgqRFeyFluXHMnXSNEII=; b=G+twKvuDGNZ8XRZ5Ri4ejaCobaQgzhXXR3tKQ5expasV2EkPrfzgV/kxjRoAdKtIrM 5cwvn40c3dInIo7aXCzTefWs8j5Ryu4Y59Xm0bSd3M0ItBWMm+STyfg6UcbG4dSoXFu7 8zdnP+VLCtLnw3mzc57uWYXyiw0DNR2t+GmE8GuQL3HTCq8EK64oOoqBhShAreDw3TUa qwH2AQVUn0dXHpj0+is2MMUEfwB7kEFLr+PxR7SPjTiPov1w8rG2dcX3jeMeEgC3GVEP Za3fWjl3Ec9IYMeamZY7bvVpYmelbjzVopqGokH6S/VlpdJfA2ycNhr1LUhgfon0m5hU mFIQ== X-Gm-Message-State: AOAM530Nx/qhJKubvxLFIJRHaE2lZNTbijHdbvfJ/MX9CFnHP/ZVEK5v xsZfIDIW4L47lEp+DZfkk3Y= X-Google-Smtp-Source: ABdhPJyxqcsyP9BhzwpDIdlbYS1Ys5AUwk58ua/k09wfRuXbCCa0mq/TManxrwn+c2O4Eh8h/MtaCw== X-Received: by 2002:a17:90a:cb15:: with SMTP id z21mr7227873pjt.164.1612180623979; Mon, 01 Feb 2021 03:57:03 -0800 (PST) Received: from localhost.localdomain ([50.236.19.102]) by smtp.gmail.com with ESMTPSA id dw23sm7195152pjb.3.2021.02.01.03.56.57 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 01 Feb 2021 03:57:03 -0800 (PST) From: Yafang Shao To: andriy.shevchenko@linux.intel.com, david@redhat.com, vbabka@suse.cz, linmiaohe@huawei.com, 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, linux@rasmusvillemoes.dk Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yafang Shao Subject: [PATCH v2 2/3] mm, slub: don't combine pr_err with INFO Date: Mon, 1 Feb 2021 19:56:09 +0800 Message-Id: <20210201115610.87808-3-laoar.shao@gmail.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: <20210201115610.87808-1-laoar.shao@gmail.com> References: <20210201115610.87808-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 Cc: David Hildenbrand Signed-off-by: Yafang Shao --- 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 Mon Feb 1 11:56:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yafang Shao X-Patchwork-Id: 12058851 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 EE423C433DB for ; Mon, 1 Feb 2021 11:57:18 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 583D264EA3 for ; Mon, 1 Feb 2021 11:57:18 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 583D264EA3 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 C900C6B0072; Mon, 1 Feb 2021 06:57:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C1A816B0073; Mon, 1 Feb 2021 06:57:17 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AB90B6B0074; Mon, 1 Feb 2021 06:57:17 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0032.hostedemail.com [216.40.44.32]) by kanga.kvack.org (Postfix) with ESMTP id 8AC5B6B0072 for ; Mon, 1 Feb 2021 06:57:17 -0500 (EST) Received: from smtpin07.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 529C68249980 for ; Mon, 1 Feb 2021 11:57:17 +0000 (UTC) X-FDA: 77769548514.07.cat10_01086be275c2 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin07.hostedemail.com (Postfix) with ESMTP id 3835D1803F9AC for ; Mon, 1 Feb 2021 11:57:17 +0000 (UTC) X-HE-Tag: cat10_01086be275c2 X-Filterd-Recvd-Size: 9759 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) by imf25.hostedemail.com (Postfix) with ESMTP for ; Mon, 1 Feb 2021 11:57:16 +0000 (UTC) Received: by mail-pf1-f171.google.com with SMTP id t29so11410620pfg.11 for ; Mon, 01 Feb 2021 03:57:16 -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=WzQaOBZlTdFeeAyUnIR3ljNVjCjE/Wu9Dlif4gaAJvY=; b=esA7Ry0kwlpxtlu85rhoQcIC9ERb01N9h6G1izh5EeCUv5c0DE4mINXeKW/5QJZ4nf OZQ6/YvViFie6ZkszZ+YKImtPcwd7KEjXTZMns79nK1Z4y13XLug0fM7fM3TJicSXPH1 xTCpYhXGh6vzn+oXaRZfFc/sSL9qGZm4tqYrkHUt4dlR+fCQioAOkUeZCY8ECzz7450j 8QNx7fkP37R3gE1xBLIIl8ohY3ywoAudl7ymCV09XD8J7TWDnkomeDJhaChlzs53h1p2 ZLxB1whrgDdQYtYESWowG4Dx8wriKfqX+VvEVEZUu5mlBO+mzvEArEPiKyfQNKJ4wU/5 zQFQ== 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=WzQaOBZlTdFeeAyUnIR3ljNVjCjE/Wu9Dlif4gaAJvY=; b=eWyy2IrLoSkHjGAbYjx9919UuORJ+4xbOGuvYfn4ettsxBKhCt597NgM5uyHdp0rkj nZXKvZgbWOFIp8nngyCyVsEREW33zchDtV/Plh4XV/vbfoRtOoiCj1Py1TpJyZhOHzYi ZXVekeYLdmkoGD2XL89aBa1lJ4nueIDSfK7yv2pmPuscOyGc2Fy+pCPPQS4cRIGRfrC+ ZBcEQAkuuW+wk3Wt5kPVSE7ctJebED2IEKlgBCazSg8QzKMilNG0zv+4XsCAWUWXwwGE LBhRdIccx83Kjhw2oF7KCJ8/YwoEYKoVDut3bLdsM0QX/AjoVcc3FZqTmSlRoWOcc5m3 hbPQ== X-Gm-Message-State: AOAM530KO+pK9dOiUIwbk7Xaal4o8TolQANiaUFCLmFxbdOyqi9GJ4Sf Jxq9KVdedtA9RHv/l9Qg1v8= X-Google-Smtp-Source: ABdhPJydLIm3lfBizKgV9U4awm2q56du2GPXWHUcY3QLtYlqtbr5xaEOPzIgFVfvfAv2yVDFc8cw6Q== X-Received: by 2002:aa7:8c4a:0:b029:1b8:2cd1:9a69 with SMTP id e10-20020aa78c4a0000b02901b82cd19a69mr15957805pfd.46.1612180635510; Mon, 01 Feb 2021 03:57:15 -0800 (PST) Received: from localhost.localdomain ([50.236.19.102]) by smtp.gmail.com with ESMTPSA id dw23sm7195152pjb.3.2021.02.01.03.57.08 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 01 Feb 2021 03:57:14 -0800 (PST) From: Yafang Shao To: andriy.shevchenko@linux.intel.com, david@redhat.com, vbabka@suse.cz, linmiaohe@huawei.com, 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, linux@rasmusvillemoes.dk Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yafang Shao , Joe Perches Subject: [PATCH v2 3/3] vsprintf: dump full information of page flags in pGp Date: Mon, 1 Feb 2021 19:56:10 +0800 Message-Id: <20210201115610.87808-4-laoar.shao@gmail.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: <20210201115610.87808-1-laoar.shao@gmail.com> References: <20210201115610.87808-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. - Before the patch, [ 6343.396602] Slab 0x000000004382e02b objects=33 used=3 fp=0x000000009ae06ffc flags=0x17ffffc0010200(slab|head) - After the patch, [ 6871.296131] Slab 0x00000000c0e19a37 objects=33 used=3 fp=0x00000000c4902159 flags=0x17ffffc0010200(Node 0,Zone 2,Lastcpupid 0x1fffff,slab|head) The Documentation and test cases are also updated. Cc: David Hildenbrand Cc: Joe Perches Cc: Miaohe Lin Cc: Vlastimil Babka Cc: Andy Shevchenko Signed-off-by: Yafang Shao --- Documentation/core-api/printk-formats.rst | 2 +- lib/test_printf.c | 65 ++++++++++++++++++----- lib/vsprintf.c | 58 +++++++++++++++++++- 3 files changed, 109 insertions(+), 16 deletions(-) diff --git a/Documentation/core-api/printk-formats.rst b/Documentation/core-api/printk-formats.rst index 6d26c5c6ac48..1374cdd04f0f 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 Node 0,Zone 2,referenced|uptodate|lru|active|private %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..4c5e064cbe2e 100644 --- a/lib/test_printf.c +++ b/lib/test_printf.c @@ -569,6 +569,48 @@ 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; + +#ifdef SECTION_IN_PAGE_FLAGS + page_flags |= (sec & SECTIONS_MASK) << SECTIONS_PGSHIFT; + snprintf(cmp_buf, BUF_SIZE, "Section %#x,", sec); + size = strlen(cmp_buf); +#endif + + page_flags |= (node & NODES_MASK) << NODES_PGSHIFT; + snprintf(cmp_buf + size, BUF_SIZE - size, "Node %d", node); + size = strlen(cmp_buf); + + page_flags |= (zone & ZONES_MASK) << ZONES_PGSHIFT; + snprintf(cmp_buf + size, BUF_SIZE - size, ",Zone %d", 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); + + if (flags) { + page_flags |= flags; + snprintf(cmp_buf + size, BUF_SIZE - size, ",%s", name); + test(cmp_buf, "%pGp", &page_flags); + } +} + static void __init flags(void) { @@ -576,17 +618,16 @@ flags(void) gfp_t gfp; char *cmp_buffer; - flags = 0; - test("", "%pGp", &flags); - - /* Page flags should filter the zone id */ - flags = 1UL << NR_PAGEFLAGS; - test("", "%pGp", &flags); - - flags |= 1UL << PG_uptodate | 1UL << PG_dirty | 1UL << PG_lru - | 1UL << PG_active | 1UL << PG_swapbacked; - test("uptodate|dirty|lru|active|swapbacked", "%pGp", &flags); + cmp_buffer = kmalloc(BUF_SIZE, GFP_KERNEL); + if (!cmp_buffer) + return; + page_flags_test(0, 0, 0, 0, 0, 0, NULL, cmp_buffer); + page_flags_test(1, 1, 1, 0x1ffff, 1, + (1UL << PG_uptodate | 1UL << PG_dirty | 1UL << PG_lru + | 1UL << PG_active | 1UL << PG_swapbacked), + "uptodate|dirty|lru|active|swapbacked", + cmp_buffer); flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC | VM_DENYWRITE; @@ -601,10 +642,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..5c2b02ad60f1 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -1916,6 +1916,62 @@ 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 page_flags) +{ + unsigned long flags = page_flags & ((1UL << NR_PAGEFLAGS) - 1); + int size = ARRAY_SIZE(pfl); + bool separator = false; + int i; + + for (i = 0; i < size; i++) { + if (pfl[i].width == 0) + continue; + + if (separator) { + if (buf < end) + *buf = ','; + buf++; + } + + + buf = string(buf, end, pfl[i].name, *pfl[i].spec); + + buf = number(buf, end, (page_flags >> pfl[i].shift) & pfl[i].mask, + *pfl[i].spec); + separator = true; + } + + if (flags) { + 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,7 +1985,7 @@ char *flags_string(char *buf, char *end, void *flags_ptr, switch (fmt[1]) { case 'p': flags = *(unsigned long *)flags_ptr; - /* Remove zone id */ + buf = format_page_flags(buf, end, flags); flags &= (1UL << NR_PAGEFLAGS) - 1; names = pageflag_names; break;