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 A015CC3DA4A for ; Fri, 9 Aug 2024 16:54:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3DCF86B00A0; Fri, 9 Aug 2024 12:54:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 38D516B00A1; Fri, 9 Aug 2024 12:54:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 22E0F6B00A2; Fri, 9 Aug 2024 12:54:11 -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 04E9C6B00A0 for ; Fri, 9 Aug 2024 12:54:10 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id A8946C12C5 for ; Fri, 9 Aug 2024 16:54:10 +0000 (UTC) X-FDA: 82433304660.14.ED7C978 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf13.hostedemail.com (Postfix) with ESMTP id 8D72720023 for ; Fri, 9 Aug 2024 16:54:08 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=esjlC2F0; spf=pass (imf13.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723222415; 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=86nPCx79W6PGHL+fSL/w3sszGXq3z8SJRXsfiXl5Py8=; b=zmnv+FeMXdmk911PWDwQeI7WjZdoxXnUCczz63eeIFwIv3kdlRU4YA8bDTZWy5N8yYqM0p VjYlxtCsIUPt50seGR8AbIP2Y5iLnjxXb9MQhP0XcrAmdHwHc9dDwwTZNMUTpP2kYtni8K qtPfdETWWxwAhvOITJr2nd17LdSNHUo= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=esjlC2F0; spf=pass (imf13.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723222415; a=rsa-sha256; cv=none; b=bvtkfXuOcnzV7FkxQYBPJbpVJcHMhc8FPIDK1QVmLiCAmtE+NanRM7U20C+KLuLPeRoib3 N4QcT9ola6lBlQvlWTZlUQaL4abQnlgujoI5/6snyxXrmJo7xJMskO8N0WQrayvrMjmFRD XHC5B/nRTqoV4hOJTi8HQANa1OAi7Yw= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1723222447; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=86nPCx79W6PGHL+fSL/w3sszGXq3z8SJRXsfiXl5Py8=; b=esjlC2F0ixlRaFTxM3+Ftx1g6MPUSEw0Pl869eJr7nQBQC9ZQ+ztvhIQe8ZGezazLk1m1h Z9Umcge1E44XIIFOFC6pZvy+5DZtRF/pY9/IhEdVHZFGwnQ1DS3OcC6/l9o4AS5+AUUDX/ 6wiO5M6wutZaTGBL9xDIVQqLIF01lCU= Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-306-q6pHNC7BP2avOz_c1lpqug-1; Fri, 09 Aug 2024 12:54:06 -0400 X-MC-Unique: q6pHNC7BP2avOz_c1lpqug-1 Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-709376e8668so450148a34.2 for ; Fri, 09 Aug 2024 09:54:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723222446; x=1723827246; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=86nPCx79W6PGHL+fSL/w3sszGXq3z8SJRXsfiXl5Py8=; b=gr0pEYASgzDWSaaYFRmcVewUE7bFo6Yydl3otvOXKYLwqFtcgHMIksQF+yqERH4lJM b0kCFrfXf94/Pj87BYXJlNiohVbquWpvib+FmBuNRTV3XWlRy9KvpKMNQw3V6DqA6ijr dKMUHGRcA6ZW3eOj68YCvE9Kc0uzgrJ4dXltSCb3VyEQ/uQhyPJzz6nHNemicZ4VsV1g qgF6gvf/mvzSbq1nHeSUHi/PySLqrqnr+X+QYuiJ5eJbgof73GEmsOoy2Yyf9jQ8jrva FSipd9ivNvofcnBLHTxzNsDUYBmEwMIeh66myyZyfq7UUrF2Sd3EPkY4VK3W3JmFCw5o 0MAg== X-Gm-Message-State: AOJu0Yxn/eljahB803tFnJRb/U/xA+PsKAEbFQwTlYqGdS5JnYFp/IDJ uNQQwMIwRk+mXD0JRt4GHAlC3brV2DtazRwByCX0d8uk2woublEuTkHDrjY8hd7Tez+ugRdi7Ha SuMatp8rmKpBlQyOfBdEvf4v2SOHAwZYZU5W/fZOMmoqBNah+ X-Received: by 2002:a05:6830:2b25:b0:703:5c54:ddac with SMTP id 46e09a7af769-70b7470a670mr1628357a34.2.1723222445782; Fri, 09 Aug 2024 09:54:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGpuMCJfrpcp3WHIjMj9LLfZZ/K5MFK4Lv5p2xqcXiI3Eo7cosoDQu8/NAx31jVVYmRJIlX7w== X-Received: by 2002:a05:6830:2b25:b0:703:5c54:ddac with SMTP id 46e09a7af769-70b7470a670mr1628345a34.2.1723222445418; Fri, 09 Aug 2024 09:54:05 -0700 (PDT) Received: from x1n (pool-99-254-121-117.cpe.net.cable.rogers.com. [99.254.121.117]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7a3786cce67sm279215085a.116.2024.08.09.09.54.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Aug 2024 09:54:04 -0700 (PDT) Date: Fri, 9 Aug 2024 12:54:01 -0400 From: Peter Xu To: David Hildenbrand Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Sean Christopherson , Oscar Salvador , Jason Gunthorpe , Axel Rasmussen , linux-arm-kernel@lists.infradead.org, x86@kernel.org, Will Deacon , Gavin Shan , Paolo Bonzini , Zi Yan , Andrew Morton , Catalin Marinas , Ingo Molnar , Alistair Popple , Borislav Petkov , Thomas Gleixner , kvm@vger.kernel.org, Dave Hansen , Alex Williamson , Yan Zhao Subject: Re: [PATCH 06/19] mm/pagewalk: Check pfnmap early for folio_walk_start() Message-ID: References: <20240809160909.1023470-1-peterx@redhat.com> <20240809160909.1023470-7-peterx@redhat.com> MIME-Version: 1.0 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 8D72720023 X-Stat-Signature: wyt5kr7zbmexy1sutyqzzx5r4zbg6ame X-HE-Tag: 1723222448-580924 X-HE-Meta: U2FsdGVkX1+GO7bAgCnFr+/UG0sGMIZV4Fvxlk4QHrmOjtPUuhwkEFrlN0Ou7ZLbHAFPN8P7hts6yxFi/Yd0mtWJ/cdNx/iso499AHOk3tqJiwCnLyg9nhPA1z203HKR2mD+0OLsiRSce1Pvnn3QzcGMk/082CFiPH1KeHaPsEh/4y2zqKuPBUclN/5K+88zRi2mq2t9EP2/yvrCRFsD0LbguMRi7YyH+03+gGviadmeXeg2aulqaATu328hvRm2oYN8pb4G0O3eia7IK8xaZRbOBQxAugPOwtWfUCrQ+yrsFf4Jl+RbtkZ+uoadjzY68vOnUljO08BqNQqbLTO3xcgKwXuHVqYk0a5QoAlwXPghZDLC7+gEj6QS8wKf1CV8wDQboFbPi2dYss7r9kI3nGwpG7n6bnZyVEhiixj+BR4xm3CZPyTfdwHHwXZ9uUmpPdCT8tUSGokCPJIh/Exn6BzoFRSKXQtDuWEODRV0yZcAqAztHbQNfZYd2zyWBvQzs79SRYBM8XWsThAVqK5+X7RkboEG26mhiT64N6PLNFBbBr1BRyRd7vVKAQXvswZ26JJwwOyVnyTRvATJ43/x3snC03fv4iCyJJQwTebVkPnc9HAix9NZofDLbKDbpU/wPxTmFgOSUxszJL/Lp9/YwNZURjBoDtzu/Dk9foXONmxLEy6wM2amiMoqJmfrQ1ngLQtjynMhYZTS83WBriPWC+WBFtM2r4ApuHe1byKolbfdMjuchH127a87OpfVHX9ZUodqUdHQKPLgFJtiwpHEh9zjYre1YOaaIGs2/DSkDjeu9nkD17FNURnaxBHeogsC23K6wYtjKn6dp54AFIFe5k/UBBHVj7+Iikxog1oa6xzPonRO80bhHA0HIVzcD4upTNPqulzyAX63b5tXsh2fd38XYUuItIy01f9P+eVDsm/Hk66UcWXX7P+DOYOcbN4O7qqA/eV7fUpl57ULQ9E Cwjo3M84 /U+OWUEuhhXhYVLBl+diaIkiA5Oz5GGM6dKBy5TZ2rXmo9xJjsMzvUyHlaspIMES72Sp1P81Jlmv0a3EA+LnJlYBZErBLQw3V2aJPBInB9RhKpC/DE9ZrrxH1Cuk8/GeP/uvvffqFzt2fEZHa1Y7WEfnK7blZJpw77F3pB//dZ55lvyaQmR9VP/gT1gDegtcmyGTLM8ty3X2s/fuPhZSCIcgU6lk59Mif0opZ6QravHN8cdh3jQ/0dkUfojXFftgul3dfTsNJMPsS/BvZNe1Q9tIRrqDOSAYGRzBiSYhfX9e0c4R+Rq0mKyvR6yPZi5I7HYqorY6H5BTgXxwvVOrjAclwZxYYLFQ0tfV1/ZYus7tp3/RPmJzXgkhKy0AerSAA4qCjWbu4F1ixW5t4J7R06SLnFGmKOHAuelq66x4o36yuUweTx74lEc5x1VVmCyuISXpmUoX5uwLGlhisKod6WEgiD1akOEM+7akCnkGIYTYsM43uINN1IXERfdHOjNfuq0oyJhugU1EM75/F7X7VWSVFpkWSQhye/ilr 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 Fri, Aug 09, 2024 at 06:20:06PM +0200, David Hildenbrand wrote: > On 09.08.24 18:08, Peter Xu wrote: > > Pfnmaps can always be identified with special bits in the ptes/pmds/puds. > > However that's unnecessary if the vma is stable, and when it's mapped under > > VM_PFNMAP | VM_IO. > > > > Instead of adding similar checks in all the levels for huge pfnmaps, let > > folio_walk_start() fail even earlier for these mappings. It's also > > something gup-slow already does, so make them match. > > > > Cc: David Hildenbrand > > Signed-off-by: Peter Xu > > --- > > mm/pagewalk.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/mm/pagewalk.c b/mm/pagewalk.c > > index cd79fb3b89e5..fd3965efe773 100644 > > --- a/mm/pagewalk.c > > +++ b/mm/pagewalk.c > > @@ -727,6 +727,11 @@ struct folio *folio_walk_start(struct folio_walk *fw, > > p4d_t *p4dp; > > mmap_assert_locked(vma->vm_mm); > > + > > + /* It has no folio backing the mappings at all.. */ > > + if (vma->vm_flags & (VM_IO | VM_PFNMAP)) > > + return NULL; > > + > > That is in general not what we want, and we still have some places that > wrongly hard-code that behavior. > > In a MAP_PRIVATE mapping you might have anon pages that we can happily walk. > > vm_normal_page() / vm_normal_page_pmd() [and as commented as a TODO, > vm_normal_page_pud()] should be able to identify PFN maps and reject them, > no? Yep, I think we can also rely on special bit. When I was working on this whole series I must confess I am already confused on the real users of MAP_PRIVATE pfnmaps. E.g. we probably don't need either PFNMAP for either mprotect/fork/... at least for our use case, then VM_PRIVATE is even one step further. Here I chose to follow gup-slow, and I suppose you meant that's also wrong? If so, would it make sense we keep them aligned as of now, and change them altogether? Or do you think we should just rely on the special bits? And, just curious: is there any use case you're aware of that can benefit from caring PRIVATE pfnmaps yet so far, especially in this path? As far as I read, none of folio_walk_start() users so far should even stumble on top of a pfnmap, share or private. But that's a fairly quick glimps only. IOW, I was wondering whether I'm just over cautious here. Thanks, -- Peter Xu