On Tue, 2019-08-06 at 10:36 +0200, Michal Hocko wrote: > On Mon 05-08-19 20:05:27, Sai Praneeth Prakhya wrote: > > When a user process exits, the kernel cleans up the mm_struct of the user > > process and during cleanup, check_mm() checks the page tables of the user > > process for corruption (E.g: unexpected page flags set/cleared). For > > corrupted page tables, the error message printed by check_mm() isn't very > > clear as it prints the loop index instead of page table type (E.g: > > Resident > > file mapping pages vs Resident shared memory pages). The loop index in > > check_mm() is used to index rss_stat[] which represents individual memory > > type stats. Hence, instead of printing index, print memory type, thereby > > improving error message. > > > > Without patch: > > -------------- > > [ 204.836425] mm/pgtable-generic.c:29: bad p4d > > 0000000089eb4e92(800000025f941467) > > [ 204.836544] BUG: Bad rss-counter state mm:00000000f75895ea idx:0 val:2 > > [ 204.836615] BUG: Bad rss-counter state mm:00000000f75895ea idx:1 val:5 > > [ 204.836685] BUG: non-zero pgtables_bytes on freeing mm: 20480 > > > > With patch: > > ----------- > > [ 69.815453] mm/pgtable-generic.c:29: bad p4d > > 0000000084653642(800000025ca37467) > > [ 69.815872] BUG: Bad rss-counter state mm:00000000014a6c03 > > type:MM_FILEPAGES val:2 > > [ 69.815962] BUG: Bad rss-counter state mm:00000000014a6c03 > > type:MM_ANONPAGES val:5 > > [ 69.816050] BUG: non-zero pgtables_bytes on freeing mm: 20480 > > I like this. On any occasion I am investigating an issue with an rss > inbalance I have to go back to kernel sources to see which pte type that > is. > Hopefully, this patch will be useful to you the next time you run into any rss imbalance issues. > > Also, change print function (from printk(KERN_ALERT, ..) to pr_alert()) so > > that it matches the other print statement. > > good change as well. Maybe we should also lower the loglevel (in a > separate patch) as well. While this is not nice because we are > apparently leaking memory behind it shouldn't be really critical enough > to jump on normal consoles. Ya.. I think, probably could be lowered to pr_err() or pr_warn(). Regards, Sai