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 98AC6D591C4 for ; Tue, 19 Nov 2024 06:54:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 773DF6B007B; Tue, 19 Nov 2024 01:54:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6FC2E6B0082; Tue, 19 Nov 2024 01:54:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5757E6B0083; Tue, 19 Nov 2024 01:54:06 -0500 (EST) 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 350456B007B for ; Tue, 19 Nov 2024 01:54:06 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id C4B844014F for ; Tue, 19 Nov 2024 06:54:05 +0000 (UTC) X-FDA: 82801929168.11.6637247 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) by imf24.hostedemail.com (Postfix) with ESMTP id 945D218000F for ; Tue, 19 Nov 2024 06:53:56 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=BeeAdSh2; spf=pass (imf24.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.210.170 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731999183; 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=d0MK2ZZbNRTSnFf6mDYAT1AUItf075doEb65NCpj4NE=; b=teV6CVBBqEAWtaSAKI91SsnWTimvqVuLaoCshMNIQqwGNjiMJTKlJCX4wsn4Q0MPiLS5nz s4FKShTrYwjxxP3ZKgHMAe9OFR75hm1TRnTJMLSBgdXgYBJ2Wins9yIAYl+55bvNRjdDFP 9+EEKuY2tsXk6OJztaqAggqgBVQRNiU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731999183; a=rsa-sha256; cv=none; b=rrjZVRKY6xyE8TTxmhLt7Lev8IqzEL4FZaPlo6e/Q2gneWJvO7hWjM6NA1FQxV7fs50SsR ZzIM6EIuqt8+/aXKOLz0WeO3Vg/UENShOUUZ+FZ/l6K1PgK2OOclGotI9YIdtvqBnr2iqt AD9hPs5b7Dk5E78odiB2IfHmtfctSuI= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=BeeAdSh2; spf=pass (imf24.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.210.170 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-72483f6e2f3so2170835b3a.1 for ; Mon, 18 Nov 2024 22:54:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1731999241; x=1732604041; 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=d0MK2ZZbNRTSnFf6mDYAT1AUItf075doEb65NCpj4NE=; b=BeeAdSh2LKOnIgnUrs9EOMU63DuorSEA8TExFb/92WbX9a0YrW9tWwQfT8J8cpxRIJ h3IglMWFSJWT6QMkhFhMFlG9SEhAK2kH20PlB6s5Z9nfhOlFn0oDoF6IYziDTpLzfKBn 7TwiPok6aRM848UH/Vj40mEsTEmjxLAi5j3HDVh7OOWhh32GB/T9Y+t2PLk+ErEcokPE 6I73vpyeaJT5QzCFnJad++bM+v4JgCB6DaymmmGog/SiHP+Ui3/J5M+5I8k2hr1AYr4d bk9dbdBwsoAA+Jl+YqaQrKYIlWAYL2TX5mScmyw2ShQh5Ycit/iFjnyBxra2J3gAOKL7 zpug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731999241; x=1732604041; 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=d0MK2ZZbNRTSnFf6mDYAT1AUItf075doEb65NCpj4NE=; b=mTOZKV3se93N39A4G4wcpS/zjL+nFL8FmSG+eWM5ctIxTPYlCad6RdRqMpiAABBNLE 28w8PyAzSWvTLN3uiWXF/b0c/bpEdPVsw94RuViYqZUhH6+246Ogyiv4bAMcJLEDPCAV mmSh7XFRKDwoK1vd17Dt6OqipUgA+VyDojj6QLlL6iUOyjSSax979PQkKceQrvTN9XZD eCcDHDo6/oLpYV3l2TDgEuKvmM1CS+JoJe8eVgYKoIv8Wx3uTx5bXUUZePRXTfi0qeOE mwTCHSKnvld1SQkZ/sNu8MFwAh0ScZ8XmSYoXiFx5BIsfXaV+J5/iovddoliy5dh/jNm meBQ== X-Forwarded-Encrypted: i=1; AJvYcCVTQSgjhWBPITbvmHlZ2vTQ+xY+u9QlE9VSKnK4dhTukr3YXTbarc0cWomZMlUlJPu45wGL4D0Cwg==@kvack.org X-Gm-Message-State: AOJu0YzccWXxKRkqk/O/r0lgOVg6m5IV3HGa7tja+2ZRtD6d3tzQSN4O SAKavBqLA372N9LEta2mc1QW3juXz3lcpKO8wx44CH2iidj91PIxVn10oRgKk0w= X-Google-Smtp-Source: AGHT+IHfZRlZ8R2nO4xU50Ru5p5Gp0v1FYpibD2q1Y3+p7G14fuKNvzXcu2cpcp/DsRLb1th9cZOGw== X-Received: by 2002:a05:6a00:3285:b0:724:6abf:b63e with SMTP id d2e1a72fcca58-724af8eaad2mr4231511b3a.5.1731999241414; Mon, 18 Nov 2024 22:54:01 -0800 (PST) Received: from [10.84.149.95] ([203.208.167.151]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-7fb9bb066easm336579a12.45.2024.11.18.22.53.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 18 Nov 2024 22:54:00 -0800 (PST) Message-ID: <21195425-53d9-4007-a020-8106f94158dc@bytedance.com> Date: Tue, 19 Nov 2024 14:53:52 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] docs/mm: add more warnings around page table access Content-Language: en-US To: Jann Horn Cc: Andrew Morton , Jonathan Corbet , Lorenzo Stoakes , "Liam R . Howlett" , Vlastimil Babka , Alice Ryhl , Boqun Feng , Matthew Wilcox , Mike Rapoport , Suren Baghdasaryan , Hillf Danton , Qi Zheng , SeongJae Park , Bagas Sanjaya , linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, Matteo Rizzo References: <20241118-vma-docs-addition1-onv3-v2-1-c9d5395b72ee@google.com> From: Qi Zheng In-Reply-To: <20241118-vma-docs-addition1-onv3-v2-1-c9d5395b72ee@google.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Stat-Signature: irrj5sodu3oqhm4n3k4rd57uebdt5uu7 X-Rspam-User: X-Rspamd-Queue-Id: 945D218000F X-Rspamd-Server: rspam02 X-HE-Tag: 1731999236-337977 X-HE-Meta: U2FsdGVkX1/758itvHGNWU7aqDIR7/mEFy/Efi+8ygh0gJLsxuiodwfqnv7lEdFhjCR6XpZK7DINoSSHClEy03rixmGH1oLqwjuycD7DXWjtWDMlAl5l1rGCn2lgORQOvSEEZ/sYZJkWrSeeEbJZcujPxA3mXgoPw/E61OpxY6r8tFG4mstTGrC/pwjfnBAZsZvzAZQlvs/T+DgdtRTKy19r5d8rrf0syX4xEf1d28czglKgi5Bpxz2puLjakLj3DBpNPFrbJFJWdSImbB8/zh4mEQaZ0l6slbH4isoSM7k9cojE5sbw82ngGvAhisdTwMP6GR/+yn0MTniSSbi5cn+LKMxxS3SyltS/YAfDrBDzhazrh0rpBxj+l07gx1Yl3I+efdol7p+srrH9uoSlOXxgLylGXnXoeueEIDRdqoyHBa/5+EZE/6NVUyIfnBCn9XkPajlpQsjAR4f45CvjHzk2vtWsGhTL9Dc/3IehJb9FgubxAGGfTuPozl+9oam8l7/GywYh1axiHWNmz47gZEkz2fMRj31aYCzZd1hQTEgPynV4jfOhUlVs2Hg1bDN2cvQqE3CWMzRS47YWMQz0LtsdRiVqoDA4L7EqdowR+k7yvf8WzzUuwn+6ML9BBhRg01EdyPC9R8iPnlxPKeCCUjNT7pPx2QvC8AMd22hcNTUsoDkUMD3p2AmJp8Z+MLLWvvpOdYasFIb00m0kqxa/OKYj8JyvBc7Jd7MQg+vpSEzjzrnwZGnr4ySjStXSOKRM5+7AzmS89cdq1pdADB/0JHwPwzXKw5OjKichedhzpZ5fyHAdipNo8AVshSZ7SFjYomx0wnV/8FY62WOrcFBTtX145EAU5IMQ94CtN9Ta7sEnU2M38x3vohYU53cALq4motpIj/QKxDmPBUSIkGu1BlHHssPynyJMx8Gk7DoNbc5tJuKTVh0B/dKpFB1XDkz4x9A9KZaMqa9ny7NAQ1x vxpsO0rF 4caQVltw7dR7S2lujmI8qmIDdcKGEp4jm3vcPiZDdrPfFvUQgGlkCUJ4uCJMgtLuXRs16e7BuDKdB+Ex3Np/i9Rk0bjEFTmmPF31qabbQOAx3041WKJmv3Jnv6d2hoNJZGFrNYjPZXljQTdizEjLDE+97GXxny/TEBn+8B7c+dkXN+DhlEdzKuM89x6jxPf6p8OM5GUizL0zjq3fDuR1oFnqsvrsX2B2xEyyuV5iT93C0MS70Aci8mQt7KEXctSiEBFvOWk72rfsTQAi/M5g6vKuUDhhHtMlYFzI0qUxMjwFXQor35aaCvZTIVoEnAFVjIonPT96UdSYfTBbgrjTGdDU3liC7MIeWMagnpWyRviyXMfeYwL3R4anyDXELkwi4yVybgUzJiWGluJRq6A1T00CqURgzRFr5yS3fFMFqu++KLqhSz63w55GqjPgWilVJvngcfbAulL5IbkcrFGB0eh3mmI8ocaC69R5CGzF2PXbdh1W//HVZTCR+lg== 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/11/19 00:47, Jann Horn wrote: > Make it clearer that holding the mmap lock in read mode is not enough > to traverse page tables, and that just having a stable VMA is not enough > to read PTEs. > > Suggested-by: Matteo Rizzo > Suggested-by: Lorenzo Stoakes > Signed-off-by: Jann Horn Acked-by: Qi Zheng > + > +* On 32-bit architectures, they may be in high memory (meaning they need to be > + mapped into kernel memory to be accessible). > +* When empty, they can be unlinked and RCU-freed while holding an mmap lock or > + rmap lock for reading in combination with the PTE and PMD page table locks. > + In particular, this happens in :c:func:`!retract_page_tables` when handling > + :c:macro:`!MADV_COLLAPSE`. > + So accessing PTE-level page tables requires at least holding an RCU read lock; > + but that only suffices for readers that can tolerate racing with concurrent > + page table updates such that an empty PTE is observed (in a page table that > + has actually already been detached and marked for RCU freeing) while another > + new page table has been installed in the same location and filled with > + entries. Writers normally need to take the PTE lock and revalidate that the > + PMD entry still refers to the same PTE-level page table. > + In practice, this also happens in the retract_page_tables(). Maybe can add a note about this after my patch[1] is merged. ;) [1]. https://lore.kernel.org/lkml/e5b321ffc3ebfcc46e53830e917ad246f7d2825f.1731566457.git.zhengqi.arch@bytedance.com/ Thanks! >