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 1ADA1C5478C for ; Wed, 28 Feb 2024 21:21:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3F2B06B0099; Wed, 28 Feb 2024 16:21:31 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3A2CE6B009A; Wed, 28 Feb 2024 16:21:31 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 26B166B009B; Wed, 28 Feb 2024 16:21:31 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 157946B0099 for ; Wed, 28 Feb 2024 16:21:31 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 823DE1A015D for ; Wed, 28 Feb 2024 21:21:30 +0000 (UTC) X-FDA: 81842483940.21.1AC9E6B Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) by imf15.hostedemail.com (Postfix) with ESMTP id 727CEA001D for ; Wed, 28 Feb 2024 21:21:28 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=aQyInn24; spf=pass (imf15.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.53 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709155288; 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=ibURPhL0TwbuNHb2Ue6c1VsEM5dnOByPcep2Xd5k/OA=; b=hlCqfd89DheREi32dG86DNIoypuyv+7H7yz4AZga9Vv8hYu+28XDzhUFCuIRUUmTDW6ki2 W4q3sV3OtzTasqkAjV0+VothUsq/TPkK+h0pgg3IhsUloeOGOaPjWba9M6hzxhDKU45YfH FOR0KFfLFEb0MNlTQfaQ2/JOBh1iebo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709155288; a=rsa-sha256; cv=none; b=ewDD17yKUOF6a2srBpVz152yo5jnwi6/cRihL5aAFTk3vQKetE2cZJpWvp7TpcRpIgSMFu BYH0F8tf/IPyPa38f/C7zvIYupMnMJpq3iLln5+sfmY7kSzocAgQuuE5H0geIpSmTazLco DecCP1EJwaPKe46kwrAYRQ+GmddGJEU= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=aQyInn24; spf=pass (imf15.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.53 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-5656e5754ccso361077a12.0 for ; Wed, 28 Feb 2024 13:21:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1709155287; x=1709760087; 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=ibURPhL0TwbuNHb2Ue6c1VsEM5dnOByPcep2Xd5k/OA=; b=aQyInn24brLCSYP/mq3JIHZftbASwSy1l6N1JHBnE+i+bMvzURcfbtFtQLJZtYkY/K DDDGxBD5IO7bcLWVQdwAK4WPJANCWr1CzysoaJnJGzdGuQT41mXIWoweKMlTCj6halH+ gdOBdbYLOEreytUQ/6sGrmX8MLbzHhmrxDIRI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709155287; x=1709760087; 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=ibURPhL0TwbuNHb2Ue6c1VsEM5dnOByPcep2Xd5k/OA=; b=rTK0ZrOddb+Idw8gsaR+BvYpXLDtjU/6rsF1RSTJRdx7IxxKbAmKNzCgzi41ekM76n wQ1h8KrZXUPkX7nBCgqwGbFhjkpagfGLXObtRbj98ihJOJzhYFfaiSmOEXc/rYWxgUBa 5Gwsv0Oc7fe05OMBy7G/uf4s0W6uBNGxjs/TFwRvdmIrdUtC8Nh0LuE2KUiT5FOb45fa PSJOaryEDw0SDc0lrPHbOFjWnqBmOeC3c8NlufsWHbaZcuFS8qxz3b/I0JFj93nEFwSy k3V8DXt8+jt28MmYZf6zSnmnr0g3Mtedbx+78ztonHlNGh2Mjsw5+Nke0PhJ5ubEDFbl 7xaA== X-Forwarded-Encrypted: i=1; AJvYcCXFhPnKaiQhkoNcG1csIjqxzD1op+OIVVks6CJ5cAcKr7uQQJwgxqowiOJ5aHwjyqVYuTNcSeOMxvUq7kPCpRXL03Q= X-Gm-Message-State: AOJu0YwpnPam7xrZ5s2NBwJtJKhq32r5Y65nEh3Htcl7WhBdin+PIorV KJEKsiNAUr2Hk8YLnhjpN3q+h5cxuH9iAUngB7u3Lmy8yj7T8TRg+dTt5qNOQqH1ewfr0sNssxp cQwi9Qg== X-Google-Smtp-Source: AGHT+IEHGi8jqkOe56Hd2k/gOLavLw3fRUnFdLZN+FkO6E66j4Ji3PXIbKj/EF7LaP/M1WBhzOSBTw== X-Received: by 2002:a17:906:830c:b0:a3e:73c9:7acc with SMTP id j12-20020a170906830c00b00a3e73c97accmr95255ejx.33.1709155286539; Wed, 28 Feb 2024 13:21:26 -0800 (PST) Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com. [209.85.218.42]) by smtp.gmail.com with ESMTPSA id hk12-20020a170906c9cc00b00a3e59410a75sm2255522ejb.170.2024.02.28.13.21.24 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 28 Feb 2024 13:21:24 -0800 (PST) Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-a4429c556efso45548966b.0 for ; Wed, 28 Feb 2024 13:21:24 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCXxzF5dO6WdrtKAOX3W39/ggkojSQWSaYQGiPYX+e7GsSo1b8UZ3RZE5qWcOY+b75rcXKDvg76UrD9mr+0t0pdqyiU= X-Received: by 2002:a17:906:a291:b0:a44:234:e621 with SMTP id i17-20020a170906a29100b00a440234e621mr129720ejz.10.1709155284453; Wed, 28 Feb 2024 13:21:24 -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: <4e80924d-9c85-f13a-722a-6a5d2b1c225a@huawei.com> From: Linus Torvalds Date: Wed, 28 Feb 2024 13:21:07 -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-Rspamd-Queue-Id: 727CEA001D X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: 5ko3kt9m1c46qfw9xbrzdsxx9of5nf6f X-HE-Tag: 1709155288-986911 X-HE-Meta: U2FsdGVkX1/uYq9HT/BkJ9re3hxc9RH3roNPxPqy3qdxM31+gOAt72wGYrQb8lbAbo2jLocrVscB4kPIKbXCKVSFaa3JOQuQkmI83hdurcWhbXhBYH+P1pQISkEucSVCnM0Pb8+CtOYYeMy1kx5SGrKBVm94BTXcahhXeKvl0VbG8FOpg4YxoQx7i/ZCr3OblaTeexkOlNsxa0/sg4+wxEObmgZXSFsWGjVT6J0ptDSwdTrx1F6a5/zf3zpYb5M/OSRP6o6AtQ0HIo2UQ9Qgx/CJgBBniixppvyjxlkeUZc/+g+KjHWhbMxkvtj+9sj3gDoxhyjW2lIvN07yI3DzPjQcraF7R8KY+Api3yDsl8DfSucM3rYVTSwY1+lWamRHFy1By1T5P8wXpBxh3Z1DTKc7meMzhVpYt6I4sZr+I+2DR7YuvWbq26Zf9l1AXnVT876jS9FCxBj+jNzhFQRs1WfAIq70JHAy7u85chQ/mWOO+gt2DM9GdKJWsGnR8TaE61bTWDI/lvzwo08liGHCB2DU5cnmShYaD+MS1/8QGCjLf7mXFC5ajTSzerEMHjbP+uJCb/IopnH1/6xRBuNZHd0kIeaVJu7Tw5Lhia5Gyzt1QICBPtIem2zqIfndSL9sgXXzfoHRwwQ/fgiaqrEUmshb13HZKgiySNVBF0S17BUecujVFcA/3IW6umuZAtC8fUHqjYE8U3A4y+g4sskCsOpC5ELvwepPHbCIQUZf91m81p0lFz6PTPU1FwH7LS6sPV9ky3fHZz9Bx7nhqjFELN13yHK9QdTTex29JXz68HG0eAfln9ovWxMOeKT/bqx8dVSR+GSfsjEYBbJMyBoywDk4C9M7bDtQENSqcsrqlnchvX11hCQxA+A+/6QOUEuWXikYS7AkYZcg6dL/+9m3SAOg0eL5XHnubmQLEe1HPkde3gplv7WZYBgSkUcISYHFb4pl0mBt17QWQ8HnivL 8ln2KlF+ IVBRCv4nFw5MP7+VPSIsOditpgw3DDl7IRO5X+K/V1x6ki43/bTsj0aJ3fpZl6tiIri/tmsT5n0tzkZL0hVBti8Ss6QI+RF+yDNK9W5KAP3jGecVe9vZBKscUNw7PoZuITGFRDE1TesVaZa4opvaDicOS5NCC8WQwW+qopnflR4i7T9sP2Gomhpni2UMeXecptrfkuSSCP41i6v470LoSk6LEKKV0u8U6EpPhuu7k4rMDOSBu3HMbGOAVvwqlUU5J6uuJpON4YMLkYuMWAJEYEyJ5BxS3uAgC4lsaItO8DDJ9wwzCGyRQwl1HH8xjj+06DAmSIC5G4oAnxISz5gGsRDt6xJLVEqIni64MtRm5R6P7PtcwQEvaQojlDIUgVPVkSIxPr5WBu36WJqzBBk2OTNCrs8jan/Cg+kjW1Tw1jNjm9nCyZYum2h8FIdJ8u2BMWcuglyFVREEkhqumOwuLZlGS9B6sVIDarGg6ElvUkQ46etOSvWpke4cxbMJon6gMZB9vZ9RSJ5RSDhcRwRD7DFU0votB9AriS9xx4M2LslTurdyxKIq0jNPsoDsi6vLtp1wZ 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 Sat, 17 Feb 2024 at 19:13, Tong Tiangen wrote: > > After this patch: > copy_page_from_iter_atomic() > -> iterate_and_advance2() > -> iterate_bvec() > -> remain = step() > > With CONFIG_ARCH_HAS_COPY_MC, the step() is copy_mc_to_kernel() which > return "bytes not copied". > > When a memory error occurs during step(), the value of "left" equal to > the value of "part" (no one byte is copied successfully). In this case, > iterate_bvec() returns 0, and copy_page_from_iter_atomic() also returns > 0. The callback shmem_write_end()[2] also returns 0. Finally, > generic_perform_write() goes to "goto again"[3], and the loop restarts. > 4][5] cannot enter and exit the loop, then deadloop occurs. 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)) { status = -EFAULT; break; } should break out of the loop. So either your analysis looks a bit flawed, or I'm missing something. Likely I'm missing something really obvious. Why does the copy_mc_to_kernel() fail, but the fault_in_iov_iter_readable() succeeds? Linus