linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Petr Mladek <pmladek@suse.com>
To: Yafang Shao <laoar.shao@gmail.com>
Cc: 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,
	rostedt@goodmis.org, sergey.senozhatsky@gmail.com,
	joe@perches.com, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 3/3] vsprintf: dump full information of page flags in pGp
Date: Mon, 22 Feb 2021 13:38:17 +0100	[thread overview]
Message-ID: <YDOluaRK2CHtQyQD@alley> (raw)
In-Reply-To: <20210215155141.47432-4-laoar.shao@gmail.com>

Hello,

first, I am sorry for the late reply. I have marked the thread as
proceed by mistake last week...


On Mon 2021-02-15 23:51:41, Yafang Shao wrote:
> 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.
> 
> One 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,
> [ 8448.272530] Slab 0x0000000090797883 objects=33 used=3 fp=0x00000000790f1c26 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,
> [11585.830272] test_printf: loaded.
> [11585.830454] test_printf: all 388 tests passed
> [11585.831401] test_printf: unloaded.
> 
> --- a/lib/vsprintf.c
> +++ b/lib/vsprintf.c
> +static
> +char *format_page_flags(char *buf, char *end, unsigned long flags)
> +{
> +	unsigned long main_flags = flags & (BIT(NR_PAGEFLAGS) - 1);
> +	bool append = false;
> +	int i;
> +
> +	/* Page flags from the main area. */
> +	if (main_flags) {
> +		buf = format_flags(buf, end, main_flags, pageflag_names);
> +		append = true;
> +	}
> +
> +	/* Page flags from the fields area */
> +	for (i = 0; i < ARRAY_SIZE(pff); i++) {
> +		/* Skip undefined fields. */
> +		if (!pff[i].width)
> +			continue;
> +
> +		/* Format: Flag Name + '=' (equals sign) + Number + '|' (separator) */
> +		if (append) {
> +			if (buf < end)
> +				*buf = '|';
> +			buf++;
> +		}
> +
> +		buf = string(buf, end, pff[i].name, *pff[i].spec);

I have found one more small issue.

The purpose of the flag-specific printk_spec is to define the format
how the value is printed. The name of the flag should be printed
using default_str_spec.

It works because the string is printed as-is with both
default_dec_spec and default_flag_spec. But it would be better
to use the string format.

> +		if (buf < end)
> +			*buf = '=';
> +		buf++;
> +		buf = number(buf, end, (flags >> pff[i].shift) & pff[i].mask,
> +			     *pff[i].spec);
> +
> +		append = true;
> +	}
> +
> +	return buf;
> +}

Otherwise, the patch looks to me. The issue is cosmetic and might be
fixed either by re-spinning just this patch or by a followup patch.
Either way, feel free to use:

Reviewed-by: Petr Mladek <pmladek@suse.com>

Another question where to push this change. It is pity the we
finalized it in the middle of the merge window. It has to spend
at least few days in linux-next.

I would like to hear from Andy before I push it into linux-next.
There is still theoretical chance to get it into 5.12 when Linus
prolongs the merge window by one week. it has been delayed by
a long lasting power outage.

Best Regards,
Petr

  parent reply	other threads:[~2021-02-22 13:12 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-15 15:51 [PATCH v5 0/3] mm, vsprintf: dump full information of page flags in pGp Yafang Shao
2021-02-15 15:51 ` [PATCH v5 1/3] mm, slub: use pGp to print page flags Yafang Shao
2021-02-15 15:51 ` [PATCH v5 2/3] mm, slub: don't combine pr_err with INFO Yafang Shao
2021-02-17 18:21   ` David Rientjes
2021-02-15 15:51 ` [PATCH v5 3/3] vsprintf: dump full information of page flags in pGp Yafang Shao
2021-02-22  9:59   ` Yafang Shao
2021-02-22 12:38   ` Petr Mladek [this message]
2021-02-22 13:39     ` Matthew Wilcox
2021-03-03 15:43       ` Petr Mladek
2021-03-09 10:21         ` Petr Mladek
2021-02-23  1:10     ` Yafang Shao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YDOluaRK2CHtQyQD@alley \
    --to=pmladek@suse.com \
    --cc=akpm@linux-foundation.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=cl@linux.com \
    --cc=david@redhat.com \
    --cc=iamjoonsoo.kim@lge.com \
    --cc=joe@perches.com \
    --cc=laoar.shao@gmail.com \
    --cc=linmiaohe@huawei.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=penberg@kernel.org \
    --cc=rientjes@google.com \
    --cc=rostedt@goodmis.org \
    --cc=sergey.senozhatsky@gmail.com \
    --cc=vbabka@suse.cz \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).