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 C6F58C7EE23 for ; Wed, 24 May 2023 02:50:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 49B5D280002; Tue, 23 May 2023 22:50:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 448B1280001; Tue, 23 May 2023 22:50:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3109E280002; Tue, 23 May 2023 22:50:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 22725280001 for ; Tue, 23 May 2023 22:50:23 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id CF8F64085B for ; Wed, 24 May 2023 02:50:22 +0000 (UTC) X-FDA: 80823619884.17.22E827C Received: from mail-yb1-f182.google.com (mail-yb1-f182.google.com [209.85.219.182]) by imf25.hostedemail.com (Postfix) with ESMTP id E71EDA0004 for ; Wed, 24 May 2023 02:50:20 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=E242buCI; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf25.hostedemail.com: domain of hughd@google.com designates 209.85.219.182 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684896620; h=from:from:sender: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=CXoxikPl3gEJxlnM6PPv+fB+r1BmUcnQVHMJHjf9m9w=; b=RshjxVkLslkogeMbh4gYp8g9y/uu73qZOAME0qTKjb/9nuoG1xD7ynOmRzn8BAcdDolCqX HA8jlUaZtT+KukF2a5Z1lExv+6nvce7FmT0lNo0W4YFMmBTwM9jaXrtfZ1bHM3c7QYt7p7 2nsbQ5umiOcJNV+QrKgxTtZphD0hL1s= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=E242buCI; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf25.hostedemail.com: domain of hughd@google.com designates 209.85.219.182 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684896620; a=rsa-sha256; cv=none; b=3RGrcUb6JRc4nUAaAKcH+7zno9MRnHxq9MxkXgIe4/4CeT/F0hnDf12cWD80WryGxnvF1r WB/VgARzGNQEcEOL7MqOIzb6IiWEzqtpTbXfgkLrUVZiNiLKIDQTQxHt5ot2JFVwefbPOI RJBnYne78Ll6NEr033mpFtAgAFRsm8E= Received: by mail-yb1-f182.google.com with SMTP id 3f1490d57ef6-ba1815e12efso402980276.3 for ; Tue, 23 May 2023 19:50:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1684896620; x=1687488620; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=CXoxikPl3gEJxlnM6PPv+fB+r1BmUcnQVHMJHjf9m9w=; b=E242buCI6Gers0XctOZ0oDN64lMMOcafyfENPz5whRcrKDFQx6LDEoH8FZYFW88CBK q5UjVKR4tfE+oWLtkypPnF7Sf1S6e4tRr0QDHX62SpT+aOGz3v9yx+U1GHBkbpHp8zpF oJa6tqNPuQRrDOBcC9YETc6fGxIMIZdl5GjggCjTtDw8nULfK7I0UrUct6FvAsV//fiV 1+xuEX4PvoShCuPVta1XDAffD/sk2GMjAwgTzDBphXrLcHGQUCTXsYVgE2IRZJyQlTBh 6FB6zwFl3S5jC41456lkVhfaI4/7djXgJjieao8l05wxylkq9Ufz8v6W5fk4/I4b4Gsi 5CuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684896620; x=1687488620; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=CXoxikPl3gEJxlnM6PPv+fB+r1BmUcnQVHMJHjf9m9w=; b=cAOfCaH3gYKnt6WvusqBjpksAIQkkX2hLxmiuaI79e+8TdNYM2RmR072o6QPzxm38T xicjHUuu6v9KNf4gjoc/skYJTvgCdXcjsdRIxLE/NEQBRe1ZLkeXx6CLNXtovv0AoRGT yXQ0b8yK00y08Dsze9/yT2n7SCpjwp0ErKgEKmSkgtqkKBePf+NpV/H8U1SFYN0a4UDd Nx6kj/jGrp93p0xzUde6fSa5UWzbrQIprLs7Il8MXtYR8vx57axLEm0l1PmbfDBpjjOP 70faQutN8IbGw/6CC7eP2zL0fH0aKT81tZq9jc958VMEmpvQgCxvLCaXVtHtIwjo29Da aOFg== X-Gm-Message-State: AC+VfDwVbakW7rJwLHT9YVdyqbsF2G53m2nn2T+hZKLL0lCrlwF8QEsj Dw7fTJFyBZYUS4df1Jr7aCGbbg== X-Google-Smtp-Source: ACHHUZ4iJ+u6pCZV4miMKFbhg+2eSHrwqr7FXyA957lHKdcq3XE9+TzdSP6uIBPbGEMy4RtZzKy33g== X-Received: by 2002:a81:75c4:0:b0:561:f6eb:d18a with SMTP id q187-20020a8175c4000000b00561f6ebd18amr16272154ywc.13.1684896619945; Tue, 23 May 2023 19:50:19 -0700 (PDT) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id f126-20020a0dc384000000b00560df23d30csm3381845ywd.117.2023.05.23.19.50.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 May 2023 19:50:19 -0700 (PDT) Date: Tue, 23 May 2023 19:50:16 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.attlocal.net To: Qi Zheng cc: Alistair Popple , Hugh Dickins , Andrew Morton , Mike Kravetz , Mike Rapoport , "Kirill A. Shutemov" , Matthew Wilcox , David Hildenbrand , Suren Baghdasaryan , Qi Zheng , Yang Shi , Mel Gorman , Peter Xu , Peter Zijlstra , Will Deacon , Yu Zhao , Ralph Campbell , Ira Weiny , Steven Price , SeongJae Park , Naoya Horiguchi , Christophe Leroy , Zack Rusin , Jason Gunthorpe , Axel Rasmussen , Anshuman Khandual , Pasha Tatashin , Miaohe Lin , Minchan Kim , Christoph Hellwig , Song Liu , Thomas Hellstrom , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH 13/31] mm/hmm: retry if pte_offset_map() fails In-Reply-To: <1d5d7f30-1a6a-5ea1-165f-65d34e7658e9@linux.dev> Message-ID: <89461cb2-ec2c-719c-8a50-1f76e8048ef@google.com> References: <68a97fbe-5c1e-7ac6-72c-7b9c6290b370@google.com> <2edc4657-b6ff-3d6e-2342-6b60bfccc5b@google.com> <0e3c5937-2f04-25d9-98eb-01e4c2b04150@linux.dev> <87353n9354.fsf@nvidia.com> <1d5d7f30-1a6a-5ea1-165f-65d34e7658e9@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: E71EDA0004 X-Stat-Signature: ozcckxhhqjm335wnt9rizcidoiin49kf X-Rspam-User: X-HE-Tag: 1684896620-414254 X-HE-Meta: U2FsdGVkX1+GJwm3m93vx2EOsTg5M39nIdrj5ddVIfaC5Jv3e4MFkmFajcPlxufuHX8qt5fzeTAdz+VdYLryKyOFD84Pedg39H6E8YXagiWRybri9zXK7R6sDiE4bZZfwa4sd9rj/xKFSGLNEOd+dY2WN/mVmIUcto4XvhFEFrZopjmtDq2nlwMQ3jW4P6qtK8KugxpW/COELoplhL0QgT+/gkVz0XUIKjJtVBrw7HvqzDzg9MUEloEVFRchwugMAQeTxmaz506oFr+SyQPyO/8fbHTSkgLpN5Ylmd0IKiQCrQw6IKVV8H3d3ukmOslqDjXWqiyTl4No4kPNl9c2RL8lylVymXBwb1mrCL/UN//UUDt6fuZ9xwzEBdYmcu2xOtFd3wtMWqATHGrP93rkmBjMYZOsA83+75jGHKjWCJptKV+dT2EZmcfZCgtuxtPp4NuLTaFbU0ECjmHGtU2POkPIWrV58zJHXopVOGJ/4dWDmd7KA414NhHwZBAK6oLYwjnsPUXSjOGAPlcje1NTo0CU1B1+w2UW3dSTckWV1zvmgfyCiwhUsR2CSx0cW8w29+ACWi31qcmUXJ3Q6BCD2uaQhYM0UjGcInYLEHIqlgg6RO5MOOmLPXVvrxj6bXi7tc7OOsgmeQO86WXMWsG8SFYkytV40jE5hEar59Bnr/yalCzoKof2Ov/wlPN7cOY2KSTsojCDWLdzRTC3FdpuwUaVUMVF0W86oMldij8tdzDnUo9lskC28tsdeqtMdW4u7NN3YCAKxB44yKNeaQvy7+3MQyZDx7yfCsa0/t8vpP+5LrFi6oV6gt6rJ5o2LvOOwpYSFIWPRrGWJJqCUT+ExiIrebzhz7Fip/HjxzbF7kADDOmBGalVHzEwjAfWgyQX+b49ADLh7FGn8kjCq2hmBbuvx/d25szxHzbvJBLsS65B5SvxSCwt2H1Y/Vl3x/j+/t6SN3KMEMvmIBiQz+2 L2QiafOp 9q00IsxOtVJt08yLa9Me/p0n1EQboIp+noGHzVkSlAAYdMb6IhqgtV1hlkvPjpCn3TNvM3Sn331N96yeS/g0bnF/Bg/v2ltFRWuvTZ3xRVHkB+DCHMQr1uJUA03VCZ/lnnkj5D7lmYsoYFl0O5VFA2lMj2uolLU8hFhZY75JxltwZrPs14Oqh/rlrthj6RvCkNqVKS9Oby/7dgzxCOk6VIajeYWw4dAGAzzBmC24VO03a+KhS2kU8P/2Iy0NB7L/BFzyZ0bkj0vrVsbeUZx+B8lkXhAzydpefEUs59AuraIOWPp/wCNwR+EVpVV/b7DFaGkEPWrXMWbAmcroUkTMNw5gQB7PoPj/KWNwKV8b3aljZaDm5Vkeoj/UooZTny/hmUvgtUk3aIu3mlraEuV0t7cscDxjW3vGZRQ7W48a6XEufyi4D/HlgEjfUiA== 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: On Tue, 23 May 2023, Qi Zheng wrote: > On 2023/5/23 10:39, Alistair Popple wrote: > > Qi Zheng writes: > >> On 2023/5/22 13:05, Hugh Dickins wrote: > >>> hmm_vma_walk_pmd() is called through mm_walk, but already has a goto > >>> again loop of its own, so take part in that if pte_offset_map() fails. > >>> Signed-off-by: Hugh Dickins > >>> --- > >>> mm/hmm.c | 2 ++ > >>> 1 file changed, 2 insertions(+) > >>> diff --git a/mm/hmm.c b/mm/hmm.c > >>> index e23043345615..b1a9159d7c92 100644 > >>> --- a/mm/hmm.c > >>> +++ b/mm/hmm.c > >>> @@ -381,6 +381,8 @@ static int hmm_vma_walk_pmd(pmd_t *pmdp, > >>> } > >>> ptep = pte_offset_map(pmdp, addr); > >>> + if (!ptep) > >>> + goto again; > >>> for (; addr < end; addr += PAGE_SIZE, ptep++, hmm_pfns++) { > >>> int r; > >>> > >> > >> I haven't read the entire patch set yet, but taking a note here. > >> The hmm_vma_handle_pte() will unmap pte and then call > >> migration_entry_wait() to remap pte, so this may fail, we need to > >> handle this case like below: > > > > I don't see a problem here. Sure, hmm_vma_handle_pte() might return > > -EBUSY but that will get returned up to hmm_range_fault() which will > > retry the whole thing again and presumably fail when looking at the PMD. > > Yeah. There is no problem with this and the modification to > migration_entry_wait() can be simplified. My previous thought was that > we can finish the retry logic in hmm_vma_walk_pmd() without handing it > over to the caller. :) Okay, Alistair has resolved this one, thanks, I agree; but what is "the modification to migration_entry_wait()" that you refer to there? I don't think there's any need to make it a bool, it's normal for there to be races on entry to migration_entry_wait(), and we're used to just returning to caller (and back up to userspace) when it does not wait. Hugh