On Thu, Jan 28, 2021 at 6:35 PM Vlastimil Babka <vbabka@xxxxxxx> wrote: > > On 1/28/21 3:19 AM, Yafang Shao wrote: > > It is strange to combine "pr_err" with "INFO", so let's clean them up. > > 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 > > [ 6312.639698] ERR: Slab 0x000000006d1133b9 objects=33 used=3 fp=0x000000006d0779d1 flags=0x17ffffc0010200(slab|head) > > > > [1]. https://lore.kernel.org/linux-mm/b9c0f2b6-e9b0-0c36-ebdd-2bc684c5a762@xxxxxxxxxx/#t > > > > Cc: David Hildenbrand <david@xxxxxxxxxx> > > Signed-off-by: Yafang Shao <laoar.shao@xxxxxxxxx> > > These are usually printed as part of slab_bug() with its prominent banner. In > that sense it's additional details, thus INFO. The details itself are not error, > thus ERR makes little sense imho. How about removing the prefix completely, or > just replacing with an ident to make it visually part of the BUG report. > Thanks for the explanation. I will remove the prefix completely in the next version. > > --- > > mm/slub.c | 10 +++++----- > > 1 file changed, 5 insertions(+), 5 deletions(-) > > > > diff --git a/mm/slub.c b/mm/slub.c > > index 4b9ab267afbc..18b4474c8fa2 100644 > > --- a/mm/slub.c > > +++ b/mm/slub.c > > @@ -615,7 +615,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("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 > > { > > @@ -641,7 +641,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("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); > > > > @@ -698,7 +698,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("ERR: Object 0x%p @offset=%tu fp=0x%p\n\n", > > p, p - addr, get_freepointer(s, p)); > > > > if (s->flags & SLAB_RED_ZONE) > > @@ -791,7 +791,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("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); > > @@ -3855,7 +3855,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("ERR: Object 0x%p @offset=%tu\n", p, p - addr); > > print_tracking(s, p); > > } > > } > > > -- Thanks Yafang