Let me take another look at that logic. Thanks! Best wishes, -- Ning Qu (曲宁) | Software Engineer | quning@xxxxxxxxxx | +1-408-418-6066 On Tue, Oct 15, 2013 at 3:33 AM, Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> wrote: > Ning Qu wrote: >> in shmem_writepage, we have to split the huge page when moving pages >> from page cache to swap because we don't support huge page in swap >> yet. >> >> Signed-off-by: Ning Qu <quning@xxxxxxxxx> >> --- >> mm/shmem.c | 9 ++++++++- >> 1 file changed, 8 insertions(+), 1 deletion(-) >> >> diff --git a/mm/shmem.c b/mm/shmem.c >> index 8fe17dd..68a0e1d 100644 >> --- a/mm/shmem.c >> +++ b/mm/shmem.c >> @@ -898,6 +898,13 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc) >> swp_entry_t swap; >> pgoff_t index; >> >> + /* TODO: we have to break the huge page at this point, >> + * since we have no idea how to recover a huge page from >> + * swap. >> + */ >> + if (PageTransCompound(page)) >> + split_huge_page(compound_trans_head(page)); >> + > > After the split you handle here only first small page of the huge page. > Is it what we want to do? Should we swap out all small pages of the huge > page? > > -- > Kirill A. Shutemov -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href