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 44864C00528 for ; Tue, 1 Aug 2023 12:26:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D8BAD94000B; Tue, 1 Aug 2023 08:26:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D14158E0002; Tue, 1 Aug 2023 08:26:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BDBAD94000B; Tue, 1 Aug 2023 08:26:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id AEAFB8E0002 for ; Tue, 1 Aug 2023 08:26:10 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 728C0804BD for ; Tue, 1 Aug 2023 12:26:10 +0000 (UTC) X-FDA: 81075458100.26.2FB8DF5 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf12.hostedemail.com (Postfix) with ESMTP id 3F63F40012 for ; Tue, 1 Aug 2023 12:26:08 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=eNW8luu8; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf12.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690892768; a=rsa-sha256; cv=none; b=Idct9R/JB2BKMi4PhVU/rPOEK7PjRPGYUXAj8C4Tv1KdnHsxnEa2KU4fOmBoqa9deiovI2 86YX2QNasQvh0fsccrv4k9DlsDOawj9EQqvY/MyJhIOHT9xYxnwtCyrTIj3GtSV50aXZdL Ww3OeFmhPf8nlhezlqGCYmzqmzBBph4= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=eNW8luu8; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf12.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690892768; 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=DVW4mMZFCGALC8ybzrJ+aDrIna738EUhn6/2uRNkmyU=; b=E7lR0/pkyO9tVt1S8IG9+PQ7G86tiUQzKh8zir0vfjNWgz6vceTbhsDSbBI9TuBQ7/mAtR Ez22OTrg2iijlurXodPc2O5VUg2hSbTynzM7jLXsb7wE6pGsM4hYdHN+FY1ZQ9XpMuyiS5 xNZ2YvwMF3e28VITiVtlgzciyHrcbPo= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1690892767; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DVW4mMZFCGALC8ybzrJ+aDrIna738EUhn6/2uRNkmyU=; b=eNW8luu8fuVoFr+ER60jLK9Uh+RyWDj/Uluehz4iqK1YuCgCMjTT+Do+pgTxXEWjHiRg9E 1QXoH3WQ8QqU5p9XWPijDnSCZxoZqJjYfxSQsyUP3oHspT01341AEu/i51xtb/Br1pTbKB G7xKo9l995p7UJ5wgzWO54BdNeKM/VU= Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-167-hh6MSWPyPOWK9mlPOSw3FA-1; Tue, 01 Aug 2023 08:26:06 -0400 X-MC-Unique: hh6MSWPyPOWK9mlPOSw3FA-1 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-30793c16c78so3542170f8f.3 for ; Tue, 01 Aug 2023 05:26:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690892765; x=1691497565; h=content-transfer-encoding:in-reply-to:organization: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=DVW4mMZFCGALC8ybzrJ+aDrIna738EUhn6/2uRNkmyU=; b=BqS2QRy5/7uPOnLrc2Qyxr/imp1pbKBOcy8/NIXoeaydk0C+p/b19iduocxivbRusR HB0yvB9bxCOPXvV3oAY0E8k3gBRv3iueSGMkmNh5+2GU2LhvYVJSnSVpekn5HpixTyXB EyKrmMEZNuPq3vzdLP8ztNplm9RwmiVgX0zQWY7YmbtJ9VpFUBuV0pfKMpWc9V7JjwhR 4d+vxxEDjPQ1oE45FG2X47x0qHhA1RoeUm32xe/ulM9PKrxPUezSA51HcDnyx2mIc/7A R1qUJKXFyDq5wAnHbcbwTkN/UOxOU6hHR69qnOuqFBZ6q7IoZIp6pCzoiRHlrzUAfU8P oYdw== X-Gm-Message-State: ABy/qLZf7b0CJ7yFLtwJZO/rEVkGOso8Itn0cj6o+1Ua9D41Smwmv40R k/4n+OcXB9DLcJCOvl/AKL4emw7C7dEnXoiL0pJskn0y9biijDx5GKl411a9GPgHgsszJJqn/J1 +Gdv7xsyttSo= X-Received: by 2002:a5d:510a:0:b0:314:bdb:cf71 with SMTP id s10-20020a5d510a000000b003140bdbcf71mr2456661wrt.53.1690892765222; Tue, 01 Aug 2023 05:26:05 -0700 (PDT) X-Google-Smtp-Source: APBJJlGMVMk1xCuqDPUyHo5qOLYWKhcLDSbX7D9uKJPDex6Q8dFpdLdnBzEQwcp/6JNBf2xHjW5iYg== X-Received: by 2002:a5d:510a:0:b0:314:bdb:cf71 with SMTP id s10-20020a5d510a000000b003140bdbcf71mr2456640wrt.53.1690892764815; Tue, 01 Aug 2023 05:26:04 -0700 (PDT) Received: from ?IPV6:2003:cb:c705:d100:871b:ec55:67d:5247? (p200300cbc705d100871bec55067d5247.dip0.t-ipconnect.de. [2003:cb:c705:d100:871b:ec55:67d:5247]) by smtp.gmail.com with ESMTPSA id l10-20020a5d410a000000b00317495f88fasm15877389wrp.112.2023.08.01.05.26.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 01 Aug 2023 05:26:04 -0700 (PDT) Message-ID: <48f22686-2c1b-fd9d-91ba-da6105d410db@redhat.com> Date: Tue, 1 Aug 2023 14:26:03 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [RFC v1 1/3] mm/mmu_notifier: Add a new notifier for mapping updates (new pages) To: Jason Gunthorpe Cc: "Kasireddy, Vivek" , "Kim, Dongwon" , "Chang, Junxiao" , "dri-devel@lists.freedesktop.org" , Alistair Popple , Hugh Dickins , Peter Xu , "linux-mm@kvack.org" , Gerd Hoffmann , Mike Kravetz References: From: David Hildenbrand Organization: Red Hat In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 3F63F40012 X-Stat-Signature: xgembgm78eaa4rt5ccuaqpimwk3gfboy X-HE-Tag: 1690892768-876678 X-HE-Meta: U2FsdGVkX1+zjqIqnhs937eV+UqUDcPUaLto2/yKYAsyFT/H3lWCm2Qfp7vdMfy3zgcE26YkeJ3ptBeTloB0kF6KWS8FCh/vmKB8HctaSRq+cuCskGIuX6Ova7etnXe1vh7pJr0t2m16qH9DbFU+bqc0D/dxxWu80fkwQ54z3+wueW6+FJZbX5pMJCHcbabJ/S4Twx8RoKoqvhJwpkbgPG7ZOl1IJZEUCGPRgYSsUyhyZWLLqHGEIeF4g4C+dU0RyFGGUqTZxk+LWQ0P4PCKL5TgN6+23G11zyWzKc+0OoCJwpG3TdXbNnbm8NIxWJKwjgM7U38udiaLJAhfLRN6NNdZhF86tkAH0K6Zswn6cpBMovvyh+1P6IhYpJ3QOQp4iSV8j4CQa/cAN+ilfpQ//fiHsBO2rdgKQLWQ07l1pK8xJ5DgO725eb2xO5m1URAObJoYUMrC5XVpWEPdKTyr/Wh3tCVDxlVlvZB20XpStPXW94mz6WlUP22WyixzNfubmnlTDwLKB7/bfrYYXmQANUJVNpq/Hy5XygW84lxnhrsbC/XX4XwF8c4AyI2sKJHkyxjXMF+oF7EMFXfx3MdHq3xFJZmd3YeF7067uE0I5xLyQg65HmmYGH9djWNmWFV6Q127eRNFtek8crw6NpbibmYX0OpfTV5pJ3FQIApc5hig7AQH0giP2+jcRWAqRQSqZ6S124NN6m+qIwjE3tFEur51qkUqLJefv2vAJicc6FkoEgQklyDOrYPMTRNCIhYjcHtcpE2eoZuEgqiubvk8AKnr6JdIe8tE8RoNNtvh881i1/7Hm+IeP3Dj5ACSXpw9H85QGBPdrLmZIctQOyKxh1niG/g/lDl2s6Y+yt7k79zDaA6GBl5a6spUnoDnx30kJ1GtBEQaTE+mutzE9QV5gecRcjJ5+Mg7Hj01xk+gffej+BWx663Aqi5zk9IvvJFtgZer/VJFt1/nIijPahB pokGEY+9 8q+XPbNrsnB0ylNiBTA2N/Q0Ki7ipj9mn7qdN5DnsCluCosThO8ZDSYU+aSSF1eOZC7L+9/amAuIvpQWTkeetFDOlJzzDoovnfwzzi14tbFLuZ3bnljGziPC/F9nZxtpKjiKfCozIxcx9VGfbAg5ZQrLfqXcc9I1HUgCj2lUMXho0bcP3q8orzCt27Z1xSq14PhXyCMBXhvGKIpo6CiEL4WtXpy2qHkHunJJKFHIA7keachRsJrtO6Lx0FZZJHutoIuCj0oATBiBh+sZ0pshz3UcTCJ3XyKOCN/PxoIPInoiiIrl90Wx9bfeTXNeJZc2IiuT6oEaxSO3+budF0300xHeE40VrRi7xFUxviLyHJH9vyakEdtxD87ZCMa1upz/ACV8uyKZ5S8kS/GF99nn+nQrhYhXgWG9mgfRDkmE7fKzIs43UXutcvpOnWG80e86w4Inppvm/OtjbWAzzf8Jpo7GcBQ== 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: On 01.08.23 14:23, Jason Gunthorpe wrote: > On Tue, Aug 01, 2023 at 02:22:12PM +0200, David Hildenbrand wrote: >> On 01.08.23 14:19, Jason Gunthorpe wrote: >>> On Tue, Aug 01, 2023 at 05:32:38AM +0000, Kasireddy, Vivek wrote: >>> >>>>> You get another invalidate because the memfd removes the zero pages >>>>> that hmm_range_fault installed in the PTEs before replacing them with >>>>> actual writable pages. Then you do the move, and another >>>>> hmm_range_fault, and basically the whole thing over again. Except this >>>>> time instead of returning zero pages it returns actual writable >>>>> page. >>> >>>> Ok, when I tested earlier (by registering an invalidate callback) but without >>>> hmm_range_fault(), I did not find this additional invalidate getting triggered. >>>> Let me try with hmm_range_fault() and see if everything works as expected. >>>> Thank you for your help. >>> >>> If you do not get an invalidate then there is a pretty serious bug in >>> the mm that needs fixing. >>> >>> Anything hmm_range_fault() returns must be invalidated if the >>> underying CPU mapping changes for any reasons. Since hmm_range_fault() >>> will populate zero pages when reading from a hole in a memfd, it must >>> also get an invalidation when the zero pages are changed into writable >>> pages. >> >> Can you point me at the code that returns that (shared) zero page? > > It calls handle_mm_fault() - shouldn't that do it? Same as if the CPU > read faulted the page? To the best of my knowledge, the shared zeropage is only used in MAP_PRIVATE|MAP_AON mappings and in weird DAX mappings. If that changed, we have to fix FOLL_PIN|FOLL_LONGTERM for MAP_SHARED VMAs. If you read-fault on a memfd hole, you should get a proper "zeroed" pagecache page that effectively "filled that hole" -- so there is no file hole anymore. -- Cheers, David / dhildenb