Re: [PATCHv12 34/37] thp: introduce deferred_split_huge_page()

2016-01-20 Thread Andrea Arcangeli
Hello Kirill, On Tue, Oct 06, 2015 at 06:24:01PM +0300, Kirill A. Shutemov wrote: > +static unsigned long deferred_split_scan(struct shrinker *shrink, > + struct shrink_control *sc) > +{ > + unsigned long flags; > + LIST_HEAD(list), *pos, *next; > + struct page *page; > +

Re: [PATCHv12 34/37] thp: introduce deferred_split_huge_page()

2016-01-20 Thread Andrea Arcangeli
Hello Kirill, On Tue, Oct 06, 2015 at 06:24:01PM +0300, Kirill A. Shutemov wrote: > +static unsigned long deferred_split_scan(struct shrinker *shrink, > + struct shrink_control *sc) > +{ > + unsigned long flags; > + LIST_HEAD(list), *pos, *next; > + struct page *page; > +

[PATCHv12 34/37] thp: introduce deferred_split_huge_page()

2015-10-06 Thread Kirill A. Shutemov
Currently we don't split huge page on partial unmap. It's not an ideal situation. It can lead to memory overhead. Furtunately, we can detect partial unmap on page_remove_rmap(). But we cannot call split_huge_page() from there due to locking context. It's also counterproductive to do directly

[PATCHv12 34/37] thp: introduce deferred_split_huge_page()

2015-10-06 Thread Kirill A. Shutemov
Currently we don't split huge page on partial unmap. It's not an ideal situation. It can lead to memory overhead. Furtunately, we can detect partial unmap on page_remove_rmap(). But we cannot call split_huge_page() from there due to locking context. It's also counterproductive to do directly