From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0A096D1171C for ; Fri, 25 Oct 2024 08:00:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 61D836B0082; Fri, 25 Oct 2024 04:00:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5CD466B0083; Fri, 25 Oct 2024 04:00:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 494C16B0085; Fri, 25 Oct 2024 04:00:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 31E116B0082 for ; Fri, 25 Oct 2024 04:00:01 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 18A661A0612 for ; Fri, 25 Oct 2024 07:59:26 +0000 (UTC) X-FDA: 82711375320.19.9944308 Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) by imf11.hostedemail.com (Postfix) with ESMTP id 25A1640026 for ; Fri, 25 Oct 2024 07:59:34 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="VSd/Bc8y"; spf=pass (imf11.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.43 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729842993; h=from:from:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=KJBrHuhC71b9d9mEh5vuVEy7EQsmOikHH1LPFS9v5z8=; b=zd/rFjFKpGTs4DFu7hpFe13HxOPKeR3UUyo6GBCzbKrAhv8fzS9s7HSNjYfJ1xvZyUIJBp Vc5Xb3n5QZPyKPVp/zA7Cof4t7eN6KDN5cVFyKuogrmeXAhnrEC3/CH4fqY1OZZIL4Rrom xXVSLCMvAq4TleHWDCyHTZFHiMJ62HQ= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="VSd/Bc8y"; spf=pass (imf11.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.43 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729842993; a=rsa-sha256; cv=none; b=OvTDSoaQfum39Pw3VzBZtnGPzgxinrzAOaJs9+74+Sb7sx0bS1RaR40bmmc9hlx8pLNTqi jYsnJPXJb028ihToCgVdZSqPmupHTbEJvobivsB3rMDuUX6KS1jWFfn30Tc0hLHkwBl6GE lrinefmJe4fwkMdXUsc9jAckMS24GwM= Received: by mail-ej1-f43.google.com with SMTP id a640c23a62f3a-a9a156513a1so251791966b.0 for ; Fri, 25 Oct 2024 00:59:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729843197; x=1730447997; darn=kvack.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=KJBrHuhC71b9d9mEh5vuVEy7EQsmOikHH1LPFS9v5z8=; b=VSd/Bc8yKEzCJd+wz0Mlaymeu++rkl1mozrJZ7cC7jl5h123Xe0lScAeisqUfUbClU tBFMBbkbGiQxTXX41+HY+fwSlZEKkGZOALvVQvj3CLusXRYllwDI2ypPNAkqGsJ/3uHz p5BgOphWhXkuIFpJF2LuUcasXmZQAZ2S9QH8oW4pGZk6Paxr24uWhDARTssKfFqrQ/0M dB/uA0T+KAEE21o+SCt/PrFb7eZlX8vyLjYfs7tqigO78JuXvtBJrrtUP5kRYByBChsx 8IHiHuskq+aQ1oq/hDXFYB+hs370hjxjbfkeTzHkpID+JtKe3pBjYo9qrwDkyslv/2VU BBvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729843197; x=1730447997; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KJBrHuhC71b9d9mEh5vuVEy7EQsmOikHH1LPFS9v5z8=; b=KgKXOqyHxvPc3iDrCu5rF89CjExph2q2FaxmHZq+zUAKUibVNfLJKkuf3dW2YbxKYL rMc6LMOwcWyEZuX8KRpgojXjMJUE68Qm+bDnZLYNG4Ld/pIh/L53CASEtOOcq1cbzkgn 90PXjO6jYkO6KpbijWBSnVRoWFdZ7JYMzNaKZ82kkWTpjrYpPqAI8FTXS0crErpAZrzN 0g4RRHm2/GiHrRDncFUj0qwoDR5VSdq+mwztPwazSdOYYffrXCx9xYlHk6XmAMGyIi49 ehEuDrdTqGENbhhc9E149aW+jYQqWb+aRiLBUg8DruDA3Vb9+W6CJGBdmVPa48DQP8DG 873g== X-Forwarded-Encrypted: i=1; AJvYcCUt+Uhw6ZPFD3sismyhFKABMPfEtOyJypvjgoexcVxp0dU6sGiJG1ftvYvuuCG3a55UydXbnEp0Dw==@kvack.org X-Gm-Message-State: AOJu0Ywp7tDQywHWmQL+gwwDDxBJqbW5pe4RzwLlVBoFhvTml7dWpc9s DhYjLJzTSC85JIWdZ0PYq3VpaBYWjDa8InEK2VenC4Pm2bmmkYZa X-Google-Smtp-Source: AGHT+IEfHSZTAShXyiSkf/0hPxl0dFJnkkPzqqBuLY9BdmDBO/cqOGuu0X7SoQSAgI35W4z+d02Igw== X-Received: by 2002:a17:907:7f29:b0:a9a:1585:dd3b with SMTP id a640c23a62f3a-a9ad2730c3fmr432332466b.21.1729843196848; Fri, 25 Oct 2024 00:59:56 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a9b1dec7aa9sm40183266b.35.2024.10.25.00.59.56 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 Oct 2024 00:59:56 -0700 (PDT) Date: Fri, 25 Oct 2024 07:59:55 +0000 From: Wei Yang To: Lorenzo Stoakes Cc: Wei Yang , akpm@linux-foundation.org, Liam.Howlett@oracle.com, vbabka@suse.cz, jannh@google.com, linux-mm@kvack.org Subject: Re: [PATCH 1/3] mm/vma: miss to restore vmi.index on expansion failure Message-ID: <20241025075955.hczpuimxcfqhjv5x@master> Reply-To: Wei Yang References: <20241025031847.6274-1-richard.weiyang@gmail.com> <20241025031847.6274-2-richard.weiyang@gmail.com> <848b5701-9dec-4c69-bcca-f9186090978a@lucifer.local> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <848b5701-9dec-4c69-bcca-f9186090978a@lucifer.local> User-Agent: NeoMutt/20170113 (1.7.2) X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 25A1640026 X-Stat-Signature: 5f1taoqh5w5tpsygqyend16ny6dj853b X-Rspam-User: X-HE-Tag: 1729843174-109315 X-HE-Meta: U2FsdGVkX1+JRtagcE3CIdxbnLVS/YCgD54NVa3GDXILjgbv/4RhAfyz//igGY230KNXtmq/gQZvPsmO1adjOPTkFscx0K5CSeHjl3o5p8wHFyPjrb91e2wfR86hhcp5OJ14/uVorRKtUV6v3QPkNCYjiZawjvqCi7diy0wtPCPVRq2Da7UDf2yHyEzCFXjPUGCQMosagchxmX+o0YPhAwlC6S7CzuFNg1pqNEQwkOt46AvB6AE1Te031B4sITQpFjlA1G6PT8+YPOESDO9Dyzt6rLC23RASJ39smbgrtyIpC4gxAZ+N9NJqJCC4od9DPKKEEEhV/SI7TaP3LpJ1faAUVdMZKEIkZxyXL0mqHteB3AHVUxBK1tcAn2VBrtfvRs/dWzemTj6DsI1e8/Zre0vh6clEIb46YaojxqA1UhwUTDItWiiol6dq1Jc/RVahwQKsHzQq58V0maAjgrocKaFbu7IaAWsNVT+dOcmhYKMDb4sTbFOmi4FOL8aWXjOMMJwBvqzkOIv7ZJSfCarMGsAI7RwyvXBYxIR9Ds1C8yJQ7Il81t6JhqgQOQzZBLbrnA8Sktokc88ycV5Rk0GXgPNQ8CKygso9JHzWcbxv9DclWUfd1wifgW1WOsAR/s14LLz6y8GawgNzTO2QLjuomK1ZJWIu27I9ArQrc0XxB9KV7IFyvFnmtLvNUQ2LERaR/0zFuSBJrcK2/FT47qABxJxDnKj/DQmW9bo74D3VTXEssvKzdbdR/Dbsy7lwDUTZPuaUQRYH/D3UlI7Wkx25kdserKewjBTugY9nquIFj1P+bIIfsXPfwAjXnqy1NGilJwpwV0isED6oXfGnTcwiMRB3UhlbihcbNP+/et11VRcuxVZcbDGQMu9vI1pa8aKNIDJNZ7HIV0/76ximEwOZOVg1khSvJFj7I97SdyWqePdh/9pfGmCwN60/m0rgXB3yquNF3SYyo49MGowtyHr HtegVs8z hLM0qRh1DMzIfueuCm82tITMZeCvMNTXC6tbfM0TxSJt35mesDqyJffSrC2Dn39Epx8NKG1Max6hqBHw3PNiNv+R7ezwpFQsq0o5huAGjf5+Fmg0TyQ+ZMR2kxJP2Enll9234z2FytAXPQLmDx8Eromm9umGLlE9IngpMno7Ve84Zl9tPmcxxe7nCg1vtMumySpYF+xpDs7atnfGQFGbkkEjn2HpsvU41h9cwxsY8zFeVRO0xGK8T9vd+Klwx8kgcH8sItjUNlMMBxUofZwsgnvwHT7dvy08S48zxgxQETlUkGzes8B+xhK6OK430U/MBcuLXyD4/ypHdREpYoF++kharQqDSsfhmYHoXNGOoi0U46jvNRU81x3sF4wdQTUmVn5Czy8KoXtsUpzpCp5hs0nL0KQ1oHmyfK0wY4PXRN6EimFpVWzMb3iWjd7v+Wt1lHc79zpS84ZUmQ54WsHFVUmU9TpyqPf6mYQ7cjiuUU9co4n2tHyOP6TblxL6ISYAd8cjNdwg4GmcDCjGLIMHEkFrJzFfwISzwsVtm/IjK91fZrSx2RPC5do5VkMyF91bzx0RH2BCcp671YqXXXhPND2i07OTmeNxY0TyKJqnCZ6E6uoZ/4UOptH0J9FAeVKB1Cgncc1NMkCrsaApzb4D0SijuIveeIB/G+EZh X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri, Oct 25, 2024 at 08:06:06AM +0100, Lorenzo Stoakes wrote: >On Fri, Oct 25, 2024 at 03:18:45AM +0000, Wei Yang wrote: >> On expansion failure, we try to restore vmg state, but we missed to >> restore vmi.index. The reason is we have reset vmg->vma before checking. >> So let's put the operation before reset vmg->vma. >> >> Also we don't need to do the restore if there is no mergeable adjacent >> VMA. Let's take it out to skip the unnecessary operations. >> >> Signed-off-by: Wei Yang >> CC: Lorenzo Stoakes >> --- >> mm/vma.c | 10 +++++++--- >> 1 file changed, 7 insertions(+), 3 deletions(-) >> >> diff --git a/mm/vma.c b/mm/vma.c >> index fb4f1863f88e..c94d953d453c 100644 >> --- a/mm/vma.c >> +++ b/mm/vma.c >> @@ -954,23 +954,27 @@ struct vm_area_struct *vma_merge_new_range(struct vma_merge_struct *vmg) >> vma_prev(vmg->vmi); /* Equivalent to going to the previous range */ >> } >> >> + /* No mergeable adjacent VMA, return */ >> + if (!vmg->vma) >> + return NULL; >> + > >Kind of a pet peeve of mine is throwing in a random refactoring thats not >mentioned in the commit message. Please don't do that. > >I think it's fine as it is. > >> /* >> * Now try to expand adjacent VMA(s). This takes care of removing the >> * following VMA if we have VMAs on both sides. >> */ >> - if (vmg->vma && !vma_expand(vmg)) { >> + if (!vma_expand(vmg)) { >> khugepaged_enter_vma(vmg->vma, vmg->flags); >> vmg->state = VMA_MERGE_SUCCESS; >> return vmg->vma; >> } >> >> /* If expansion failed, reset state. Allows us to retry merge later. */ >> + if (vmg->vma == prev) >> + vma_iter_set(vmg->vmi, start); > >Good spot in that we've stupidly been setting the vma NULL each time before >comparing... (doh and mea culpa!), but this actually accidentally proves we >don't need to bother resetting this at all :) > >The only case where we care about a reset is mmap_region(), and there we reset >the iterator _anyway_. > >> vmg->vma = NULL; >> vmg->start = start; >> vmg->end = end; >> vmg->pgoff = pgoff; >> - if (vmg->vma == prev) >> - vma_iter_set(vmg->vmi, start); > >So please replace this whole series with a patch that just removes these >lines, thanks! > >Also what tree are you making this change against? All mm changes should be >against akpm's tree in the mm-unstable branch. This change looks like it's >against another tree, as the code for this function has changed. > For mm-unstable, this is what you expect? diff --git a/mm/vma.c b/mm/vma.c index b5c1adcb6992..03b4838026ab 100644 --- a/mm/vma.c +++ b/mm/vma.c @@ -1003,16 +1003,6 @@ struct vm_area_struct *vma_merge_new_range(struct vma_merge_struct *vmg) return vmg->vma; } - /* If expansion failed, reset state. Allows us to retry merge later. */ - if (!just_expand) { - vmg->vma = NULL; - vmg->start = start; - vmg->end = end; - vmg->pgoff = pgoff; - if (vmg->vma == prev) - vma_iter_set(vmg->vmi, start); - } - return NULL; } >> >> return NULL; >> } >> -- >> 2.34.1 >> >> -- Wei Yang Help you, Help me