Re: [PATCH v2 3/3] vsprintf: dump full information of page flags in pGp

From: David Hildenbrand
Date: Mon Feb 01 2021 - 08:34:13 EST


On 01.02.21 14:23, David Hildenbrand wrote:
On 01.02.21 12:56, 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.

- 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)

For debugging purposes, it might be helpful to have the actual zone name
(and to know if the value is sane). You could obtain it (without other
modifications) via

const char zname = "Invalid";

if (zone < MAX_NR_ZONES)
zname = first_online_pgdat()->node_zones[zone].name;


Similarly, it might also be helpful to indicate if a node is
online/offline/invalid/.

const char nstate = "Invalid";

if (node_online(nid))
nstate = "Online";
else if (node_possible(nid))
nstate = "Offline";

Just remembering that we have to take care of nid limits:

if (nid >= 0 && nid < MAX_NUMNODES) {
if (node_online(nid))
nstate = "Online";
else if (node_possible(nid))
nstate = "Offline";
}

--
Thanks,

David / dhildenb