Messages in this thread | | | Date | Mon, 16 May 2016 17:16:57 +0200 | From | Michal Hocko <> | Subject | Re: Question About Functions "__free_pages_check" and "check_new_page" in page_alloc.c |
| |
On Mon 16-05-16 21:42:23, Wang Xiaoqiang wrote: > Hi all, > > I am really confused about these two functions. The following code snippet: > > if(unlikely(atomic_read(&page->_mapcount) != -1)) > bad_reason ="nonzero mapcount";if(unlikely(page->mapping != NULL)) > bad_reason ="non-NULL mapping";if(unlikely(page_ref_count(page) !=0)) > bad_reason ="nonzero _count"; > ... > Wouldn't the previous value of "bad_reason" be overwritten by > the later? Hope to receive from you.
yes it would. Why that would matter. The checks should be in an order which could give us a more specific reason with later checks. bad_page() will then print more detailed information. -- Michal Hocko SUSE Labs
| |