From patchwork Fri Jun 9 01:14:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hugh Dickins X-Patchwork-Id: 13273068 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 B90F6C7EE29 for ; Fri, 9 Jun 2023 01:14:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 529DA8E0002; Thu, 8 Jun 2023 21:14:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 500E18E0001; Thu, 8 Jun 2023 21:14:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3C91D8E0002; Thu, 8 Jun 2023 21:14:20 -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 300248E0001 for ; Thu, 8 Jun 2023 21:14:20 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id F22F0803A5 for ; Fri, 9 Jun 2023 01:14:19 +0000 (UTC) X-FDA: 80881438638.03.68798A5 Received: from mail-yw1-f172.google.com (mail-yw1-f172.google.com [209.85.128.172]) by imf20.hostedemail.com (Postfix) with ESMTP id 1E0E41C0002 for ; Fri, 9 Jun 2023 01:14:17 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=b0CpC9Xp; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf20.hostedemail.com: domain of hughd@google.com designates 209.85.128.172 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=1686273258; 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=dk0QCHZ/ZrkXov8P0kyfxgscgrLXPV5n2YV5/OCWJso=; b=2MWRF1AMmXl5IqTTB6BwjLbYBLMhEjNvQ4Xp9GWlJqNmh55iRT0ktu+KX4u8LDevHKHbZy s0hubWaoFHCWFwoU7tECrRYcpQxzpZlwl6E1D2nJu/E2c0uezoBEr7AAblW5F3aBXaTINj VVNUxROjcBUYls6NZMRxxmBSAh77QqI= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=b0CpC9Xp; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf20.hostedemail.com: domain of hughd@google.com designates 209.85.128.172 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686273258; a=rsa-sha256; cv=none; b=V/1nZSR1gd4L1iedqNkiUvpjlUX5x1aNcFO1QStLe1y6nN0TqtX7DxosMfNOfujU9UTarl hElG1LDSbTQZEwFXp85jTxDkxck8YG5homii9b83HJqHRqZLUv0Amvq4mLFPsYpVOidMTi oP23WDgbjWNsqpbDjnArKYJvmFY9kfw= Received: by mail-yw1-f172.google.com with SMTP id 00721157ae682-568af2f6454so11288877b3.1 for ; Thu, 08 Jun 2023 18:14:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1686273257; x=1688865257; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=dk0QCHZ/ZrkXov8P0kyfxgscgrLXPV5n2YV5/OCWJso=; b=b0CpC9XpkwDMafp8znPdIUsufEoFF4TcEqSqtaBP/NRJK+TenjbuJzsvixBg7OeqD/ 2YfCQZOz9K140u4I0LV9p7i9HmUHhwPj5OjQEN4SArRt2Or8i+5jxZhLGecB/haRDICX vtLEyf8OOmoIO0wzxw5muMOyeWGS5tJSD8isNbt74/I3PyUiS3JXgFtf8p9995UjX66/ sVUXiIkxjAllgABbdRX2liHFwE/N9RUJ3gtPDEiB01DtZbdswHmgd6fCDnuNDxOd5cgB 2PYb4O3ns/eFa8oej3CUcEw8DbK3FH4hcK4a5VnPjgKE3o+d2ZfZbD5hqntDTaQ68DiO 87/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686273257; x=1688865257; 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=dk0QCHZ/ZrkXov8P0kyfxgscgrLXPV5n2YV5/OCWJso=; b=fPU603f7paasB32QkXNbmPykBHjf3atJGA6sRZIir8Sltj3cuzECJvD4xVY5CMio0m psy+HWmNUr0ODnkFROPE++3LJSSEbR3uIBnLGMBof2rA4sFXI9fOuKiQdUqc2VjJCuWr NaMxrPnYrmbqLyITkkRVGDqLRVOupDGXTZzzeZTL4UZizK4mTzqqMGgqoVMLFwopL7k4 tqeyPDwq1x6gb9XwecYCf0/AzmjyY0dLAohBOpx/UP029U+biDsQpDlNZaA5z5VKF6Yx yjXILmLQeMU8nb00RrgTi8OACBbpx7DvygnAaBoiB8MbFHL2OcRafCzs3/9lgMueP3jp zvJA== X-Gm-Message-State: AC+VfDyp626PWEfd20DgTj40MVSKXDxcyFt0TBoLt5zAwSEHgm2CD+6x tCW+UAYV2AFITbNQPamNQE6LLg== X-Google-Smtp-Source: ACHHUZ6G5/QqeKVeqB1vcKg8Kl9KAE//8sPZoP2ai/tJpfMIrL/rfl6x9oi+hpyk1yDqLu4iwiQrEA== X-Received: by 2002:a0d:d6c8:0:b0:549:2623:6f65 with SMTP id y191-20020a0dd6c8000000b0054926236f65mr1346506ywd.33.1686273257036; Thu, 08 Jun 2023 18:14:17 -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 t66-20020a815f45000000b0054fba955474sm301207ywb.17.2023.06.08.18.14.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Jun 2023 18:14:16 -0700 (PDT) Date: Thu, 8 Jun 2023 18:14:12 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.attlocal.net To: Andrew Morton cc: 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 , Alistair Popple , Ralph Campbell , Ira Weiny , Steven Price , SeongJae Park , Lorenzo Stoakes , Huang Ying , Naoya Horiguchi , Christophe Leroy , Zack Rusin , Jason Gunthorpe , Axel Rasmussen , Anshuman Khandual , Pasha Tatashin , Miaohe Lin , Minchan Kim , Christoph Hellwig , Song Liu , Thomas Hellstrom , Ryan Roberts , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 07/32] mm/page_vma_mapped: reformat map_pte() with less indentation In-Reply-To: Message-ID: References: MIME-Version: 1.0 X-Rspamd-Queue-Id: 1E0E41C0002 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: m1okr8poj794hcot3p18cm4btdbdi1s3 X-HE-Tag: 1686273257-872995 X-HE-Meta: U2FsdGVkX18uFpp/4lexkYDwMnVIWKpRLW6HBD7N1+tfXYOC/npaNyoMU7O12upKFJnvsIx89vg2enxr2sOOLvUnYyLAxqpR1kpUHIjNXlqeEEw9WzRCOwrQhhCQYe7LjwdwG7yAumWVvF7vMCHdnzP4DqdQ0WpqitNhjLebpAKMB50VSnrA8YRh6CcMGG0FuCGV5A+HogwAapCgns8exaxpELb4BLl26r7LtYjmLP9sI7PypN3CNvwVj2I7CLRiAzHlMQ4eR3yj0Nxx8XeX710/H2qkxJz3vguT5EJ2NJtUEq8HFQ0aHSanBrdPiEA2ogtkoXeSKPphh9N9IPJbgOCQW5afkBaUvN7thWxTRXQOLneMjeCc7CoOTuYcHP8KDvO0a6dYN1YlHSwi75Esx2pwS+rxE/dAwfPlBy1h2Z2Ti3YnWal3AgmJFOYl3JKTDkLRRTmaZ196n6/CjvS/Pa5rzwEwUnnURbzwsOs8bd1KXrhUZHR2tzojOhWZ++bkPut7UXwBh5iePvMhBBgSB5ogmF60Ts+scT/pWtvEUsyFsym3rpJ3mEAHLZ+oV40cP3o4wb6RTLKxsYgjEBZRMM2wffTCyLIjf4AyFG7mIgEndNjO5Cup0Zfxsl6qF5ZWzYH+QuY+I8TrJUheu3GLgB8WTQVpAgew/QyPME6+hW30ep5yeaBEWxMKs+9c+Th2bsPNK3ZrdYLiIljo27K8ZQg2ZBBsb5qAaVvaNxVzTrvxH1qYyrDozmELtts20X4YjFQ+/KA7JAUXvPnjofgoWZoEf2GCo8ALf2vHecY3djg5QvIcneC6IzsCJwFp96TaZGeBtfMXqxmop6d8nH+4xtglVtGI5qYnB9+tKNAR8JF2oW7419AtzGV8BIrSQ1oarJui5IPbyiywVbllliYKRwKFE7oFmv8Ha0De2FieOM0orzCXrh9Kn7MI49OfgJs91bscfbgYXsdSmSRTuA/ gclqhb6a MpQJkm4d2O/WEzUKR4NQZ7vCVdG2RSluHru9oPtzlA0mz5PO9sFjPDvLU962cMuv+2/06MUKd60Y8hp20o2KxcOhxD7M50Pqv/HQ7ayKwAqbzrhZntqVS+MjQqxDoVIhoHcLdzLJM63+fbv81dA3Mj4PZE3VeXOvkzm/M7sfvfqJDyWnpgku/Ccz8HinwQoWbmap5y9P+ZyD9xnJgfVipruthePJYZfvkocGQc8Ots2KZRog3PpZ5bZXPFqPRmre5tQt0PW4aj93kcLOr2xWCxbV4RRroqCXbsprsjy/TUNXXSfsBwxvJ9BF7jmpNda4mbHkJ/RY4Lpn8eVAobjsgN6qoa3CU+r/VJ+2EycoRUtgeBFI3ugebxHc9lgxzDHTVOI2RVlBpe8yNQ5PWSWoKJ8cT+WXEfSkqsEK++euyQXH75MCIJi8t/tvwuw== 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: No functional change here, but adjust the format of map_pte() so that the following commit will be easier to read: separate out the PVMW_SYNC case first, and remove two levels of indentation from the ZONE_DEVICE case. Signed-off-by: Hugh Dickins --- mm/page_vma_mapped.c | 65 +++++++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c index 007dc7456f0e..947dc7491815 100644 --- a/mm/page_vma_mapped.c +++ b/mm/page_vma_mapped.c @@ -15,38 +15,41 @@ static inline bool not_found(struct page_vma_mapped_walk *pvmw) static bool map_pte(struct page_vma_mapped_walk *pvmw) { - pvmw->pte = pte_offset_map(pvmw->pmd, pvmw->address); - if (!(pvmw->flags & PVMW_SYNC)) { - if (pvmw->flags & PVMW_MIGRATION) { - if (!is_swap_pte(*pvmw->pte)) - return false; - } else { - /* - * We get here when we are trying to unmap a private - * device page from the process address space. Such - * page is not CPU accessible and thus is mapped as - * a special swap entry, nonetheless it still does - * count as a valid regular mapping for the page (and - * is accounted as such in page maps count). - * - * So handle this special case as if it was a normal - * page mapping ie lock CPU page table and returns - * true. - * - * For more details on device private memory see HMM - * (include/linux/hmm.h or mm/hmm.c). - */ - if (is_swap_pte(*pvmw->pte)) { - swp_entry_t entry; + if (pvmw->flags & PVMW_SYNC) { + /* Use the stricter lookup */ + pvmw->pte = pte_offset_map_lock(pvmw->vma->vm_mm, pvmw->pmd, + pvmw->address, &pvmw->ptl); + return true; + } - /* Handle un-addressable ZONE_DEVICE memory */ - entry = pte_to_swp_entry(*pvmw->pte); - if (!is_device_private_entry(entry) && - !is_device_exclusive_entry(entry)) - return false; - } else if (!pte_present(*pvmw->pte)) - return false; - } + pvmw->pte = pte_offset_map(pvmw->pmd, pvmw->address); + if (pvmw->flags & PVMW_MIGRATION) { + if (!is_swap_pte(*pvmw->pte)) + return false; + } else if (is_swap_pte(*pvmw->pte)) { + swp_entry_t entry; + /* + * Handle un-addressable ZONE_DEVICE memory. + * + * We get here when we are trying to unmap a private + * device page from the process address space. Such + * page is not CPU accessible and thus is mapped as + * a special swap entry, nonetheless it still does + * count as a valid regular mapping for the page + * (and is accounted as such in page maps count). + * + * So handle this special case as if it was a normal + * page mapping ie lock CPU page table and return true. + * + * For more details on device private memory see HMM + * (include/linux/hmm.h or mm/hmm.c). + */ + entry = pte_to_swp_entry(*pvmw->pte); + if (!is_device_private_entry(entry) && + !is_device_exclusive_entry(entry)) + return false; + } else if (!pte_present(*pvmw->pte)) { + return false; } pvmw->ptl = pte_lockptr(pvmw->vma->vm_mm, pvmw->pmd); spin_lock(pvmw->ptl);