[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <27ac2f51-e2bf-7645-7a76-0684248a5902@redhat.com>
Date: Wed, 12 Apr 2023 10:47:52 +0200
From: David Hildenbrand <david@...hat.com>
To: Peter Xu <peterx@...hat.com>, Lokesh Gidra <lokeshgidra@...gle.com>
Cc: Axel Rasmussen <axelrasmussen@...gle.com>,
Andrew Morton <akpm@...ux-foundation.org>,
"open list:MEMORY MANAGEMENT" <linux-mm@...ck.org>,
linux-kernel <linux-kernel@...r.kernel.org>,
Andrea Arcangeli <aarcange@...hat.com>,
"Kirill A . Shutemov" <kirill@...temov.name>,
"Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
Brian Geffon <bgeffon@...gle.com>,
Suren Baghdasaryan <surenb@...gle.com>,
Kalesh Singh <kaleshsingh@...gle.com>,
Nicolas Geoffray <ngeoffray@...gle.com>,
Jared Duke <jdduke@...gle.com>,
android-mm <android-mm@...gle.com>,
Blake Caldwell <blake.caldwell@...orado.edu>,
Mike Rapoport <rppt@...nel.org>
Subject: Re: RFC for new feature to move pages from one vma to another without
split
On 06.04.23 19:29, Peter Xu wrote:
> Hi, Lokesh,
>
> Sorry for a late reply. Copy Blake Caldwell and Mike too.
>
> On Thu, Feb 16, 2023 at 02:27:11PM -0800, Lokesh Gidra wrote:
>> I) SUMMARY:
>> Requesting comments on a new feature which remaps pages from one
>> private anonymous mapping to another, without altering the vmas
>> involved. Two alternatives exist but both have drawbacks:
>> 1. userfaultfd ioctls allocate new pages, copy data and free the old
>> ones even when updates could be done in-place;
>> 2. mremap results in vma splitting in most of the cases due to 'pgoff' mismatch.
>
> Personally it was always a mistery to me on how vm_pgoff works with
> anonymous vmas and why it needs to be setup with vm_start >> PAGE_SHIFT.
>
> Just now I tried to apply below oneliner change:
>
> @@ -1369,7 +1369,7 @@ unsigned long do_mmap(struct file *file, unsigned long addr,
> /*
> * Set pgoff according to addr for anon_vma.
> */
> - pgoff = addr >> PAGE_SHIFT;
> + pgoff = 0;
> break;
> default:
> return -EINVAL;
>
> The kernel even boots without a major problem so far..
I think it's for RMAP purposes.
Take a look at linear_page_index() and how it's, for example, used in
ksm_might_need_to_copy() alongside page->index.
--
Thanks,
David / dhildenb
Powered by blists - more mailing lists