On 2022/4/11 22:18, Christoph Hellwig wrote: > On Sat, Apr 09, 2022 at 05:34:53PM +0800, Miaohe Lin wrote: >> We don't need to check can_split_folio() because folio_maybe_dma_pinned() >> is checked before. It will avoid the long term pinned pages to be swapped >> out. And we can live with short term pinned pages. Without can_split_folio >> checking we can simplify the code. Also activate_locked can be changed to >> keep_locked as it's just short term pinning. >> >> Suggested-by: Huang, Ying <ying.huang@xxxxxxxxx> >> Signed-off-by: Miaohe Lin <linmiaohe@xxxxxxxxxx> >> --- >> mm/vmscan.c | 22 ++++++++-------------- >> 1 file changed, 8 insertions(+), 14 deletions(-) >> >> diff --git a/mm/vmscan.c b/mm/vmscan.c >> index 4a76be47bed1..01f5db75a507 100644 >> --- a/mm/vmscan.c >> +++ b/mm/vmscan.c >> @@ -1711,20 +1711,14 @@ static unsigned int shrink_page_list(struct list_head *page_list, >> goto keep_locked; >> if (folio_maybe_dma_pinned(folio)) >> goto keep_locked; >> - if (PageTransHuge(page)) { >> - /* cannot split THP, skip it */ >> - if (!can_split_folio(folio, NULL)) >> - goto activate_locked; >> - /* >> - * Split pages without a PMD map right >> - * away. Chances are some or all of the >> - * tail pages can be freed without IO. >> - */ >> - if (!folio_entire_mapcount(folio) && >> - split_folio_to_list(folio, >> - page_list)) >> - goto activate_locked; >> - } >> + /* >> + * Split pages without a PMD map right >> + * away. Chances are some or all of the >> + * tail pages can be freed without IO. >> + */ > > This could use more of the line length and be more readable: > > /* > * Split pages without a PMD map right away. > * Chances are some or all of the tail pages > * can be freed without IO. > */ > Looks better. >> + if (PageTransHuge(page) && !folio_entire_mapcount(folio) && > > Please put the folio_entire_mapcoun ont a separate line to make this a > bit more redable. Will do in next version. Many thanks for your comment! > . >