Messages in this thread | | | Subject | Re: [PATCH] mm: warn only once if page table misaccounting is detected | From | William Kucharski <> | Date | Tue, 27 Nov 2018 08:55:47 -0700 |
| |
> On Nov 27, 2018, at 8:52 AM, Sean Christopherson <sean.j.christopherson@intel.com> wrote: > > On Tue, Nov 27, 2018 at 09:36:03AM +0100, Heiko Carstens wrote: >> Use pr_alert_once() instead of pr_alert() if page table misaccounting >> has been detected. >> >> If this happens once it is very likely that there will be numerous >> other occurrence as well, which would flood dmesg and the console with >> hardly any added information. Therefore print the warning only once. >> >> Cc: Kirill A. Shutemov <kirill@shutemov.name> >> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> >> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> >> --- >> kernel/fork.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/kernel/fork.c b/kernel/fork.c >> index 07cddff89c7b..c887e9eba89f 100644 >> --- a/kernel/fork.c >> +++ b/kernel/fork.c >> @@ -647,8 +647,8 @@ static void check_mm(struct mm_struct *mm) >> } >> >> if (mm_pgtables_bytes(mm)) >> - pr_alert("BUG: non-zero pgtables_bytes on freeing mm: %ld\n", >> - mm_pgtables_bytes(mm)); >> + pr_alert_once("BUG: non-zero pgtables_bytes on freeing mm: %ld\n", >> + mm_pgtables_bytes(mm)); > > I found the print-always behavior to be useful when developing a driver > that mucked with PTEs directly via vmf_insert_pfn() and had issues with > racing against exit_mmap(). It was nice to be able to recompile only > the driver and rely on dmesg to let me know when I messed up yet again. > > Would pr_alert_ratelimited() suffice?
Actually, I really like that idea.
There are certainly times when it is useful to see a cascade of messages, within reason; one there are so many they overflow the dmesg buffer they're of limited usefulness.
Something like a pr_alert() that could rate limit to a preset value, perhaps a default of fifty or so, could prove quite useful indeed without being an all or once choice.
William Kucharski
| |