Messages in this thread |  | | Date | Thu, 9 Jul 2020 19:07:50 +0300 | From | "Kirill A. Shutemov" <> | Subject | Re: a question of split_huge_page |
| |
On Thu, Jul 09, 2020 at 04:50:02PM +0100, Matthew Wilcox wrote: > On Thu, Jul 09, 2020 at 11:11:11PM +0800, Alex Shi wrote: > > Hi Kirill & Matthew, > > > > In the func call chain, from split_huge_page() to lru_add_page_tail(), > > Seems tail pages are added to lru list at line 963, but in this scenario > > the head page has no lru bit and isn't set the bit later. Why we do this? > > or do I miss sth? > > I don't understand how we get to split_huge_page() with a page that's > not on an LRU list. Both anonymous and page cache pages should be on > an LRU list. What am I missing?
Right, and it's never got removed from LRU during the split. The tail pages have to be added to LRU because they now separate from the tail page.
-- Kirill A. Shutemov
|  |