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 6FC4FCED274 for ; Tue, 8 Oct 2024 07:58:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DFCB76B0083; Tue, 8 Oct 2024 03:58:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DAD016B0085; Tue, 8 Oct 2024 03:58:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C9B416B0088; Tue, 8 Oct 2024 03:58:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id AACCA6B0083 for ; Tue, 8 Oct 2024 03:58:11 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id D5D1641148 for ; Tue, 8 Oct 2024 07:58:09 +0000 (UTC) X-FDA: 82649681940.28.C2D2C78 Received: from mail-pg1-f175.google.com (mail-pg1-f175.google.com [209.85.215.175]) by imf11.hostedemail.com (Postfix) with ESMTP id 24C6F40016 for ; Tue, 8 Oct 2024 07:58:07 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Vy6dNXjz; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf11.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.215.175 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1728374140; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ilwU71p4JFHuhR5ku0P7wUYkTrTMS6pYXE6vb6DDuiw=; b=sS0sPz4EB9aSUnOVkB0Zi72+MATn/iI0ea02MgW7YN96cbTJaZCC7RZLxzYvxy8IUbsfBi 56tiLqkYzAQ1pky5TwIazOVEfPF8GVKgeEQmpUI+Nf2M0plwlYK+Rd7afNwayNWL4OFvXi i7Qeho8tSRTSnI0Dlf8KwoY1upDLClw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1728374140; a=rsa-sha256; cv=none; b=mzWTUuZh6B8jnssk6ZWkaNwBYyqXxGbQ/6lFEHQl4ZThMVbAf+1b02qfo3CiLO1jcRsJGZ e/hk7PdK7WteAriNPxvPTUBqWyI+QvL3xbQZSKrG2tb65K0CZNcfh9eDI7AMDd1slvfr9b 6V0mvxjiuTi6T2KQkZImklu7djY9aFU= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Vy6dNXjz; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf11.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.215.175 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com Received: by mail-pg1-f175.google.com with SMTP id 41be03b00d2f7-7db908c9c83so3348946a12.2 for ; Tue, 08 Oct 2024 00:58:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1728374287; x=1728979087; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=ilwU71p4JFHuhR5ku0P7wUYkTrTMS6pYXE6vb6DDuiw=; b=Vy6dNXjz6q4bjRWcXhUu73hJ4j4vC993v8RGcMYg1YWlMQKn/cy+TPaKDnDFWdnkOZ FOycs8vFRSLcpKtoCG8dzrc3AsBtWO83vIUyAa53rKNgM0MjiUGYyDAsYlczOuQSsIW4 jGSTmSwwattIm/GxkOcV8HUzh05lMITMRvV536Py4Gn+92kYR6rhRffSCd4++qnG8UH3 VwOepUHcTj6Wnhvi1o9hV7rEXgzyI6kEjahNxgUc+UM4hqzgfQFiwZGX+7SAHQOVwnbY Fq98bM+XromYrUvLTEHR4PKvjEUwckA/sSpOPPqI81Sd9u3eq+FizGw0pf66iNJmb5hw RNAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728374287; x=1728979087; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ilwU71p4JFHuhR5ku0P7wUYkTrTMS6pYXE6vb6DDuiw=; b=XRAk6cDOIdAJzJtzVCAUPZG0PJgpta9T4A8Us2mXWhOinIwQlCt0tLOUrrU5pA9Qmu PCtkoNKBrkfJe0fz88vi71wdFkxk4uHYUCxlikcbu6dNvTpF7/OhVqqrDCHrvmgx+yR1 fI2XqEsHgkaB4QJZGiTGYWElQaCGAehlHa/IgMLrbOd39wWEJodO3Ra682MyZrKaXwNr KVN6QW9C11vbf+CuwzywEJTozL2lvUFm2/Rs02l1SQuyhpkZQyP8OFg5bpQSZRJc1qG8 KaXOUVZi/bI18RCTh7N2+2X3dTZ3SWyZeq0C6i/A43tBS4r13VXDu/I8tRnjb1+zgezu p9JA== X-Forwarded-Encrypted: i=1; AJvYcCVR1NN25NHbrvkarFMo6FHkP6O29B6WB2926LkmSl2R9plk2qoP7p1pQxdBe6VNtjNI/p8ojw7RiQ==@kvack.org X-Gm-Message-State: AOJu0YxtKXviznHIErXvKmd8JnTR331+fQBIquMeZmMjPukv+m6nRtof 4WJoVzRtZttfhfoRJUAVVUvfOB14AznNmHlA1GNJjLsgCCqxX50XOPMrME5NzBU= X-Google-Smtp-Source: AGHT+IHN1g2uzj5AhSKq4svLeyrNe2KgneEIeIGEQbArzd+een94HcwN+eGFkVCRRabnx0ftu/fetg== X-Received: by 2002:a05:6a20:e18a:b0:1cf:658e:5107 with SMTP id adf61e73a8af0-1d6dfa44dd3mr22323407637.21.1728374286725; Tue, 08 Oct 2024 00:58:06 -0700 (PDT) Received: from [10.68.125.128] ([203.208.167.150]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-71df0d67bc8sm5764221b3a.177.2024.10.08.00.58.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 08 Oct 2024 00:58:06 -0700 (PDT) Message-ID: Date: Tue, 8 Oct 2024 15:58:00 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm/mremap: Fix move_normal_pmd/retract_page_tables race Content-Language: en-US To: David Hildenbrand Cc: Jann Horn , akpm@linux-foundation.org, linux-mm@kvack.org, willy@infradead.org, hughd@google.com, lorenzo.stoakes@oracle.com, joel@joelfernandes.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org References: <20241007-move_normal_pmd-vs-collapse-fix-2-v1-1-5ead9631f2ea@google.com> <1c114925-9206-42b1-b24b-bb123853a359@bytedance.com> <75fac79a-0ff2-4ba0-bdd7-954efe2d9f41@redhat.com> From: Qi Zheng In-Reply-To: <75fac79a-0ff2-4ba0-bdd7-954efe2d9f41@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 24C6F40016 X-Stat-Signature: roz4537xftodiit4oj7tsz4g9huhi3bc X-Rspam-User: X-HE-Tag: 1728374287-548028 X-HE-Meta: U2FsdGVkX1/nHQ92SsCHJwa5zc/JJ1wUKMTLmWmpx8VZwSxkTzzNYT00HVeL35PSbGLACx5RfavMo/c0eiN/99qQH0t9EfhkSVJin/FLVS8xd3bxpHzhotyWozbGyeqFflxCL96NweT+vbeORldqPha5o1h5GloGrsJBDlzzLJsYpwHOWMMTTJtvTRy9A0GTtQu5RRewdifxfBw3yTFdxvSs5zLyC/suoTXil/sxyBQB4aPz231rApekNBzRoesYOKLO7Bz/GZYIaL2RDn1e5DefuqOAm1qafsVA8hmD4stF+i5Y31R6ZpOhZin3cHLaJx1VKNVoeA8m+mNUqXfTFaWQx24lgaUWZZC8a1qwAKmT4TyY3+tvUj/a9gYi2+fOCt0WNhBmUEyovW3HqSABk+GmIFUHvDd+N4LYtnJtJIxV6nqzjrkouWOxOVgfpXo1M1k+/EaBn8xVdtx6K8OsrnW8jH9m3xtXMH139NvmImxM/mqSjdvWQElWb1F1KOC8ZXKEtg0aRjTyf9+1CgUNmnuPUM/PAaB/mEEkKkoITVmZ+qUHI9NOvi+kPnxc0rI81l6XWsxkBAIXLs8U4ofYIeQaPWdTmZZrlinCxatYFKZn29aG7+sFXqG9gxFfTLMNSmhRHgSfFRqDbjKxiv3mzxhuz285AIbQcva06olNQbFuN4s4M7bOq/M+e2FTlM7Fsv5lazD029FGiv11cxZicL49OAMzuqew11ACb/k128vQ+Rkw5gR0/PApPv7hSbUZx3ZgV3vArC3fvoBc9jAvt1rh62QptVMXQYY0RyLBSsqaIgP2NPv/9tlwajcJeNknuQXN+MODHmP0uDJh0161QQ0JujLxjk3j90jPqj3L2DygNBq0EkhHBB8tf0Ei4ZwrsucTahB9Pnm+zMu0eHOVRfxeUpL43O4mkd2cVK2pR20iPli/FV17QO3slP2igjK45i36+mQn2somEvYNfZy /0Y9bo9M qV0amOJbMZZpPnDEJHiBPhD5GnfwaOQYbQezwfyLoZ6GccWcyxXLswfBA/q2n0UVI9YFF90FyU7oFDlN8/RdbmPLpcZlKxuA8aYXDrbf9AK76QU5P8MttH9WqorBR7TnGbEq7D0rdg3qQtZByana8v20yBaIqXfOLLODKj3akAy0GUNMBUpi1FajKtQD/696iZ7NdEw3v0Ls5J537/2Xk7z+Q/SQ83oectTa52wn3RwI01T6ZRdzlFD6WRT9j3W4u0AF13FDaOAOsJ/BRNqUNDMlbz7NokTjktsU4jwp8ODjom95+BFT2a2ZGGx8vaC3DHvAhbQAumHwwYw0WWmE8+O0fS77oHA+66wYvnNGHVjwQM5qJhDgGY4OgyyOlUbewX/whNseTxjns8z/bvizMNWHUBveS64mKucVbTevIdT0RyHY= 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 2024/10/8 15:52, David Hildenbrand wrote: > On 08.10.24 05:53, Qi Zheng wrote: >> Hi Jann, >> >> On 2024/10/8 05:42, Jann Horn wrote: >> >> [...] >> >>> >>> diff --git a/mm/mremap.c b/mm/mremap.c >>> index 24712f8dbb6b..dda09e957a5d 100644 >>> --- a/mm/mremap.c >>> +++ b/mm/mremap.c >>> @@ -238,6 +238,7 @@ static bool move_normal_pmd(struct vm_area_struct >>> *vma, unsigned long old_addr, >>>    { >>>        spinlock_t *old_ptl, *new_ptl; >>>        struct mm_struct *mm = vma->vm_mm; >>> +    bool res = false; >>>        pmd_t pmd; >>>        if (!arch_supports_page_table_move()) >>> @@ -277,19 +278,25 @@ static bool move_normal_pmd(struct >>> vm_area_struct *vma, unsigned long old_addr, >>>        if (new_ptl != old_ptl) >>>            spin_lock_nested(new_ptl, SINGLE_DEPTH_NESTING); >>> -    /* Clear the pmd */ >>>        pmd = *old_pmd; >>> + >>> +    /* Racing with collapse? */ >>> +    if (unlikely(!pmd_present(pmd) || pmd_leaf(pmd))) >> >> Since we already hold the exclusive mmap lock, after a racing >> with collapse occurs, the pmd entry cannot be refilled with >> new content by page fault. So maybe we only need to recheck >> pmd_none(pmd) here? > > My thinking was that it is cheap and more future proof to check that we > really still have a page table here. For example, what if collapse code > is ever changed to replace the page table by the collapsed PMD? Ah, make sense. Acked-by: Qi Zheng > > So unless there is a good reason not to have this check here, I would > keep it like that. > > Thanks! >