在 2020/8/6 上午6:43, Alexander Duyck 写道: >> @@ -878,9 +877,8 @@ void release_pages(struct page **pages, int nr) >> spin_lock_irqsave(&locked_pgdat->lru_lock, flags); >> } >> >> - lruvec = mem_cgroup_page_lruvec(page, locked_pgdat); >> - VM_BUG_ON_PAGE(!PageLRU(page), page); >> __ClearPageLRU(page); >> + lruvec = mem_cgroup_page_lruvec(page, locked_pgdat); >> del_page_from_lru_list(page, lruvec, page_off_lru(page)); >> } >> > The more I look at this piece it seems like this change wasn't really > necessary. If anything it seems like it could catch potential bugs as > it was testing for the PageLRU flag before and then clearing it > manually anyway. In addition it doesn't reduce the critical path by > any significant amount so I am not sure these changes are providing > any benefit. Don't know hat kind of bug do you mean here, since the page is no one using, means no one could ClearPageLRU in other place, so if you like to keep the VM_BUG_ON_PAGE, that should be ok. Thanks! Alex