在 2020/3/4 下午4:02, Kirill A. Shutemov 写道: > On Mon, Mar 02, 2020 at 07:00:16PM +0800, Alex Shi wrote: >> @@ -2564,6 +2565,9 @@ static void __split_huge_page(struct page *page, struct list_head *list, >> xa_lock(&swap_cache->i_pages); >> } >> >> + /* Lru list would be changed, don't care head's LRU bit. */ >> + spin_lock_irqsave(&pgdat->lru_lock, flags); >> + >> for (i = HPAGE_PMD_NR - 1; i >= 1; i--) { >> __split_huge_page_tail(head, i, lruvec, list); >> /* Some pages can be beyond i_size: drop them from page cache */ > > You change locking order WRT i_pages lock. Is it safe? > Thanks Kirill, I think so. and lock_dep/proving has no complain. Any problem addressed? Alex