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 BD5F6C38142 for ; Mon, 23 Jan 2023 13:12:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 12E6D6B0071; Mon, 23 Jan 2023 08:12:01 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0DF156B0072; Mon, 23 Jan 2023 08:12:01 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EC10D6B0073; Mon, 23 Jan 2023 08:12:00 -0500 (EST) 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 DD9AB6B0071 for ; Mon, 23 Jan 2023 08:12:00 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id ACCCD8085D for ; Mon, 23 Jan 2023 13:12:00 +0000 (UTC) X-FDA: 80386101600.01.5F4342A Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf17.hostedemail.com (Postfix) with ESMTP id 7CB2340005 for ; Mon, 23 Jan 2023 13:11:58 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=OJNrUTM7; spf=pass (imf17.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1674479518; a=rsa-sha256; cv=none; b=xGWKZGN22rL8SAjGu25gH7nbhrTMg7hQpKx66JYRkfQotz12mAR7f4NPGbypxCIWnfFtNq Ing/8clARXUnxnMe6Tga1T5Aa7W/uySfgC/HbIn8yHika8TmNt0dGTAKfrxTFzibIpeKvP yocebDDTgAASwIOgvuHMc5Y87YoQ/cc= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=OJNrUTM7; spf=pass (imf17.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@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=1674479518; 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=FQv8e3zi0tb0sZVAWv+R67RLgpAS0mltaNdAlpxPgD4=; b=NLUjvjOb4pCRzKD1St0CbJeego18RV92e1DglvenUgLfBX2kvFerLD3tM9LpWJYNKxm+zU nT9FviVwwjx4kWA65iiSN19utDrIhvu08zMTzik+/xonp4ijoZBrcQAwr4NJZTzmXLuFWZ oLkUkVdCgLr6dbt7QdUeFyuJ3DE7zPI= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1674479517; 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=FQv8e3zi0tb0sZVAWv+R67RLgpAS0mltaNdAlpxPgD4=; b=OJNrUTM7vLosCPcR+AvoVInAO9JApPOt63Dnt0YQ2K+K7GDvBSLSkeY9E9+ALccEBt6lsY oHkUFCNe7lGwClwvarhVkVPp9aSTSU+bvqKx//mqksAOVhkKK4/IJDxAUNqaEfA9J8u0xy 57ZIVctUk4K/lgRKdPHOxcttcnVU6YQ= 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_128_GCM_SHA256) id us-mta-516-8_Agv_6AMRS-pmbRIFoRDw-1; Mon, 23 Jan 2023 08:11:56 -0500 X-MC-Unique: 8_Agv_6AMRS-pmbRIFoRDw-1 Received: by mail-wm1-f70.google.com with SMTP id m7-20020a05600c4f4700b003d971a5e770so7489816wmq.3 for ; Mon, 23 Jan 2023 05:11:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:subject:organization:from :references:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=FQv8e3zi0tb0sZVAWv+R67RLgpAS0mltaNdAlpxPgD4=; b=5GIVJVwYIYn1wsJ8Ajk0UWNVggeiX/iFgkLl1LQihuYAMc8awLzHHInXxCc7eO0TAD jSK5WqPXaXczz/tAar5PnqGEypfjiVtzAASBQ/hoTYtyrsmJm8C2wG2Efpv4Ouu8PXXM t+Ee/cRm65vfh/yxjb3+1tjJkFEMErNy+Qw5eFC/WkDCEpM5rI9DK4GUWvT+s4o3RhHA /uHPBb9vHEonmU3JOwLCK4kA9auFyrS4h6XpmAFa1rq+N02zCv3a+VanDd8gfKQrvjQl Ukw67vlpSMJAdVxD49U4wTqpYEACVRXQ9r2qCkm6YUWa1NqEijiiYStchoo9rWdYtMh8 OyVg== X-Gm-Message-State: AFqh2koFKZHWt01NedIqvP0SnlHLsolSV1DfuN/mjf1fFwACSV0+iGWt 98OB/5Zh3s25/gCJYBfxChNqf9oPbN0T35J6EjO8uYleDva4PQy1fMfUIEAC01tQtg1MYsDMktc ZVotQ6ITW1Bc= X-Received: by 2002:a05:600c:4d08:b0:3da:fef0:226b with SMTP id u8-20020a05600c4d0800b003dafef0226bmr23798176wmp.32.1674479515647; Mon, 23 Jan 2023 05:11:55 -0800 (PST) X-Google-Smtp-Source: AMrXdXsRmwBRBfSgTGOZ07Dfbcl+YnLqnHekKSXbUAgHGKp4HT9xIK23+Golki9zb+CdiaKU8XQ7wg== X-Received: by 2002:a05:600c:4d08:b0:3da:fef0:226b with SMTP id u8-20020a05600c4d0800b003dafef0226bmr23798149wmp.32.1674479515328; Mon, 23 Jan 2023 05:11:55 -0800 (PST) Received: from ?IPV6:2003:cb:c704:1100:65a0:c03a:142a:f914? (p200300cbc704110065a0c03a142af914.dip0.t-ipconnect.de. [2003:cb:c704:1100:65a0:c03a:142a:f914]) by smtp.gmail.com with ESMTPSA id c40-20020a05600c4a2800b003db16770bc5sm10278946wmp.6.2023.01.23.05.11.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 23 Jan 2023 05:11:54 -0800 (PST) Message-ID: <7bbcccc9-6ebf-ffab-7425-2a12f217ba15@redhat.com> Date: Mon, 23 Jan 2023 14:11:45 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 To: David Howells Cc: Al Viro , Christoph Hellwig , Matthew Wilcox , Jens Axboe , Jan Kara , Jeff Layton , Logan Gunthorpe , linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Christoph Hellwig , John Hubbard , linux-mm@kvack.org References: <246ba813-698b-8696-7f4d-400034a3380b@redhat.com> <20230120175556.3556978-1-dhowells@redhat.com> <20230120175556.3556978-3-dhowells@redhat.com> <3814749.1674474663@warthog.procyon.org.uk> From: David Hildenbrand Organization: Red Hat Subject: Re: [PATCH v7 2/8] iov_iter: Add a function to extract a page list from an iterator In-Reply-To: <3814749.1674474663@warthog.procyon.org.uk> 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-Queue-Id: 7CB2340005 X-Rspamd-Server: rspam01 X-Stat-Signature: hunib4bumb6m9e1eihocdamdnen3wacj X-HE-Tag: 1674479518-834180 X-HE-Meta: U2FsdGVkX1975NUGWWNTkac9E0xZMk68MltU45bQvxGm6rcMR5NcaBbKzg3X72AVQ9BtaAHobx1jca7mrCsqREBkWqlK/uxgTJzvjqj7zEkDcS7GrJ9w1YlcJZIB+affYNs1rP9jlBwnZtLlhZe+Bh4a7Gt1z6wBBPMj8NdaDRG6JJanQRZzM69djhpFE4COIn+2h3UDP/84WUpBSGlk+21TPuE5i0Ug5Xq+hIYi8M87HOrHqdcpm1EB8XhvYRKGs/dEbhSjzS3dVQUKb0T3aHgpbqpd2n8fIkUJ3qzMhaL7XauASfKH0x7Y7TI7Z+VecE+wGIKj5j/XUnZWTahXcBQecgkuUb8ZhdBd9bhFdBB+1OOcFapKOCXtL6LmK1hRjweW3g7pOpEUBhuGwzj9jovvxV0mrCJs5oDWMzlnPfx0iM3MrOjIlXONBPV3ebKvJMAfMuEXxYJhnxTWznXlqeD+Z+ZQP8vdG3Jd2t2qJx1XRERM5+Vgol+EgDMi9vVn8U4eicKlNLjL0M7/kO3oCeDlvAoJlpicgcy48lZ/TeRb0FmLTZF9D8BF41JLbf/SgYNNiRfpJlbTS+qXMTh7kbo68Oos3c1tRfC8NRv35LbFMazrHZFntBAWgYuA8jzN0UNP5erOwAH3BrAK/M0TIsJbKius70HEGYjyBpYFp0kr6uTvnUqJfoZYwuu19KeaR428UeFFcxeykZJx+ChNAB5htxLG+lwgUOx9BizvFY9SLCpEQIzFPGMlqHwR67ROZ/w20SVPjm6GnhDicMuwejQVnS5x+d82iAJpJqlCm09avcyoTdThf2d9dwoboCbr0wORu3AVjrx9kyIF1nABvQjVPreerV1LyBAYzCqs08Oc45puvEVjiQEn1z5idAzYjjNhH1+UrDwhGImVePW8zDXaVLL6cT018ljX/OuKKeGYckH+ejyk2sfImuM+zrcSKYSkbrXSJ+9kwS4zWiX uPyzRwDf kOyrgqOzSzQKMokekWMNzcK8Jc3Fy/CJgSXjGroaME80OcTAKhjf4FoVvCI412TVyxKUNECSHy9wutYQFzlxgLZuvWzbDvF0vAhgmNZ1qN5jfHSVEjv6TcTywtk8fUuyI1X7NFf6M4HFgKzIU2ug4CbxB093re0YXbWkmOtdAjMiDziiXQ0g7uotHyfH47qNMcHjMmxTG7zmHA0aU9mABOmkffKwzD4DoPoQyzdPpv+Kturwq/U0weX04Wbcl5K4yO1ysIXp3wD2V/5IPQ/oGCk0o3tenE6m01SbXbB1f8qtuxeB8PHrAnSo84jfOzvqaVx0OK92f2ilv1qwmowqjjuCe/ua9SYEBLtTsqTfdtlztRVQ5jAUmJQL3CjwdAK084jBlv1ahDmeAEo1NXW5rzEtQIeTmF+R7u69w18xihxstK96MA1dPE0tzv0njMOcwKOZLeznNbAjrM49AWiHxnFPhysIkPdZslnt7PHxZ1tb1ocG5tu+0MZLbpdY5UBHqzk6zmkJG5cXVHOKXfXL3pfAb4fVq3K1b4fpL 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 23.01.23 12:51, David Howells wrote: > David Hildenbrand wrote: > >> How does this work align with the goal of no longer using FOLL_GET for >> O_DIRECT? We should get rid of any FOLL_GET usage for accessing page content. > > Would that run the risk of changes being made by the child being visible to > the a DIO write if the parent changes the buffer first? > > > PARENT CHILD > ====== ===== > start-DIO-write > fork() = pid fork() = 0 > alter-buffer > CoW happens > page copied original page retained > alter-buffer > FOLL_PIN users are fine in that regard, because we properly detect "maybe pinned" during fork() and copy the page. See tools/testing/selftests/mm/cow.c (still called tools/testing/selftests/vm/cow.c upstream IIRC) for some test cases for that handling. FOLL_GET does not work as expected in that regard: pages can't be detected as pinned and we won't be copying them during fork(). We'll end up COW-sharing them, which can result in trouble later. Switching from FOLL_GET to FOLL_PIN was in the works by John H. Not sure what the status is. Interestingly, Documentation/core-api/pin_user_pages.rst already documents that "CASE 1: Direct IO (DIO)" uses FOLL_PIN ... which does, unfortunately, no reflect reality yet. -- Thanks, David / dhildenb