On 11/07/18 at 11:18am, Michal Hocko wrote: > From: Michal Hocko <mhocko@xxxxxxxx> > > __dump_page messages use KERN_EMERG resp. KERN_ALERT loglevel (this is > the case since 2004). Most callers of this function are really detecting > a critical page state and BUG right after. On the other hand the > function is called also from contexts which just want to inform about > the page state and those would rather not disrupt logs that much (e.g. > some systems route these messages to the normal console). > > Reduce the loglevel to KERN_WARNING to make dump_page easier to reuse > for other contexts while those messages will still make it to the kernel > log in most setups. Even if the loglevel setup filters warnings away > those paths that are really critical already print the more targeted > error or panic and that should make it to the kernel log. > > Signed-off-by: Michal Hocko <mhocko@xxxxxxxx> > --- > mm/debug.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/mm/debug.c b/mm/debug.c > index a33177bfc856..d18c5cea3320 100644 > --- a/mm/debug.c > +++ b/mm/debug.c > @@ -54,7 +54,7 @@ void __dump_page(struct page *page, const char *reason) > * dump_page() when detected. > */ > if (page_poisoned) { > - pr_emerg("page:%px is uninitialized and poisoned", page); > + pr_warn("page:%px is uninitialized and poisoned", page); > goto hex_only; > } > > @@ -65,27 +65,27 @@ void __dump_page(struct page *page, const char *reason) > */ > mapcount = PageSlab(page) ? 0 : page_mapcount(page); > > - pr_emerg("page:%px count:%d mapcount:%d mapping:%px index:%#lx", > + pr_warn("page:%px count:%d mapcount:%d mapping:%px index:%#lx", pr_warn("page:%px refcount:%d mapcount:%d mapping:%px index:%#lx", Better print it as refcount since we have renamed it. > page, page_ref_count(page), mapcount, > page->mapping, page_to_pgoff(page)); > if (PageCompound(page)) > pr_cont(" compound_mapcount: %d", compound_mapcount(page)); > pr_cont("\n"); > if (PageAnon(page)) > - pr_emerg("anon "); > + pr_warn("anon "); > else if (PageKsm(page)) > - pr_emerg("ksm "); > + pr_warn("ksm "); > else if (mapping) { > - pr_emerg("%ps ", mapping->a_ops); > + pr_warn("%ps ", mapping->a_ops); > if (mapping->host->i_dentry.first) { > struct dentry *dentry; > dentry = container_of(mapping->host->i_dentry.first, struct dentry, d_u.d_alias); > - pr_emerg("name:\"%*s\" ", dentry->d_name.len, dentry->d_name.name); > + pr_warn("name:\"%*s\" ", dentry->d_name.len, dentry->d_name.name); > } > } > BUILD_BUG_ON(ARRAY_SIZE(pageflag_names) != __NR_PAGEFLAGS + 1); > > - pr_emerg("flags: %#lx(%pGp)\n", page->flags, &page->flags); > + pr_warn("flags: %#lx(%pGp)\n", page->flags, &page->flags); > > hex_only: > print_hex_dump(KERN_ALERT, "raw: ", DUMP_PREFIX_NONE, 32, > @@ -93,11 +93,11 @@ void __dump_page(struct page *page, const char *reason) > sizeof(struct page), false); > > if (reason) > - pr_alert("page dumped because: %s\n", reason); > + pr_warn("page dumped because: %s\n", reason); > > #ifdef CONFIG_MEMCG > if (!page_poisoned && page->mem_cgroup) > - pr_alert("page->mem_cgroup:%px\n", page->mem_cgroup); > + pr_warn("page->mem_cgroup:%px\n", page->mem_cgroup); > #endif > } > > -- > 2.19.1 >