Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752044AbdGGRQH (ORCPT ); Fri, 7 Jul 2017 13:16:07 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:45828 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751059AbdGGRQG (ORCPT ); Fri, 7 Jul 2017 13:16:06 -0400 Subject: Re: [RFC PATCH 1/1] mm/mremap: add MREMAP_MIRROR flag for existing mirroring functionality To: Anshuman Khandual , linux-mm@kvack.org, linux-api@vger.kernel.org, linux-kernel@vger.kernel.org References: <1499357846-7481-1-git-send-email-mike.kravetz@oracle.com> <1499357846-7481-2-git-send-email-mike.kravetz@oracle.com> Cc: Andrew Morton , Andrea Arcangeli , Michal Hocko , Aaron Lu , "Kirill A . Shutemov" From: Mike Kravetz Message-ID: <3a43d5fa-223d-1315-513b-85d3a09a07b6@oracle.com> Date: Fri, 7 Jul 2017 10:14:53 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Source-IP: userv0021.oracle.com [156.151.31.71] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1061 Lines: 24 On 07/07/2017 01:45 AM, Anshuman Khandual wrote: > On 07/06/2017 09:47 PM, Mike Kravetz wrote: >> The mremap system call has the ability to 'mirror' parts of an existing >> mapping. To do so, it creates a new mapping that maps the same pages as >> the original mapping, just at a different virtual address. This >> functionality has existed since at least the 2.6 kernel. >> >> This patch simply adds a new flag to mremap which will make this >> functionality part of the API. It maintains backward compatibility with >> the existing way of requesting mirroring (old_size == 0). >> >> If this new MREMAP_MIRROR flag is specified, then new_size must equal >> old_size. In addition, the MREMAP_MAYMOVE flag must be specified. > > Yeah it all looks good. But why is this requirement that if > MREMAP_MAYMOVE is specified then old_size and new_size must > be equal. No real reason. I just wanted to clearly separate the new interface from the old. On second thought, it would be better to require old_size == 0 as in the legacy interface. -- Mike Kravetz