From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932541AbcFOCcs (ORCPT ); Tue, 14 Jun 2016 22:32:48 -0400 Received: from LGEAMRELO11.lge.com ([156.147.23.51]:54194 "EHLO lgeamrelo11.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932285AbcFOCcr (ORCPT ); Tue, 14 Jun 2016 22:32:47 -0400 X-Original-SENDERIP: 156.147.1.151 X-Original-MAILFROM: minchan@kernel.org X-Original-SENDERIP: 10.177.223.161 X-Original-MAILFROM: minchan@kernel.org Date: Wed, 15 Jun 2016 11:32:49 +0900 From: Minchan Kim To: Anshuman Khandual Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Rik van Riel , Vlastimil Babka , Joonsoo Kim , Mel Gorman , Hugh Dickins , Rafael Aquini , virtualization@lists.linux-foundation.org, Jonathan Corbet , John Einar Reitan , dri-devel@lists.freedesktop.org, Sergey Senozhatsky , Gioh Kim Subject: Re: [PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration Message-ID: <20160615023249.GG17127@bbox> References: <1463754225-31311-1-git-send-email-minchan@kernel.org> <1463754225-31311-3-git-send-email-minchan@kernel.org> <20160530013926.GB8683@bbox> <20160531000117.GB18314@bbox> <575E7F0B.8010201@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <575E7F0B.8010201@linux.vnet.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On Mon, Jun 13, 2016 at 03:08:19PM +0530, Anshuman Khandual wrote: > On 05/31/2016 05:31 AM, Minchan Kim wrote: > > @@ -791,6 +921,7 @@ static int __unmap_and_move(struct page *page, struct page *newpage, > > int rc = -EAGAIN; > > int page_was_mapped = 0; > > struct anon_vma *anon_vma = NULL; > > + bool is_lru = !__PageMovable(page); > > > > if (!trylock_page(page)) { > > if (!force || mode == MIGRATE_ASYNC) > > @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage, > > goto out_unlock_both; > > } > > > > + if (unlikely(!is_lru)) { > > + rc = move_to_new_page(newpage, page, mode); > > + goto out_unlock_both; > > + } > > + > > Hello Minchan, > > I might be missing something here but does this implementation support the > scenario where these non LRU pages owned by the driver mapped as PTE into > process page table ? Because the "goto out_unlock_both" statement above > skips all the PTE unmap, putting a migration PTE and removing the migration > PTE steps. You're right. Unfortunately, it doesn't support right now but surely, it's my TODO after landing this work. Could you share your usecase? It would be helpful for merging when I wll send patchset. Thanks!