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 C52EEC433FE for ; Wed, 2 Nov 2022 18:25:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4DDD78E0002; Wed, 2 Nov 2022 14:25:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 48EB98E0001; Wed, 2 Nov 2022 14:25:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 37D3B8E0002; Wed, 2 Nov 2022 14:25:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 284B68E0001 for ; Wed, 2 Nov 2022 14:25:13 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id DF5A11A0767 for ; Wed, 2 Nov 2022 18:25:12 +0000 (UTC) X-FDA: 80089329264.07.59B7F29 Received: from mail-yw1-f176.google.com (mail-yw1-f176.google.com [209.85.128.176]) by imf20.hostedemail.com (Postfix) with ESMTP id 0629B1C000A for ; Wed, 2 Nov 2022 18:25:10 +0000 (UTC) Received: by mail-yw1-f176.google.com with SMTP id 00721157ae682-36cbcda2157so173957987b3.11 for ; Wed, 02 Nov 2022 11:25:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=1kbwkKX+sRp/asQjjFL1Ko1bMveXw+rKnglQsWanHFs=; b=WoCBgkCh/p6HxXfamrMPBXHTO77bRvWGttUgmqw+WH/QBssnreuw9HqD/817VzgGi+ 67vdfJFhskGx7uMhIsupnsX34oTJSPeegqCuTWyLSTOLf9cW35kK6YT/TRBbdOYsi7Hv fVIHwOXodpfWouv/PyX5z+kMVOqnYpOwWFnLrhUWMwjlSAyIhDvI3C14tr5kcUYLxrZI uSBfbtHCxgNfKV77n6RagNUYrNYkKUWec3H7ktXMbRgDiAtyll4ELilPrkoutmmgcppO YL+aXIgKbD5yWV9CIlqm94zJfR94shXMlwyM3r0abqm5AvmH8LXlC7FAsXTRUiQTNZSy Gvmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=1kbwkKX+sRp/asQjjFL1Ko1bMveXw+rKnglQsWanHFs=; b=6IR/NAd62KGGnfV5uO0X49C9BLFrAa5ExgsSOey1+rW7EcO+oqpcZWDkzfG2zZVmYS VANxLCz+jGW59rMejjrQlzGzXaoz0/sil6+aJr242fCRy6XFb2XtRgwtsmNjxaBV9J/2 EbyBZuTMbXZ7UR71J5zXsCV/UxK4fxl2sYih1Ka4OnbU6fnRV55Kyvb0WpI9YFgGxUm8 wIUAJYDsE0jPshr0CvuFi58idFklRNCDASg742yxblBm36k4IMBB5cHzp0oi6Fbzrzuw V0n/Jo/KbSv/4uaOXZ41dGfmezhE/1h6rZn/4m/9juJyy1Gr5Mn36DLVmTrmZenVIt6W hZ+A== X-Gm-Message-State: ACrzQf1M/m93sNXkQUXYA8gTjUePf8BHHdgT3M0Y3G1TmHaXyKrL9ufc loj/tJcUS+pIbLOny3PwkFKik5H5IKC7fGfB0n/w6A== X-Google-Smtp-Source: AMsMyM5v/eJW9i50DN+NzVD9ezpb5qYX9pClKltAKgGxNJ4qekRpyxbWDvoTpBtXBXf1CBt9SsO0OKaqyWyjtDUvwQ4= X-Received: by 2002:a81:4e8f:0:b0:36a:7e82:92a5 with SMTP id c137-20020a814e8f000000b0036a7e8292a5mr23866656ywb.395.1667413510115; Wed, 02 Nov 2022 11:25:10 -0700 (PDT) MIME-Version: 1.0 References: <20221030212929.335473-1-peterx@redhat.com> <20221030212929.335473-8-peterx@redhat.com> In-Reply-To: <20221030212929.335473-8-peterx@redhat.com> From: James Houghton Date: Wed, 2 Nov 2022 11:24:57 -0700 Message-ID: Subject: Re: [PATCH RFC 07/10] mm/hugetlb: Make hugetlb_follow_page_mask() RCU-safe To: Peter Xu Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , Miaohe Lin , David Hildenbrand , Muchun Song , Andrea Arcangeli , Nadav Amit , Mike Kravetz , Rik van Riel Content-Type: text/plain; charset="UTF-8" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1667413511; a=rsa-sha256; cv=none; b=vW1ErBaTGhSnXecv1ym8qq4mIBCmMlDOA110PWGwBg/4jYyyj5S3msIWGqGV90kIjVHO3h 3R3N6ynKCM9ZEdd+m7UbNSHZeRWXjP2bsdbUTnOvqB0QuFceKw7GkDjwboPA2O4IES4o3U UuPCGwQu2bEjUl67ldF6ed+WHr0g88E= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=WoCBgkCh; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf20.hostedemail.com: domain of jthoughton@google.com designates 209.85.128.176 as permitted sender) smtp.mailfrom=jthoughton@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1667413511; 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=1kbwkKX+sRp/asQjjFL1Ko1bMveXw+rKnglQsWanHFs=; b=aHH6l/TvVUtHKU7QVKmHCrX03Q3l6oVbQLYGma/fL5yCytgD8bvssA43mrlyw/5MXKRhWm ewmpqmzt84Gm5aTGGl8lCj5ajIBzH9bSsr6gwN0JS29gtj0ArH/EQ4+1t1ub7EfAkoKmTD AML7lTl3laZbk7OnxXy5WT+SlAUHAhA= X-Stat-Signature: rtjbiu3u4ikoymoni81ytki3ewu3mb33 X-Rspamd-Queue-Id: 0629B1C000A Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=WoCBgkCh; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf20.hostedemail.com: domain of jthoughton@google.com designates 209.85.128.176 as permitted sender) smtp.mailfrom=jthoughton@google.com X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1667413510-776581 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 Sun, Oct 30, 2022 at 2:29 PM Peter Xu wrote: > > RCU makes sure the pte_t* won't go away from under us. Please refer to the > comment above huge_pte_offset() for more information. > > Signed-off-by: Peter Xu > --- > mm/hugetlb.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 9869c12e6460..85214095fb85 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -6229,10 +6229,12 @@ struct page *hugetlb_follow_page_mask(struct vm_area_struct *vma, > if (WARN_ON_ONCE(flags & FOLL_PIN)) > return NULL; > > + /* For huge_pte_offset() */ > + rcu_read_lock(); > retry: > pte = huge_pte_offset(mm, haddr, huge_page_size(h)); > if (!pte) > - return NULL; > + goto out_rcu; > > ptl = huge_pte_lock(h, mm, pte); Just to make sure -- this huge_pte_lock doesn't count as "blocking" (for the purposes of what is allowed in an RCU read-side critical section), right? If so, great! But I think we need to call `rcu_read_unlock` before entering `__migration_entry_wait_huge`, as that function really can block. - James > entry = huge_ptep_get(pte); > @@ -6266,6 +6268,8 @@ struct page *hugetlb_follow_page_mask(struct vm_area_struct *vma, > } > out: > spin_unlock(ptl); > +out_rcu: > + rcu_read_unlock(); > return page; > } > > -- > 2.37.3 >