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 19A0EC4332F for ; Tue, 12 Dec 2023 14:25:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8E0BD6B02F2; Tue, 12 Dec 2023 09:25:50 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 890596B02F1; Tue, 12 Dec 2023 09:25:50 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 709FE6B02F2; Tue, 12 Dec 2023 09:25:50 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 5E15E6B02F0 for ; Tue, 12 Dec 2023 09:25:50 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2D9CB40A29 for ; Tue, 12 Dec 2023 14:25:50 +0000 (UTC) X-FDA: 81558390060.06.143A90F Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf21.hostedemail.com (Postfix) with ESMTP id B1BFA1C0023 for ; Tue, 12 Dec 2023 14:25:46 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=dKuOqzEh; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="I4/1Pp2g"; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=dKuOqzEh; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="I4/1Pp2g"; dmarc=none; spf=pass (imf21.hostedemail.com: domain of jack@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=jack@suse.cz ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702391147; 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=/4adbCx1T16ZMiU9KQhuQLFju1f4y3eDfGaolsH/mGo=; b=mWnIZN/uSirOseSAW8IQA69xyq3gAnE+cssDCI+6xGGHjqyaUdPjGoiNlbz2tE1pL3Y7wB DDIvfFunZnsQIczfYoliNoRclUQwNibil37MjgI1424FOPfWpF4fNTVrT2Sgs5SctHOnUz A8XcIwDtB292vHlqVQS1I/u+7VsZfwg= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=dKuOqzEh; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="I4/1Pp2g"; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=dKuOqzEh; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="I4/1Pp2g"; dmarc=none; spf=pass (imf21.hostedemail.com: domain of jack@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=jack@suse.cz ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702391147; a=rsa-sha256; cv=none; b=rJNM3zCEgudWDSo6wEEUSXa2hL8YcwHJgJe+v3BDk6izuwrLNorLDWe2VlVDGkE7LGMz9T 0uMxi63PMDjqR9YLmfcHeqjtitEuBxV2Q+ubjRFHYojaGtFHa1tE/h4fSiRoYgPT5gsySz mrpRd+jZDYmGmaC+8n+d5C/AFSjMygc= Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:98]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 860B422512; Tue, 12 Dec 2023 14:25:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1702391144; h=from:from:reply-to: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=/4adbCx1T16ZMiU9KQhuQLFju1f4y3eDfGaolsH/mGo=; b=dKuOqzEhOjI7MDLjj4Y/D876HjvNd2he8j3TqZH0dq0CwIl+IM47kp6tM8rn1x9oiGjXrV Xx83VxBaW9GetBZUB94594CQq+HgFvYWth7Kp6pIt1/JbJXQhvQeI5QlXebQvzPskrgJKL 5v7CJiEQMQhv6QNpV3lQ5pxqoW9BXcM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1702391144; h=from:from:reply-to: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=/4adbCx1T16ZMiU9KQhuQLFju1f4y3eDfGaolsH/mGo=; b=I4/1Pp2gm/l3VmYZcn3x9yF8Mlb+76enmviSxE2vsM294FaEuhcpch1BL4Yr+dGzmXfEaE y5VP42v9EB0OcIAg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1702391144; h=from:from:reply-to: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=/4adbCx1T16ZMiU9KQhuQLFju1f4y3eDfGaolsH/mGo=; b=dKuOqzEhOjI7MDLjj4Y/D876HjvNd2he8j3TqZH0dq0CwIl+IM47kp6tM8rn1x9oiGjXrV Xx83VxBaW9GetBZUB94594CQq+HgFvYWth7Kp6pIt1/JbJXQhvQeI5QlXebQvzPskrgJKL 5v7CJiEQMQhv6QNpV3lQ5pxqoW9BXcM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1702391144; h=from:from:reply-to: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=/4adbCx1T16ZMiU9KQhuQLFju1f4y3eDfGaolsH/mGo=; b=I4/1Pp2gm/l3VmYZcn3x9yF8Mlb+76enmviSxE2vsM294FaEuhcpch1BL4Yr+dGzmXfEaE y5VP42v9EB0OcIAg== Received: from imap2.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 63C53139E9; Tue, 12 Dec 2023 14:25:44 +0000 (UTC) Received: from dovecot-director2.suse.de ([10.150.64.162]) by imap2.dmz-prg2.suse.org with ESMTPSA id +WBXGGhteGUqUwAAn2gu4w (envelope-from ); Tue, 12 Dec 2023 14:25:44 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id D983AA06E5; Tue, 12 Dec 2023 15:25:43 +0100 (CET) Date: Tue, 12 Dec 2023 15:25:43 +0100 From: Jan Kara To: Matthew Wilcox Cc: Jan Kara , Baokun Li , linux-mm@kvack.org, linux-ext4@vger.kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca, akpm@linux-foundation.org, ritesh.list@gmail.com, linux-kernel@vger.kernel.org, yi.zhang@huawei.com, yangerkun@huawei.com, yukuai3@huawei.com Subject: Re: [PATCH -RFC 0/2] mm/ext4: avoid data corruption when extending DIO write race with buffered read Message-ID: <20231212142543.jrortgje22traesa@quack3> References: <20231202091432.8349-1-libaokun1@huawei.com> <20231204121120.mpxntey47rluhcfi@quack3> <20231204144106.fk4yxc422gppifsz@quack3> <70b274c2-c19a-103b-4cf4-b106c698ddcc@huawei.com> <20231206193757.k5cppxqew6zjmbx3@quack3> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spamd-Bar: + X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: B1BFA1C0023 X-Stat-Signature: afk76e1txz91ummwma9z5rcpexyx1yz8 X-HE-Tag: 1702391146-475687 X-HE-Meta: U2FsdGVkX1/ZgFS7srfzoGMBS9mkF3/ZwKBDCMaV3RL0/hnJaJPwZr1b3utCXTUQ/XxM7Ni5duoJSLzn4snAM+IhLQSUXcf43/llhzJ5L2ElQZ1rIZm7Zn587ls6Zb7NJ5+0K/jr7Xm9DmEvnfZvdjBGt51rVovxn11r4RGaZl7pBwoN5fkQIYLNOfpeGHVLduciFjKn7V9E4l8Yu3nj8Qb6U/TeO/ApSqdCzJIg8AW8qgVYBVPtmoCmPZclyCiMG8/ou148A4QgaVp0P3tH+zvCZVQ6IP+NVK5vNaFUzTpNZ+5d2wX0gdtGeWCvg5r9+PwlY6XMwMUkfUuA1jl+zWxJH0fiqyWtvqyU+y4z9MjB1DGlqI6md1L5MsBbggvFJIKQ/eE9ak8csvAwLvg5esdkVY/Ax5ZJ7440UoYpnZRgCr1NifpvgD/LZkW+xM1/CfTUHopBJxxCpjUge0E0Leiei/kC6F9U/BYKUD0wNMEiqM48xDRpBuWt/5RZNhgLSHX2u5aq6NZqd82aY9KNRhJpkUKLgqR/DFkdULAvJLOcYm77G36sDkVOyEl6OXDuwJtb1aWdZh+g97lsfhv8gH6m4BdEBCP/XRUsbrHvFuQ3GvKt1feueVQR6EzRVIFGr9ZrYxTkW4saCMtOYQdveqHt9KYYHG5qaqj5cqjL/hZj0o3xY9cyC0+kkdHU88zNdFoeUytago9elw8b2N4YIECoDFkY/H9zKZhrXSCjjzUf3lgtK/6CZbviXu0iyo9fIowR0UVFmFraTRx5dmxDr8vdl53nWJa7E0zt7lxtUMCACO3udFWNYPnK31GlhM+W1ME4CkoHjKsJvmXxXpwXG98/MZo+DM7CM6jBZdpVrG2SnDjl119QIE4XcFfhhpsJ7tajtIRNXcNLBNgWxeNaLAbJIRpOeYIc2x9Ktw2GemLa3W+Bu7jw5VaJ6a10Qsq1OlmKWerwYggFtSeSFtW AM/StbMf Fq/3O+2DlUFgYucyoCjU3RtTHecnkmnTHzCxBmjKl2++jOpEpNqf2Pn80GfCw73HfObGTEQ5cN0j8+d5BK3rHjV0QP3o7G+sEl4rkQCaJzH3ZWwoleG5wQ6cRPEdXDqabQfARJ9U/DRzdj69kEttKZzIYUsekBrb7psy8uoxlrp9PHUUBmNWc/6WLMfGumkXlsLKl/KFtLNfjlDE3UtjJOSNTkOgo+BQdhUqvF9QUZwTYkwyu4wQ9aUOBhV3QG+dBorcNXGmBrn/h/eeu6aLVmq5o696xWNjv8l75XWchgxwEa6KzQ58TUqmfIRlUeI/o8FPlCBulsMRchvbxgBIVCvAxng8GKLNo6mOsvGfLYHB+0f2zYIZCfisVLk/CH1ZzVN8j 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 Tue 12-12-23 04:36:45, Matthew Wilcox wrote: > On Wed, Dec 06, 2023 at 08:37:57PM +0100, Jan Kara wrote: > > Within the same page buffered reads and writes should be consistent because > > they are synchronized by the page lock. However once reads and writes > > involve multiple pages, there is no serialization so you can get contents > > of some pages before write and some pages after being written. However this > > doesn't seem to be your particular case here. I just wanted to point out > > that in general even buffered reads vs writes are not fully consistent. > > Buffered reads don't take the page/folio lock. We only use the folio > lock to avoid reading stale data from the page cache while we're > fetching the data from storage. Once the uptodate flag is set on the > folio, we never take the folio lock for reads. Right, I've noticed once I've reread the code but thanks for correction anyway. :) Honza -- Jan Kara SUSE Labs, CR