[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <575E7F0B.8010201@linux.vnet.ibm.com>
Date: Mon, 13 Jun 2016 15:08:19 +0530
From: Anshuman Khandual <khandual@...ux.vnet.ibm.com>
To: Minchan Kim <minchan@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>
CC: linux-mm@...ck.org, linux-kernel@...r.kernel.org,
Rik van Riel <riel@...hat.com>,
Vlastimil Babka <vbabka@...e.cz>,
Joonsoo Kim <iamjoonsoo.kim@....com>,
Mel Gorman <mgorman@...e.de>, Hugh Dickins <hughd@...gle.com>,
Rafael Aquini <aquini@...hat.com>,
virtualization@...ts.linux-foundation.org,
Jonathan Corbet <corbet@....net>,
John Einar Reitan <john.reitan@...s.arm.com>,
dri-devel@...ts.freedesktop.org,
Sergey Senozhatsky <sergey.senozhatsky@...il.com>,
Gioh Kim <gi-oh.kim@...fitbricks.com>
Subject: Re: [PATCH v6v3 02/12] mm: migrate: support non-lru movable page
migration
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
Powered by blists - more mailing lists