From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965148AbcFMJid (ORCPT ); Mon, 13 Jun 2016 05:38:33 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:62851 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S964895AbcFMJib (ORCPT ); Mon, 13 Jun 2016 05:38:31 -0400 X-IBM-Helo: d23dlp02.au.ibm.com X-IBM-MailFrom: khandual@linux.vnet.ibm.com X-IBM-RcptTo: linux-kernel@vger.kernel.org Date: Mon, 13 Jun 2016 15:08:19 +0530 From: Anshuman Khandual User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Minchan Kim , Andrew Morton CC: 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 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> In-Reply-To: <20160531000117.GB18314@bbox> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16061309-0016-0000-0000-000001A4D78A X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 16061309-0017-0000-0000-000004D00C7D Message-Id: <575E7F0B.8010201@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-06-13_05:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1604210000 definitions=main-1606130107 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. Regards Anshuman