mbox series

[v6,resend,0/3] mm, vsprintf: dump full information of page flags in pGp

Message ID 20210319101246.73513-1-laoar.shao@gmail.com (mailing list archive)
Headers show
Series mm, vsprintf: dump full information of page flags in pGp | expand

Message

Yafang Shao March 19, 2021, 10:12 a.m. UTC
The existed pGp shows the names of page flags only, rather than the full
information including section, node, zone, last cpuipid and kasan tag.
While it is not easy to parse these information manually because there
are so many flavors. We'd better interpret them in printf.

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 added information is
tracked onto the end of the existed one, e.g.
[ 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 result of the
test cases as follows,
[68599.816764] test_printf: loaded.
[68599.819068] test_printf: all 388 tests passed
[68599.830367] test_printf: unloaded.

This patchset also includes some code cleanup in mm/slub.c.

v6:
- fixes the build failure and test failure reported by kernel test robot

v5:
- remove the bitmap and better name the struct, per Petr

v4:
- extend %pGp instead of introducing new format, per Matthew

v3:
- coding improvement, per Joe and Andy
- the possible impact on debugfs and the fix of it, per Joe and Matthew
- introduce new format instead of changing pGp, per Andy

v2:
- various coding improvement, per Joe, Miaohe, Vlastimil and Andy
- remove the prefix completely in patch #2, per Vlastimil
- Update the test cases, per Andy

Yafang Shao (3):
  mm, slub: use pGp to print page flags
  mm, slub: don't combine pr_err with INFO
  vsprintf: dump full information of page flags in pGp

 Documentation/core-api/printk-formats.rst |  2 +-
 lib/test_printf.c                         | 90 ++++++++++++++++++++---
 lib/vsprintf.c                            | 66 +++++++++++++++--
 mm/slub.c                                 | 13 ++--
 4 files changed, 149 insertions(+), 22 deletions(-)

Comments

Yafang Shao March 19, 2021, 10:15 a.m. UTC | #1
On Fri, Mar 19, 2021 at 6:13 PM Yafang Shao <laoar.shao@gmail.com> wrote:
>
> The existed pGp shows the names of page flags only, rather than the full
> information including section, node, zone, last cpuipid and kasan tag.
> While it is not easy to parse these information manually because there
> are so many flavors. We'd better interpret them in printf.
>
> 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 added information is
> tracked onto the end of the existed one, e.g.
> [ 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 result of the
> test cases as follows,
> [68599.816764] test_printf: loaded.
> [68599.819068] test_printf: all 388 tests passed
> [68599.830367] test_printf: unloaded.
>
> This patchset also includes some code cleanup in mm/slub.c.
>
> v6:
> - fixes the build failure and test failure reported by kernel test robot
>
> v5:
> - remove the bitmap and better name the struct, per Petr
>
> v4:
> - extend %pGp instead of introducing new format, per Matthew
>
> v3:
> - coding improvement, per Joe and Andy
> - the possible impact on debugfs and the fix of it, per Joe and Matthew
> - introduce new format instead of changing pGp, per Andy
>
> v2:
> - various coding improvement, per Joe, Miaohe, Vlastimil and Andy
> - remove the prefix completely in patch #2, per Vlastimil
> - Update the test cases, per Andy
>
> Yafang Shao (3):
>   mm, slub: use pGp to print page flags
>   mm, slub: don't combine pr_err with INFO
>   vsprintf: dump full information of page flags in pGp
>
>  Documentation/core-api/printk-formats.rst |  2 +-
>  lib/test_printf.c                         | 90 ++++++++++++++++++++---
>  lib/vsprintf.c                            | 66 +++++++++++++++--
>  mm/slub.c                                 | 13 ++--
>  4 files changed, 149 insertions(+), 22 deletions(-)
>
> --
> 2.18.2
>

Hi Petr,

Any comments on this version ?

Thanks
Yafang
Petr Mladek March 19, 2021, 12:22 p.m. UTC | #2
On Fri 2021-03-19 18:15:19, Yafang Shao wrote:
> On Fri, Mar 19, 2021 at 6:13 PM Yafang Shao <laoar.shao@gmail.com> wrote:
> Hi Petr,
> 
> Any comments on this version ?

I have been busy this week with some other work. I am going to review
the original v6 either later today or the following week.

Best Regards,
Petr

PS: I usually react quickly but it is not always possible. There was
no need to resend the entire patchset twice within one week.
Sergey Senozhatsky March 19, 2021, 3:03 p.m. UTC | #3
On (21/03/19 18:12), Yafang Shao wrote:
> 
> The existed pGp shows the names of page flags only, rather than the full
> information including section, node, zone, last cpuipid and kasan tag.
> While it is not easy to parse these information manually because there
> are so many flavors. We'd better interpret them in printf.
> 
> 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 added information is
> tracked onto the end of the existed one, e.g.
> [ 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 result of the
> test cases as follows,
> [68599.816764] test_printf: loaded.
> [68599.819068] test_printf: all 388 tests passed
> [68599.830367] test_printf: unloaded.
> 
> This patchset also includes some code cleanup in mm/slub.c.

The series looks good to me. FWIW,

Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Petr Mladek March 19, 2021, 4:05 p.m. UTC | #4
On Fri 2021-03-19 18:12:43, Yafang Shao wrote:
> The existed pGp shows the names of page flags only, rather than the full
> information including section, node, zone, last cpuipid and kasan tag.
> While it is not easy to parse these information manually because there
> are so many flavors. We'd better interpret them in printf.
> 
> This patchset also includes some code cleanup in mm/slub.c.
> 
> v6:
> - fixes the build failure and test failure reported by kernel test robot
> 
> 
> Yafang Shao (3):
>   mm, slub: use pGp to print page flags
>   mm, slub: don't combine pr_err with INFO
>   vsprintf: dump full information of page flags in pGp
> 
>  Documentation/core-api/printk-formats.rst |  2 +-
>  lib/test_printf.c                         | 90 ++++++++++++++++++++---
>  lib/vsprintf.c                            | 66 +++++++++++++++--
>  mm/slub.c                                 | 13 ++--
>  4 files changed, 149 insertions(+), 22 deletions(-)

The patchset has been pushed into printk/linux.git, branch
for-5.13-vsprintf-pgp. It should appear in linux-next again.

The first two patches are the same as in v5 that has already been
pushed earlier. I probably should have replaced only the last patch
but I rebased everything. It was too easy with the b4 tool. And
it is Friday late afternoon here.

Best Regards,
Petr