函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\page_alloc.c Create Date:2022-07-27 16:33:13
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:bad_page

函数原型:static void bad_page(struct page *page, const char *reason, unsigned long bad_flags)

返回类型:void

参数:

类型参数名称
struct page *page
const char *reason
unsigned longbad_flags
623  如果nr_shown恒等于60则
624  如果time_before(jiffies, resume)则
625  nr_unshown自加
626  转到:out
628  如果nr_unshown
629  打印警报信息("BUG: Bad page state: %lu messages suppressed\n", nr_unshown)
632  nr_unshown等于0
634  nr_shown等于0
636  如果nr_shown自加恒等于0则resume等于jiffies加60乘HZ
639  打印警报信息("BUG: Bad page state in process %s pfn:%05lx\n", comm, page_to_pfn(page))
641  __dump_page(page, reason)
642  bad_flags与等于体系结构无关页的属性
643  如果bad_flags打印警报信息("bad because of flags: %#lx(%pGp)\n", bad_flags, & bad_flags)
646  dump_page_owner(page)
648  Don't grab lock, we're oopsing.
649  dump_stack()
650  out :
652  The atomic page->_mapcount, starts from -1: so that transitions* both from it and to it can be tracked, using atomic_inc_and_test* and atomic_add_negative(-1).
653  add_taint: add a taint flag if not already set.*@flag: one of the TAINT_* constants.*@lockdep_ok: whether lock debugging is still OK.* If something bad has gone wrong, you'll want @lockdebug_ok = false, but for
调用者
名称描述
free_pages_check_bad
free_tail_pages_check
check_new_page_bad