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 499D4CDD552 for ; Thu, 19 Sep 2024 03:13:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AB5186B0082; Wed, 18 Sep 2024 23:13:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A3E3F6B0083; Wed, 18 Sep 2024 23:13:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8B76F6B0085; Wed, 18 Sep 2024 23:13:23 -0400 (EDT) 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 6D1256B0082 for ; Wed, 18 Sep 2024 23:13:23 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id D01CA140A37 for ; Thu, 19 Sep 2024 03:13:22 +0000 (UTC) X-FDA: 82580017044.05.036750C Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by imf06.hostedemail.com (Postfix) with ESMTP id BC8DA180004 for ; Thu, 19 Sep 2024 03:13:20 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=fNAMprpe; dmarc=none; spf=pass (imf06.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.42 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1726715568; a=rsa-sha256; cv=none; b=NBlR9yKXeOcQTFY+6n5Je2V0c7l7iNaneN9rnUFGOrORwnACVbLvjlax9L3PDJ7VU14x0x 5m3f5JLddHwcPdfoCpQIm2Rw60yxw36PYZ1CxT4FnaFyErAznOQZbyUDB0lerGI0KtSm6F M2UN42WYK3vC9QLzqjWVDJ1QE8wIFHE= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=fNAMprpe; dmarc=none; spf=pass (imf06.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.42 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1726715568; 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=wcLLwAFuhFyJrwjWn6iH7R74N7ls/NAjmWUt4uQ7SSo=; b=3c/oDTriRkKr2MQIF5fM1yx0C1nv2Ls+o9z1ewWAbqGywPWGE9PI1O7pbkhSqKIeMDO+qG d8KJ8A2DVjLs7vNrC7CeYFIbiljzaRx7LkyDl4WoY/cU0+S6bJJ91lTKoTBMiV5bMskpKG SMo43pkKDatZ2DML4V6PCCmZ5lw0j0o= Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-a7a843bef98so32471366b.2 for ; Wed, 18 Sep 2024 20:13:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1726715599; x=1727320399; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=wcLLwAFuhFyJrwjWn6iH7R74N7ls/NAjmWUt4uQ7SSo=; b=fNAMprpeYpfWHN2H2MMSlQ2zIT1pKZQQKSHXaM9+jPxXJxN7sQiKfvDddN4Z+fPui4 YSRlwdyZAz0OKiD1vShEf78Jt7+P2W321OoTa5sIPIP5emeB6GT6u7VxJS7ZaKeAJ6QR PfPTw1BM6LYZuPeKtoT+oVGOumoF7w7Ia7OrQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726715599; x=1727320399; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=wcLLwAFuhFyJrwjWn6iH7R74N7ls/NAjmWUt4uQ7SSo=; b=amIGOc4cn74FMAIS/ldF6GcDD8YcvpoN/avWLscvmVJo+c2y30JPrQP/RfRrwnyjsd VoxmFINPs472ed90sK+FFxMTheber506IoR/h+xwV5ZA5g0mpKcGzijWG4vsRcxjYKnX gwu8JejqKz7OxGQCa0CZUP1x6ozZV/2Ry4uzGei2OSx/Xf4THGzRQAvMv+k0d6TawBjp rktdagdyxFBCrcRFErZfnMB2OeCNI9DkxKZrx5hgo/xGJBc4EJpbm86phEopO7qjlGZn M9Z8cR3Qa5fMvbVXOB5ApVtXxFBx0m6MGDtu5u4fZ9I/2nJv9T8a2EXiZZrwtUhyPVoM m3dQ== X-Forwarded-Encrypted: i=1; AJvYcCXVLwzPyJ+8DDZUDYL4cqxziLoygvARAh3IRoNIjreDePPzLfsGNxfShchugbwNxl27dH+jZF/EpQ==@kvack.org X-Gm-Message-State: AOJu0Yw6nMFggJhtjBkb1nKYfqQdLFoIE64oTfueXoAxh2+1rrCxnBIU M1ijkst1kUSt+lqisN+v+7B2e9HTpRpiZ8OXEm7iR2OOAkbeDX3ZF4wbUIhb/VHsFBeXCpfpi/V vneBnLA== X-Google-Smtp-Source: AGHT+IGN5iagcX3v0uOiLFYdyo2gC1BEDmDX+IZK4ohrYb0LttvimvRdBBtSe2JcpvfCZm0m6/w2DA== X-Received: by 2002:a17:906:6a0b:b0:a8d:2ab2:c9a0 with SMTP id a640c23a62f3a-a904814cbe4mr2106286966b.53.1726715598702; Wed, 18 Sep 2024 20:13:18 -0700 (PDT) Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com. [209.85.208.47]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a90610966aasm662765866b.26.2024.09.18.20.13.16 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 18 Sep 2024 20:13:16 -0700 (PDT) Received: by mail-ed1-f47.google.com with SMTP id 4fb4d7f45d1cf-5c26815e174so535053a12.0 for ; Wed, 18 Sep 2024 20:13:16 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCWXawRt1MkcH3q4Mvoek//dFFQ709czliVbxPOpIUPW1aeO7jTiUJapXOi42ItoO9mQM5reFdvAIQ==@kvack.org X-Received: by 2002:a17:907:6e8b:b0:a89:f1b9:d391 with SMTP id a640c23a62f3a-a9047c9c504mr1768413466b.14.1726715595791; Wed, 18 Sep 2024 20:13:15 -0700 (PDT) MIME-Version: 1.0 References: <74cceb67-2e71-455f-a4d4-6c5185ef775b@meta.com> <52d45d22-e108-400e-a63f-f50ef1a0ae1a@meta.com> <5bee194c-9cd3-47e7-919b-9f352441f855@kernel.dk> <459beb1c-defd-4836-952c-589203b7005c@meta.com> In-Reply-To: From: Linus Torvalds Date: Thu, 19 Sep 2024 05:12:59 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Known and unfixed active data loss bug in MM + XFS with large folios since Dec 2021 (any kernel from 6.1 upwards) To: Dave Chinner Cc: Matthew Wilcox , Chris Mason , Jens Axboe , Christian Theune , linux-mm@kvack.org, "linux-xfs@vger.kernel.org" , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Daniel Dao , regressions@lists.linux.dev, regressions@leemhuis.info Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Queue-Id: BC8DA180004 X-Rspamd-Server: rspam01 X-Stat-Signature: jqj8uiskqr1e5mwrtzsu8ocgnwihdahd X-HE-Tag: 1726715600-195405 X-HE-Meta: U2FsdGVkX1+qG2QxoDl1lejs6Dmwm7S3WRoaBjohF2NRHUMc/EGl5VOFXK3GCvNqxKrXahVmuzb8oZlpcIWejWh8bT7YuYdZZfNR1nz1jjyDE8naBJ+MKTPYEVheX/FXdtykXSWnnyxUxBwTMtW2JcoypbKF+wilHo9rh8Sl3rOsJE/PDv8C3raVTN1PnxVLHLm8oO+C+A8AcYZcpb4Riz7cHQNjXKMTqWjv3qNEe1oc6on6MWO6sepWxRhCUOeW1ZCwfRuwTiBpza7/dk7hnNufKKdGpOLTyJa7U5Xqjk/uAj6YO6ApuZSO8i/n4s6oFMFouPYwbP554LqSXa1YQqwZ4IWIx0eKjvUEwS9J4OgHtvQC/tatbZEYaLIWB9txVCJg5zJsa9/lsGgrR+Ya0F3zTCqC0YrmFjhwEoSiLhc30qUgYuidq7N7ZlAd2r1fTyG6eqViF7KBCqQovp5jz1cICFJi+Up08Q3PRzY6KNMnlrs81bEZVEr2kDedzJk79/usykLc7CnGBKuw9H2gjh11ti+pmNwxsfHJooxEyapkrCzVM7E0IPiG1GUi931keRSWvEi83ixaakR00V5KSrI6FvtHBfs5dOBI2Rz+XaRmhHSdQ0aJ2eHoVL60DRKXHtz/jGU4azdFKfCLY2PASQXEqOcQG0ynAP/74TWMe2LB0qfb3oDuLSlaX3YIE+4fz5wALZO1oSbyxmG2dYm23Q1iphFWhYhgNQF9H39FdzUwhWNyRwCb5ZHYVXRJFNBBRzXK9hW3tdx9o0aYliY7h/fyKwHkhQRDaT3weGHusXPych2ONH6QbHI1URw/uWGXwNXKjUy+SGpxT4DVWnJ1Zi+khmNyuJGrROtsCkz1IPBKABpG41jnD1VszznhZnsReqSEDHitjbr4MVcW/4vvikmE7RUp1PtbHUwy83Kw2LKvF/hyhhq0qRmF+ASDEFleHtPQ0xuJbxd9oIIhvHL lJNHluxk DkbPv8CJeMtSphCqg6NikL524lKrQ2/UMEQD6EWSzmDnmoGUrAN9MwAJiYpnwKsykKMEuVQdu+FyjWcY20DuAjT2jfwa4qR1cUAmVQ5g5HyCpkdVGnqdfOJYDs5HPbXYrHZG5TFCwN2vmP3te+keLMjc1kKW0+ob3GCDM4dpq9wW5eQltKdqov33h5npL03HRWvUljHSPUySOY4EKHplr96W9jBoWCqmThycIEl9WmzI/0THUjfuv42MLEk7HWJD4oQUHsU3e2aTcNfdsIAh5iWiiZPiv+g7joqn13onQ3jfjFeIEA++YPSwBUn/WtofF+QyhLcq3JuYJDowXd837B7JT5efmJZFAn2Nib6N4P7JKKDc5fmyK+R3TGo5V2uxtnEfC+INThRRGwEY9JCFGajNn6do/LqheH7N/N29RzTADAV7DV4tt5vdu3JOOhAqq85E4mc6dQLLUO5pLqWsMr85Edxs0n9IOXShWM54J90iqUvdD638l4U6uHg5ILjtyiNZhxi/HBha4v9UCrqib8BX98mcHksbX2+2nN6tHx4xL23iSFCxY73hTjbupXRX/rn6k X-Bogosity: Ham, tests=bogofilter, spamicity=0.010298, 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 Thu, 19 Sept 2024 at 05:03, Linus Torvalds wrote: > > I think we should just do the simple one-liner of adding a > "xas_reset()" to after doing xas_split_alloc() (or do it inside the > xas_split_alloc()). .. and obviously that should be actually *verified* to fix the issue not just with the test-case that Chris and Jens have been using, but on Christian's real PostgreSQL load. Christian? Note that the xas_reset() needs to be done after the check for errors - or like Willy suggested, xas_split_alloc() needs to be re-organized. So the simplest fix is probably to just add a if (xas_error(&xas)) goto error; } + xas_reset(&xas); xas_lock_irq(&xas); xas_for_each_conflict(&xas, entry) { old = entry; in __filemap_add_folio() in mm/filemap.c (The above is obviously a whitespace-damaged pseudo-patch for the pre-6758c1128ceb state. I don't actually carry a stable tree around on my laptop, but I hope it's clear enough what I'm rambling about) Linus