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 0FC1DC5475B for ; Wed, 28 Feb 2024 22:57:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7DF426B009D; Wed, 28 Feb 2024 17:57:23 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 768436B009E; Wed, 28 Feb 2024 17:57:23 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 608E86B00A1; Wed, 28 Feb 2024 17:57:23 -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 4DB806B009D for ; Wed, 28 Feb 2024 17:57:23 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 1709B1211D8 for ; Wed, 28 Feb 2024 22:57:23 +0000 (UTC) X-FDA: 81842725566.03.F0E649C Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) by imf27.hostedemail.com (Postfix) with ESMTP id 1D07440010 for ; Wed, 28 Feb 2024 22:57:20 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=cFPntNDp; dmarc=none; spf=pass (imf27.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.46 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=1709161041; 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=XmDUVGJ7uYNuJQyRX/NAFGYz0phL9n1ekfsCjXQN9T0=; b=dMpQV5P8eLxjn+Y6ok55vi5mx3t2WaqMY85bjztfNwQUwsjwjNCPikT2UOr57/fbJ973BM q6UrzRO86v81wobNmAaK9Q08nZjoaCCKnagUaPk+zCXTf2hYP8YDyVwOfDWjAqGOpSjubx t5+TpTNT1Ie2fiZIENjQVva7ezBqeXw= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=cFPntNDp; dmarc=none; spf=pass (imf27.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.46 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709161041; a=rsa-sha256; cv=none; b=2sX6h6LyFljTBTNcWl1IdWZbTLSgHlfvVJD/dCazCpwjr82440kF+bxBoi6gDuJ3ae9iIR cjMOSc+rDbRhtoMFJYAS7cxHs9BBeBUJ7vX1hQ+kXUYh1ALX60BxgjzJHHnnfN1YR4Bb8C sO5OppBGxJACS9QS0WIGvmcK4P869ig= Received: by mail-ed1-f46.google.com with SMTP id 4fb4d7f45d1cf-5640fef9fa6so445977a12.0 for ; Wed, 28 Feb 2024 14:57:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1709161039; x=1709765839; 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=XmDUVGJ7uYNuJQyRX/NAFGYz0phL9n1ekfsCjXQN9T0=; b=cFPntNDpiCPKF3LsBedl2wc6yf5342jdIXi8lA9kqboDOAFrhEvRpoZxkOJo5TnWVu 5vMfw2+UwQHOLNAu33+PHNt74IIQPnecCTvZm5dPZFP8eHxwiAz7wz2YHI4Gn3aso5mD zSIsCC7n3/HpWXUe/nlPeLl/ZU3x8e8pWUU84= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709161039; x=1709765839; 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=XmDUVGJ7uYNuJQyRX/NAFGYz0phL9n1ekfsCjXQN9T0=; b=XUJAFKPra5PUSs152V/Gl2dalBNxybqTJnBnkuq169U7Fq1TRpDGN4dHQb9qf7qUdm dxe0/fTMTjUeFgQ5bhC2ZSG9Qk31WT80XwFe7Gt2hstguQns3CbLiKT2qMJSIzWPYUbu zVaadVOHJCQ5GhDxpbzWQeDaYW8bF/61y0x4DZWaSE+dta/2lJrcKyBCkNAf8JcHbvi7 ldaGDscrNGl8MxXDjuAwdv7wFM6PCHaJ8cOHv3vPSI9Gd/JvJNCQfu3fZXYh/z2xu9CS EiJV7QO7bzXrx6nPptuzZ6GqIl5WH6qFOE0BKCrS9HBKL3BUTMN6K2FzrwrOl6s1IeNe CaxA== X-Forwarded-Encrypted: i=1; AJvYcCVkChzHXyBILG1JXE0HI02iSt3xM4WZV09q8BFer3sZxmYE17nmtQJTfjJYC2N5K5+m01lPacLDJlvfsRwLYJEBmlo= X-Gm-Message-State: AOJu0Yz9S8XOWG4L9rY3E+C37fXjjKrC772W6cGT67P6/9zz7Mn22+nI vSKe/CveLPdRV/TLAm3Mh0GfMDm/MQu4q2FIIqYLFx4gVeEuSocupouB0Z+czrQfpz0uwhVaA7X tBadZXQ== X-Google-Smtp-Source: AGHT+IGJRAlgaKY2vnYPJw7jyEwUfVW467BJILMei0hrqcRCo7eDNPx4yeF2bRGpuXlPWj/GTEDTww== X-Received: by 2002:a17:906:3c15:b0:a3f:86ca:ed2f with SMTP id h21-20020a1709063c1500b00a3f86caed2fmr202145ejg.49.1709161039383; Wed, 28 Feb 2024 14:57:19 -0800 (PST) Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com. [209.85.218.41]) by smtp.gmail.com with ESMTPSA id gx11-20020a170906f1cb00b00a3f6466ba85sm5923ejb.35.2024.02.28.14.57.18 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 28 Feb 2024 14:57:18 -0800 (PST) Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-a3f4464c48dso39042466b.3 for ; Wed, 28 Feb 2024 14:57:18 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCUoqYK+rMYirA1LOMk0khxGYAU1Dm4cjIGcRpP5I/CxVzXv7uGMLKtfR6/dsDKpoUZkMNzRR9IioQWuQcg9/kopAqU= X-Received: by 2002:a17:906:b7d4:b0:a44:f89:8104 with SMTP id fy20-20020a170906b7d400b00a440f898104mr218606ejb.42.1709161037880; Wed, 28 Feb 2024 14:57:17 -0800 (PST) MIME-Version: 1.0 References: <20230925120309.1731676-1-dhowells@redhat.com> <20230925120309.1731676-8-dhowells@redhat.com> <4e80924d-9c85-f13a-722a-6a5d2b1c225a@huawei.com> In-Reply-To: From: Linus Torvalds Date: Wed, 28 Feb 2024 14:57:00 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [bug report] dead loop in generic_perform_write() //Re: [PATCH v7 07/12] iov_iter: Convert iterate*() to inline funcs To: Tong Tiangen Cc: David Howells , Jens Axboe , Al Viro , Christoph Hellwig , Christian Brauner , David Laight , Matthew Wilcox , Jeff Layton , linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-mm@kvack.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Kefeng Wang Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 1D07440010 X-Stat-Signature: g5kwc1retosbq499z7pfp3ij38aiqggw X-HE-Tag: 1709161040-96672 X-HE-Meta: U2FsdGVkX1/NSUzOs7Ky8s7TO03L4G8e2MIgj2puehxJgri9pQV6utJjdtibgDN84BI2pcbpijyo32rA9BC12P4HZbmo2Bdb/Lg8m+i6PfLXLl6yXrQ/jEe5yKSWvEjz4FQn6cocZkpw7d422CkZZkpM8aS5fDnH2ND0Ah7hFgkECYd38+E5fro4NVC0Vt2gzxOrrB/5IjOylGpWha4ut2kaKTa3K1W9M+E8OxwI39Hzh5MIruOL/SdX7k0WPZQAbypNt70rK/QsLMEAZDVR8danYyzA7CvR32Vpfm1dAjqnpS3dzLSj4+1jDOWADd0/92hZQIOgBHLssIQqQf/7zqzSFkgFSc+S1MoNxKxoeRQEt6we9E1yckappxt3x7i01zLmWlCIE08QFbMhPcD2az3Ym3+qENWuIryUb1Ds75DLov52hiZHx4aMyP7B1Nai1N79MjSbBNCHi9P/63QFFYVHb/tPf/G1oGKjzCYOkgPMAjh8Y9zPs1u9S3owD/zm0fdhzu5w9arFygMx2MRqJsp0oSvrY0bwcTlNEBQw6e4yspJvSbTkCgBfTCr+kGmAD7f437y63dp7OxwKqpFXiXsKBHz3nx3LkFUdxzZvVv/Nq+FbQV2wYqQp2SXHnjnC9ETEYa0tDXUJt0XZS47cKnrhjSzBygYXlLdYTnhvo5xs28LoC5rzdiFwdHdHy0nKxsRS5ltnBz6tsZujX74wlvYFn5A3UlEv31nyLp9epz1jIpqVlgtAlixjSdu8pjLdgSftJES8jiveRamnssaTb7J/15kUBg0zveRJK3mroeCRNH2bM8dATN207Xe+66D5rwtgQH5wp4romkuYMHoeIa6WV4oEZz7+LxSe1ZYqYvBG0D/yRCL8ENpkDUjGFSioZQzO83LQERfWyt2uToclK+MolzlsZfOAeOX8jB7khYohNO3irCX9Ppk9dYKbaG6V/cVHzsIZPhV2DA/8Cq2 vwu3MI1g WsoQFdpYR23TDUkNulibCp01izqyCIR1YPhR1n9k8rX/xxE5nVqtrVVuRNGCk3fsrlOlsyQ+1Q1gZ06M2Fi5XzqCPpYfygpHN1H6xgn7pYi37XjxO/gi7oZ+9nE3EsbImcnnn4zexYUl0bPYo1Vg49wGYlmYJBv/JSy6NjIq1zK/mFk0YOiqw4X3guaT5PU3m+jg9ZTmFp/CDTofqTmt9Ysc7pIO6e8eoThKjDIPltg8uj0AghwmnRv2YR5RdEtiueC8KGz0QYllAzptLB8Ch+DkF9+HQYaj8oVHXrPvexSafgJKAPLbhWQ7lVbKuZ+IeKMQV 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 Wed, 28 Feb 2024 at 13:21, Linus Torvalds wrote: > > Hmm. If the copy doesn't succeed and make any progress at all, then > the code in generic_perform_write() after the "goto again" > > //[4] > if (unlikely(fault_in_iov_iter_readable(i, bytes) == > bytes)) { > > should break out of the loop. Ahh. I see the problem. Or at least part of it. The iter is an ITER_BVEC. And fault_in_iov_iter_readable() "knows" that an ITER_BVEC cannot fail. Because obviously it's a kernel address, so no user page fault. But for the machine check case, ITER_BVEC very much can fail. This should never have worked in the first place. What a crock. Do we need to make iterate_bvec() always succeed fully, and make copy_mc_to_kernel() zero out the end? Linus