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 6E5F7C54FC6 for ; Sun, 1 Sep 2024 04:34:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5A7AB8D003B; Sun, 1 Sep 2024 00:34:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 530518D002D; Sun, 1 Sep 2024 00:34:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3A9F48D003B; Sun, 1 Sep 2024 00:34:08 -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 18FAA8D002D for ; Sun, 1 Sep 2024 00:34:08 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 9AE3A1211DD for ; Sun, 1 Sep 2024 04:34:07 +0000 (UTC) X-FDA: 82514902134.14.591100E Received: from mail-vk1-f182.google.com (mail-vk1-f182.google.com [209.85.221.182]) by imf06.hostedemail.com (Postfix) with ESMTP id D7EAD180005 for ; Sun, 1 Sep 2024 04:34:05 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=IxGKy5cC; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf06.hostedemail.com: domain of yuzhao@google.com designates 209.85.221.182 as permitted sender) smtp.mailfrom=yuzhao@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725165143; 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=8cavqX0K4T8epRFwBR/4Atu+lSqMRFYWZY4pFbhTlcs=; b=TRWkLCwt21WMO/ISxuxUGjxRjxUrKgUokxYMwyNSAbgYc3MIJdN9qWx7MJmKovN9mSyfeW JC4djkwMKskMFN+PfxMXXU8dMe4woZVTmL0Nt/TgJ/mkEUenCKM09yFiqUjDXzLy46JK0b 7Het1fno1WLZUDApOdHt8lg+jTtAiN0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725165143; a=rsa-sha256; cv=none; b=ZWYzomrv4Kk2h0dUI6ZzFOSamPjQNjjA9sun+JYDiJLRMFsw7Yb88mkMfk47sCBuMhEQ75 6M5glS2LtRuuKUEPJrR5A5ks9ZgqyRhTs/HT/4nDxIYW3BP7i88vI/fxZAID46VI7NX1sp r76zb3K+0mRALw1pFvHARFQQ4PP0byg= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=IxGKy5cC; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf06.hostedemail.com: domain of yuzhao@google.com designates 209.85.221.182 as permitted sender) smtp.mailfrom=yuzhao@google.com Received: by mail-vk1-f182.google.com with SMTP id 71dfb90a1353d-4fd0d7fe6f6so1267841e0c.2 for ; Sat, 31 Aug 2024 21:34:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1725165245; x=1725770045; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=8cavqX0K4T8epRFwBR/4Atu+lSqMRFYWZY4pFbhTlcs=; b=IxGKy5cCO3uacWK1QPRR8YBaay/kVObID+drJ9bAIto6pqmG95Pex2j5dqyWJpwyom ib2LHYo3exgSIwZuyOVf7rdJbwIY7uSYzQril5/S0pA/68dV4lUL2vut3wIrWq0lFSYZ b9JxK1W3yfhgadFjZEkGGhFXtwMKdFljFdRqiNrJgV5UW0geqZ+ZxMohUhj+xgHT6P0s FNT6XUlS4+/Vqj9tS/Le/jzKB0q66WgAghPCewQ8W9l74VXqdKVAD6JCYecJp+per78Z Q9E+Vl06DG5+XP+qJajzf+/MfEhhWLOpXnW7/GxqzzIh52fuPsssCU0radfnt6pFIplB mPew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725165245; x=1725770045; h=content-transfer-encoding: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=8cavqX0K4T8epRFwBR/4Atu+lSqMRFYWZY4pFbhTlcs=; b=J4nAI2ZR0SGKik7gmHp8OebcKdBhdaFksKQYIeYY7DFbmjGxO9x7o5ot4dYRFx03L9 bxrY6fJa6dTjqWvlcRxn1e5wzjpMSZH8AZo51NtIS/NJtwpcdJlN2MDpXBIkSFPvsiA4 i76fyTm3Iy80OGzjGxP5wCP55IzhkAu1u0zb2PG+OODFF3SpKLl/R1KvPNVAcIQBmb7e bjOXa1oy2fY7GZCalxRM7eDZI/dX2CYWPpAOGbL2dNwhD9LMETbI64yK1ON6F6zLi8H0 e0clDstJrItSaVz1rrknqb0J2wzo50mr7TOSc9R83EXIJDgCm4RnXSNkSNzZMf0Ni+zt nY3w== X-Forwarded-Encrypted: i=1; AJvYcCUMLojNgJ4iquvjCN6gS0RtDYDpoknMQ3UKHPkJUAdOtDPHnQJxvQNI0u5Soo+CNX7VB8lOHGkMeA==@kvack.org X-Gm-Message-State: AOJu0Yz7ALjRIscsIP3fcV/+EvwFWDzAJtqUnsxc7ZZKR10RRHMqKvYp JoWPcPdqXqTqs7aXx5QZqKuxXA6yQsVL8Rhq3FcbTH+x7yAWxIQHPGZ+5NFUUiT9jKOBPLIkEFv ty/3R5/CtJghuYDOF94pq6kI53j2OkFKq5zQ3 X-Google-Smtp-Source: AGHT+IF4Aez5JXCdT7JaIccNuJhWm549sM1XMAVK6lPzRG6vkbPDXkrMPlWuHjlgeXTaYoCx0OnohoWGF016XeAw5RM= X-Received: by 2002:a05:6102:440c:b0:493:d41a:1185 with SMTP id ada2fe7eead31-49a778e35a1mr5368135137.17.1725165244518; Sat, 31 Aug 2024 21:34:04 -0700 (PDT) MIME-Version: 1.0 References: <20240826204353.2228736-1-peterx@redhat.com> <20240826204353.2228736-17-peterx@redhat.com> In-Reply-To: <20240826204353.2228736-17-peterx@redhat.com> From: Yu Zhao Date: Sat, 31 Aug 2024 22:33:25 -0600 Message-ID: Subject: Re: [PATCH v2 16/19] mm: Remove follow_pte() To: Peter Xu Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Gavin Shan , Catalin Marinas , x86@kernel.org, Ingo Molnar , Andrew Morton , Paolo Bonzini , Dave Hansen , Thomas Gleixner , Alistair Popple , kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Sean Christopherson , Oscar Salvador , Jason Gunthorpe , Borislav Petkov , Zi Yan , Axel Rasmussen , David Hildenbrand , Yan Zhao , Will Deacon , Kefeng Wang , Alex Williamson Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: D7EAD180005 X-Stat-Signature: ffzn59u5nuocqtr9i34n8te98oo8mbps X-Rspam-User: X-HE-Tag: 1725165245-779738 X-HE-Meta: U2FsdGVkX1/0+HLH/11jC4k0qBt1xFCpf4MjhJMnSop3gfck30vzU2PjgeuQ2V5ds90M6ixYmydUA6Tuy2Mef+17daGckVtSu/WMVv/OEuNYLCzjRpXWndGxTdYBPurF7dnAmuplduIJmtac3f6/9eGUuRXxRFWC/MWXdKMk4yyWgQ4swG7xG4m3FdJRkbyplFf8Bl1bk83nPfSK5ioL9DFGQiRH+cxKSz0F/0BFQYmoYjWwhPDwP+Ei+m6VQTueS0WD60H3TMPFFQB7liDwhBe76zBixmeEMm+8QhdEDfB5G1xOkqKHUKGBtCaEyPlB8sLrIK/xh3b5AhMl/8Jj6od9I9r5/daT4O8NNS/KXb3vVfOElv4rAwl0uo+vXugabuGmRqZEw+rcpBF02uellcYX9zUOcQ7/Ar/NSU27Ghwg/Q21GM2tRXDJsnZhi//zuE/dc6MIaMkf36x2b6oe8h8lgIQWODAJ0PWMGWxjTB54s26SaBzwk2EAK48S8/XQQqEBxCCcrdV5559jZSIHWXjzH75SXsiLrcMwQxH6GkgXd04tELVS3Bj45S2wD6uGUEO/wfu9+cUKhNL3+Wq1o040QmPlsUd9u6vVqUmrA/6y5TFtRlphUau5qgLB4SRBv0uVDvqFIxqp1wwwrt4w9AKwUxSUlLXdxEcdr3C3Mz1G6E1ccIvvQwpwfVo65mnqyRBLPBujJDAylU24kxTSYCQp3k6O/4/ZuxIdxG0lC1mXb/EjanVVT8poDJNvljPEZddbZdKLY9x/h886z3l1aoptOeFcXBPCLOd4ixXQUABF0mtGJmW4PnaA6BaKDZiYs7EtI624wucDndqk0naNQX2uB1dXHZdFJadQh3S0/ByMqNgUOlDLu+9tRp5nRBY1hwDw0YiwyMSdNctbwKL5bCJurDBvms3a2f7tbtlN2wpPVVI8E3FTIhnEA2JAQfZAe1NTiQ4uDMOYtAao/EZ kesWJxdo Zb60VevoAJ3WpL/SXITrjTytF7IZiOZhS/JRdpteVX9u6FqPsvxkiNjuG1tIuVd9RGvzt2hOpdUiUrDN5ZFJMr1BdonMfIxQXBNbuQKnHU3tX95nzmyBvzdxnOcwT/X27oxPakC8vqtUiNYArejE44gm2zY+BsoK7G9sK+dqPUQDukc1XLSgRpRaq5fHjCaO4D5rNZfYS4BrgZJ8DZ7il7FCfbxftdkEMlSMZs59pWnVm29dMeR2EDyBqaA== 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 Mon, Aug 26, 2024 at 2:44=E2=80=AFPM Peter Xu wrote: > > follow_pte() users have been converted to follow_pfnmap*(). Remove the > API. > > Signed-off-by: Peter Xu > --- > include/linux/mm.h | 2 -- > mm/memory.c | 73 ---------------------------------------------- > 2 files changed, 75 deletions(-) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 161d496bfd18..b31d4bdd65ad 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -2368,8 +2368,6 @@ void free_pgd_range(struct mmu_gather *tlb, unsigne= d long addr, > unsigned long end, unsigned long floor, unsigned long cei= ling); > int > copy_page_range(struct vm_area_struct *dst_vma, struct vm_area_struct *s= rc_vma); > -int follow_pte(struct vm_area_struct *vma, unsigned long address, > - pte_t **ptepp, spinlock_t **ptlp); > int generic_access_phys(struct vm_area_struct *vma, unsigned long addr, > void *buf, int len, int write); > > diff --git a/mm/memory.c b/mm/memory.c > index b5d07f493d5d..288f81a8698e 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -6100,79 +6100,6 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, = unsigned long address) > } > #endif /* __PAGETABLE_PMD_FOLDED */ > > -/** > - * follow_pte - look up PTE at a user virtual address > - * @vma: the memory mapping > - * @address: user virtual address > - * @ptepp: location to store found PTE > - * @ptlp: location to store the lock for the PTE > - * > - * On a successful return, the pointer to the PTE is stored in @ptepp; > - * the corresponding lock is taken and its location is stored in @ptlp. > - * > - * The contents of the PTE are only stable until @ptlp is released using > - * pte_unmap_unlock(). This function will fail if the PTE is non-present= . > - * Present PTEs may include PTEs that map refcounted pages, such as > - * anonymous folios in COW mappings. > - * > - * Callers must be careful when relying on PTE content after > - * pte_unmap_unlock(). Especially if the PTE maps a refcounted page, > - * callers must protect against invalidation with MMU notifiers; otherwi= se > - * access to the PFN at a later point in time can trigger use-after-free= . > - * > - * Only IO mappings and raw PFN mappings are allowed. The mmap semaphor= e > - * should be taken for read. > - * > - * This function must not be used to modify PTE content. > - * > - * Return: zero on success, -ve otherwise. > - */ > -int follow_pte(struct vm_area_struct *vma, unsigned long address, > - pte_t **ptepp, spinlock_t **ptlp) > -{ > - struct mm_struct *mm =3D vma->vm_mm; > - pgd_t *pgd; > - p4d_t *p4d; > - pud_t *pud; > - pmd_t *pmd; > - pte_t *ptep; > - > - mmap_assert_locked(mm); > - if (unlikely(address < vma->vm_start || address >=3D vma->vm_end)= ) > - goto out; > - > - if (!(vma->vm_flags & (VM_IO | VM_PFNMAP))) > - goto out; > - > - pgd =3D pgd_offset(mm, address); > - if (pgd_none(*pgd) || unlikely(pgd_bad(*pgd))) > - goto out; > - > - p4d =3D p4d_offset(pgd, address); > - if (p4d_none(*p4d) || unlikely(p4d_bad(*p4d))) > - goto out; > - > - pud =3D pud_offset(p4d, address); > - if (pud_none(*pud) || unlikely(pud_bad(*pud))) > - goto out; > - > - pmd =3D pmd_offset(pud, address); > - VM_BUG_ON(pmd_trans_huge(*pmd)); > - > - ptep =3D pte_offset_map_lock(mm, pmd, address, ptlp); > - if (!ptep) > - goto out; > - if (!pte_present(ptep_get(ptep))) > - goto unlock; > - *ptepp =3D ptep; > - return 0; > -unlock: > - pte_unmap_unlock(ptep, *ptlp); > -out: > - return -EINVAL; > -} > -EXPORT_SYMBOL_GPL(follow_pte); I ran into build errors with this -- removing exported symbols breaks ABI, so I think we should make follow_pte() as a wrapper of its new equivalent, if that's possible?