Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752708AbdGSGtZ (ORCPT ); Wed, 19 Jul 2017 02:49:25 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:58705 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752102AbdGSGtY (ORCPT ); Wed, 19 Jul 2017 02:49:24 -0400 Subject: Re: [RFC] mm/mremap: Remove redundant checks inside vma_expandable() To: Michal Hocko , Anshuman Khandual References: <20170710111059.30795-1-khandual@linux.vnet.ibm.com> <20170710134917.GB19645@dhcp22.suse.cz> <20170711060354.GA24852@dhcp22.suse.cz> <4c182da0-6c84-df67-b173-6960fac0544a@suse.cz> <20170711065030.GE24852@dhcp22.suse.cz> <337a8a4c-1f27-7371-409d-6a9f181b3871@suse.cz> <8bcc5908-7f0d-ba5c-a484-e0763f9b7664@linux.vnet.ibm.com> <20170711112253.GA11936@dhcp22.suse.cz> Cc: Vlastimil Babka , linux-mm@kvack.org, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, mike.kravetz@oracle.com From: Anshuman Khandual Date: Wed, 19 Jul 2017 12:19:04 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: <20170711112253.GA11936@dhcp22.suse.cz> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable x-cbid: 17071906-0008-0000-0000-0000015155E9 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17071906-0009-0000-0000-000009822FFC Message-Id: X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-07-19_04:,, 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-1706020000 definitions=main-1707190111 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1846 Lines: 35 On 07/11/2017 04:52 PM, Michal Hocko wrote: > On Tue 11-07-17 16:38:46, Anshuman Khandual wrote: >> On 07/11/2017 12:26 PM, Vlastimil Babka wrote: >>> On 07/11/2017 08:50 AM, Michal Hocko wrote: >>>> On Tue 11-07-17 08:26:40, Vlastimil Babka wrote: >>>>> On 07/11/2017 08:03 AM, Michal Hocko wrote: >>>>>> Are you telling me that two if conditions cause more than a second >>>>>> difference? That sounds suspicious. >>>>> It's removing also a call to get_unmapped_area(), AFAICS. That means a >>>>> vma search? >>>> Ohh, right. I have somehow missed that. Is this removal intentional? >>> I think it is: "Checking for availability of virtual address range at >>> the end of the VMA for the incremental size is also reduntant at this >>> point." >>> >>>> The >>>> changelog is silent about it. >>> It doesn't explain why it's redundant, indeed. Unfortunately, the commit >>> f106af4e90ea ("fix checks for expand-in-place mremap") which added this, >>> also doesn't explain why it's needed. >> Its redundant because there are calls to get_unmapped_area() down the >> line in the function whose failure will anyway fail the expansion of >> the VMA. > mremap code is quite complex and I am not sure you are right here. > Anyway, please make sure you document why you believe those checks are > not needed when resubmitting your patch. vma_adjust() expands/contracts the given VMA and adjusts everything around it like anon vma, rb tree, statistics etc but it never checks whether the requested expansion/contraction is OK from arch point of view by calling get_unmapped_area() some where. IIUC now the function vma_expandable() does that check for it beforehand. Hence I think its required. My tests happened to pass may be because of coincidence that every thing (all the VA space) was up for grabs at that point of time. So, will drop this patch.