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 45D0EC001DE for ; Fri, 28 Jul 2023 17:55:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B366E8D0001; Fri, 28 Jul 2023 13:55:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id ABFB26B0078; Fri, 28 Jul 2023 13:55:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9601F8D0001; Fri, 28 Jul 2023 13:55:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 807DA6B0075 for ; Fri, 28 Jul 2023 13:55:04 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 558781C94FD for ; Fri, 28 Jul 2023 17:55:04 +0000 (UTC) X-FDA: 81061771728.08.976A4C9 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf29.hostedemail.com (Postfix) with ESMTP id 080A1120024 for ; Fri, 28 Jul 2023 17:55:01 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=IXIWpbxI; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf29.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=1690566902; 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=Z5BKzqiVvDxpi79QFmZnEbX/IsAn0VcOVhbxmE8BoKs=; b=Lka+DCX5FafGiCn75imyVR9FnmfnNjgxofiTVbLMgPgH+mvaUUVaO/9CWnZ/gAm8J5BeI2 39Vp5C0kMtmDTFAx5N0p6LX/Wwd8/O9+Y96sj2JrC/kJ6xq1yResi7CO5WEBS4icijY/Gg 2DEN0DIowV2fv04xfyASsCqy8CuObbg= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=IXIWpbxI; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf29.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=1690566902; a=rsa-sha256; cv=none; b=ESSCZAV1ypGW5pMsSazProXyZcV+PFyT7rLHovtH5YelvZULv8VEpVz3tZuYY5LASGbvlW SwYkcwcm0b3B0+JTmVOltpIEFu/nt0OkruqyT7SR/eLsNauu56HBOnkn1V3Okapy6OGvbQ eouDVXjnF/XCHrnewHfbh4qnphUcEHo= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1690566901; 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=Z5BKzqiVvDxpi79QFmZnEbX/IsAn0VcOVhbxmE8BoKs=; b=IXIWpbxIIeTC3H30Nce9LXBRp5CXc1yjh4QoB9cU9jbjT8ElsSz6zQbyUokLsfWwT5wmPu hYMQIG2+xOJKhz2po7tu8qlGOvRlbJrjqsnr4/awnf69iGkacns/OiTt0Xmz8n3l3fLmPG 89+RUYC7/woBvTbMMqfyJA1InDkBv3Y= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-611-aTVYM3s4OIWsnp_K-PFyTg-1; Fri, 28 Jul 2023 13:54:57 -0400 X-MC-Unique: aTVYM3s4OIWsnp_K-PFyTg-1 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-3fbb0c01e71so12959835e9.0 for ; Fri, 28 Jul 2023 10:54:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690566896; x=1691171696; h=content-transfer-encoding:in-reply-to:organization:references:cc:to :from:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Z5BKzqiVvDxpi79QFmZnEbX/IsAn0VcOVhbxmE8BoKs=; b=fbaUtWBiArhFBNf52c0Oft7mN5qOAVyu6DwVyorikDRIYut6zIDDRMJShWfV/uv0lp HNu7lVQqden/3BWu7e5KdB2+QNdno3wEuVdJPfXTRGSfp+BGtxaYPKOWdeaJ8e7UK67J 9X6cJ2+TWADSrKaErOuNLZJzhTSkhvawyRr/de3ihRUrY8VlFkH3AQiDJSkj52ej5kNO HKzUA0MqSNsJRBtM093oLcLOa2g7ZW/dgacmeAoPMR4JZ7axlotx/afJNa787S8YG7zh TovP1ywEWPZ3Q2PpM7e6Gdpwj8dbkANny9qrsu4xvHcmRwkE/KAmXgXKFQpC8rLVgaYx e7Mw== X-Gm-Message-State: ABy/qLZBcBw/DeSkAFUuktNvuAvwKSEDEUvG0f3FUjGdKnHWYrNjs9iX c1V0NhwgLPmtZx9AQTIFCiEgIpttxPVh9RTtTNqNf8G0vzaRzxCYCkmidXU89/1xDCokBzWj7ya MbuV7y+oEuNY43E/wiN4= X-Received: by 2002:a7b:cd8c:0:b0:3fb:fa9f:5292 with SMTP id y12-20020a7bcd8c000000b003fbfa9f5292mr2354774wmj.25.1690566896495; Fri, 28 Jul 2023 10:54:56 -0700 (PDT) X-Google-Smtp-Source: APBJJlG7SOsuepFtym4CnisxHoIJWa6n6aCxJkcZmmuVxr7VgQqWSHOCuv9c22vtqlzHoKGzRhjwVA== X-Received: by 2002:a7b:cd8c:0:b0:3fb:fa9f:5292 with SMTP id y12-20020a7bcd8c000000b003fbfa9f5292mr2354756wmj.25.1690566896027; Fri, 28 Jul 2023 10:54:56 -0700 (PDT) Received: from ?IPV6:2003:cb:c706:6b00:bf49:f14b:380d:f871? (p200300cbc7066b00bf49f14b380df871.dip0.t-ipconnect.de. [2003:cb:c706:6b00:bf49:f14b:380d:f871]) by smtp.gmail.com with ESMTPSA id 17-20020a05600c029100b003f9bd9e3226sm4760553wmk.7.2023.07.28.10.54.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 28 Jul 2023 10:54:55 -0700 (PDT) Message-ID: <29a7a660-ea24-abcd-ba7a-beef9c074340@redhat.com> Date: Fri, 28 Jul 2023 19:54:54 +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: [PATCH v1 0/4] smaps / mm/gup: fix gup_can_follow_protnone fallout From: David Hildenbrand To: Linus Torvalds Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, Andrew Morton , liubo , Peter Xu , Matthew Wilcox , Hugh Dickins , Jason Gunthorpe , John Hubbard , Mel Gorman References: <20230727212845.135673-1-david@redhat.com> 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-Stat-Signature: xh9z3n7efrfbg3tkra88qkffku64it6b X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 080A1120024 X-HE-Tag: 1690566901-890374 X-HE-Meta: U2FsdGVkX1/OtXRpmw65/KsiFlwk4V1rtWEXgnY40eX9L+DAQpyFWCjLXyb5D10sDBqhcxZfg5bMrnThTgp3nt9/6bpWl8vFxah5KEw/cEKLp+CmK2TRqbGp1km1m3yfQ/tvxmTg6PlP97W1ZKeF5/bpuNXKDe/m8+yH2XBfYVQ4DbWOTazMhNeYftpn5ZT2t2Sz9dqRtKmNH/6ywiRQ4iw2jZnOvzVbnjHXDjrmuz01Whwh34+P/h7+UdwYixFsRJkAxJLjE7SzREM9wsC5uFM3kzovVMImIld1SisaSvmMpUkPxmH1O1M5U19Zm+A8TsLnCoy9cHl5VXcxDvPGCGAVYf4bPrhfjIGAEsAD2zpYADEdCbmRiCIdVhWQlpe92T9wdQfAG9bTLYbdg6VlOxeAioUAFUpVVcYnI7CxxAWXG6zVcCWbNGRkco5twDYunCeeAQx6IPc+TuDpqgcGaOGV/y6IOrxcl1fxk3V5gZUEUoXK1jNckBjbPe996P5lPea1/Hsyb4N+yMB40pI+KYXA2ITya3CYt93dUf7/6L7fAfzKZUiZFXKII1VBkz7WdRgaB3xhlLZGnnjQ269sWb283bg2utVEdmlFtla1bcJbLHEfowoSgGsrmJCI+BVUQe9grumChdVOP63iQ61noMLSlpYBTvyiOcTTzpLIXuKKTIFPo7h5Kl8UG7byPefKZESr/qUUbTCOtREbNJMgXQBvJ8AORKZs9RqbRI1RS0epvo+lLROyP1oA+ywRKAfTBvNr77cw6arFJ849okpn89goZUMiQ0es2bfQqPOVIUNLF6qD95pS2Z79Mr/qkU7JTfrGV9wRsM0FsGs/aRpIqzCxBbDTpmlwnb5eMcZiB2Dfzt/cxXHpIrzon3aoyeY2wMzPITEbXnktuqjtycQlpI6oQ5xUeZrAToNRAjOaUlmlOH1ahmIOGAJU+/WMOhNEeOTb1p0OmqQPiXfaT4/ vjDLJ2z0 13/LkopYKYw92btYqI51ZPWIaLkdosyjRbmHOCyaajFTjOEZW3FK054ZD402AzcG+Pj5DXcGNpqvqUOp5TEN5WziuZ7H6AEVz71uyZbrlWEAVQaqclVf7DZzc5sxXU1dpAqGMIM5XpVWHQ0Cc1JdtjAExaiKDlvdURpPAhhkvIS12XjkrMbiXuJZoc9hVr1EpZPZUAUG8Mjnc758bta6TiZT+KgpqqEEU2BZaav6Ecip3fkXyJBMnOlP/SGQvP9jBF/cUirIY4vC4CmPJauCFBC1nlm7MOabx0JHMsfKl+wepkZ9E7rtm4HlwmPRTsV2GmbqaLTjKAS4WR9jKw3AKwItzrruYF9IgPspa17SQdVoCMTSXlYO/pRc+yMWwCFXdfeoCAODY9Rt0iodEzvGB4E5dGLCJF4tWv3aLB0K6XffBrqM= 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: [...] > > There was the case for "FOLL_PIN represents application behavior and > should trigger NUMA faults", but I guess that can be ignored. > > But it would be much better to just remove all that if we can. > > Let me look into some details. I just stumbled over the comment from Mel in follow_trans_huge_pmd(): /* Full NUMA hinting faults to serialise migration in fault paths */ It dates back to commit 2b4847e73004c10ae6666c2e27b5c5430aed8698 Author: Mel Gorman Date: Wed Dec 18 17:08:32 2013 -0800 mm: numa: serialise parallel get_user_page against THP migration Base pages are unmapped and flushed from cache and TLB during normal page migration and replaced with a migration entry that causes any parallel NUMA hinting fault or gup to block until migration completes. THP does not unmap pages due to a lack of support for migration entries at a PMD level. This allows races with get_user_pages and get_user_pages_fast which commit 3f926ab945b6 ("mm: Close races between THP migration and PMD numa clearing") made worse by introducing a pmd_clear_flush(). This patch forces get_user_page (fast and normal) on a pmd_numa page to go through the slow get_user_page path where it will serialise against THP migration and properly account for the NUMA hinting fault. On the migration side the page table lock is taken for each PTE update. We nowadays do have migration entries at PMD level -- and setting FOLL_FORCE could similarly trigger such a race. So I suspect we're good. -- Cheers, David / dhildenb