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 4E981C02188 for ; Tue, 28 Jan 2025 01:00:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D578F2801ED; Mon, 27 Jan 2025 20:00:55 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CDF5A2801E4; Mon, 27 Jan 2025 20:00:55 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B806B2801ED; Mon, 27 Jan 2025 20:00:55 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 966442801E4 for ; Mon, 27 Jan 2025 20:00:55 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 226611C7BB7 for ; Tue, 28 Jan 2025 01:00:55 +0000 (UTC) X-FDA: 83055056070.29.71947F4 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf19.hostedemail.com (Postfix) with ESMTP id 74F111A0011 for ; Tue, 28 Jan 2025 01:00:53 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=2sGc2tmn; spf=pass (imf19.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738026053; 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=ljRCHBsM8deAVp6zX3HJkA534iSyy7Wq23YcOYjqpVI=; b=KhZU0I7Z1aBhNUpmLAb3chqrYEkcAb4N5y0NU0dK5D2IX5BrdQ5PE2Rdo9ldGVaId9uk1k siRi8O/RZ9M7DI+/IBRU7AN7VTFzLAW9GRD96MGuZ/HdYVo1LMdhJHBDKHCHti5TOhlTNT v4v2X4q8klV1e+xWwYBmvkSYbBMfkzg= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=2sGc2tmn; spf=pass (imf19.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738026053; a=rsa-sha256; cv=none; b=z623X9N1OTzsmXQSM41UICkOieM4M10btK4tvpNfzCHtKKxeU1JLUywwzkUHwpOuZcBcvK +xMj9V/iF15jbBd4Bsvq2WwFIIE6sd4KSMM8ywG2sN3/CO7zcYhXDFBWLcrA0Iwe/1IARD BSnVqx3YoPxE6CqanyaDY0h5RADHGQY= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 6EB605C58EA; Tue, 28 Jan 2025 01:00:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2607CC4CED2; Tue, 28 Jan 2025 01:00:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1738026052; bh=9S6be9CGyWGIBAr/WbSEg/fLSlvTwLEbrGhMo6RSv40=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=2sGc2tmn24Hbt3it6lT7HPhhZ6yWyXaiDNlRO6/Tz1dGpGBVSJuCjdYoO36vusj9D Hyl4SlZDDY1RrFdUH85Pi1h87jGaunBWLP2kszQ4w6/e5GDMe7IlafOs8gVaGQrfQT 72zTCmypwt9VlEjzcknjEScTYiCVmc9XO8ezlexs= Date: Mon, 27 Jan 2025 17:00:51 -0800 From: Andrew Morton To: sooraj Cc: linux-mm@kvack.org, Jason Gunthorpe , =?ISO-8859-1?Q?J?= =?ISO-8859-1?Q?=E9r=F4me?= Glisse Subject: Re: [PATCH] mm/hmm: Prevent infinite loop in hmm_range_fault during EBUSY retries Message-Id: <20250127170051.fdf2235b98cf73bf831894fd@linux-foundation.org> In-Reply-To: <20250128063422.7604-1-sooraj20636@gmail.com> References: <20250128063422.7604-1-sooraj20636@gmail.com> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 74F111A0011 X-Stat-Signature: ir7ytxcqk64zwczc54o5khp77d3x3pgp X-Rspam-User: X-HE-Tag: 1738026053-696181 X-HE-Meta: U2FsdGVkX1/NTuzTefq9eFLOn3SWn0ilHX1RqEXiC8HlHUf6B4PF2xYVE7IcVk4jqk3vzVuZwzY7VRpcCC70/jTAGRuhYBm9itT1nIQ9ej+CcLPeJqYLwJb4i3GLNQb0t32rge7MysbRLRFK9EIGLEvtFzx/hdMdxpPHOcNhRFL1lcYV96WxOhl82x2Ws8n4mKzS2uKPlMA+9FM5QLaYacNXizbOdxAx889UM6c7esDsS6PL98Rx/Y4xO6O88Q3S3Oku3cvfQcecdu1WzAjyTHoE1OQp4/bVnDn7+PW8gtNYYSfEyLc49C/eblfS2lALcNVnRmo+w/BVZc+DlMwhhc7pHVXzJhMcQPZkjx9ThFJkZMUv9m7D5nfiVrjqwSbXuRM0JLQtVPmXCFQi5GLGp7hx1iRL2EiY+zONoY6LxFp8NGeq2MrXXJdXi7IWy/XR4QMmhGFXLPX+us4Nb3y6+4FcTAL69cVI50Oxn4rBXCY0fAg6iCyalRdmHqyz7EB/zKEU+fL3mQW3vnYl15cqEsE3tAtR3KiMeHow7f/Px/k4AP3Ut3Wz908Z/VNIwE6iH20S++wmzzP8+oGWRhnT7TVWcLZMnsT204pOwmHZEQFCrrS2cDjBvuHO2iSPW+2T4YtqIEew8w6yv1XN7PR0XabBG8XblCLEPLGmQ5kfbG/Rjq1yivth6hzODdQu15Adpd9ahVC2Odj8bi+b8+kXDBAJ7ATkh0lOqLTEqH6vwBK1jTn9euz/2V1B4o81V7NWH7HMvZTKHqLSMdnx5Rz17ghRmzdkSFN9SN1ObOuJgAuDU0/AAe64aFGH8QFnBeTZlwJc+duCPVnMR8y39iChRXR9ob4A9uVLlymHCTq7dikhPQAGYb14cFDmAbzLYgicNd+UY8S9suYeQpJP0dvle/XqSYcRGl2RShyCclFjV7hkaSB2QGoctRBdPFFIc2Kr4JpMA0jxAr+QTGATrEu JG7PFy4g LMm8S4BKSFSDxY0O/lwcIJG7y8sXhjTO9hih0yC2gwtXwtHUoex3L3Vrs0Afeh+rzCuinXICUrHbzEB50mkbXyg1O6wSFWgwmpQ+LAE5JiB+t/kRH0KVZ5hw7efHlg9oFf3M19ZYMEe+YOEPAVWjm5yJUn/VrEZr5khvF3a/SnZ3FcVh40JEmTb3SqoIT5iDytb9fa2L5onsA0zxr4eCQV5eRzkQTOyC8PlxQb1VO4qE96q2Trb8FsPUhHo5J2ej0HWs2buQZL7kROT9K4B04Zv8zsT9TZhnOmqjP46/J8OiDlPopz9yvnf/A58qDR6CjYex/ 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, 28 Jan 2025 01:34:22 -0500 sooraj wrote: > When hmm_vma_walk_test() skips a VMA (e.g., unsupported VM_IO/PFNMAP range), > it must update hmm_vma_walk->last to the end of the skipped VMA. Failing to > do so causes hmm_range_fault() to restart from the same address during > -EBUSY retries, reprocessing the skipped VMA indefinitely. This results in > an infinite loop if the VMA remains non-processable. > > Update hmm_vma_walk->last to the VMA's end address in hmm_vma_walk_test() > when skipping the range. This ensures subsequent iterations resume correctly > after the skipped VMA, preventing infinite retry loops. > Well that's unfortunate. This code seems quite old - can you tell us what your userspace is doing to trigger this behavior? > --- a/mm/hmm.c > +++ b/mm/hmm.c > @@ -547,6 +547,8 @@ static int hmm_vma_walk_test(unsigned long start, unsigned long end, > > hmm_pfns_fill(start, end, range, HMM_PFN_ERROR); > > + /* Update last to the end of the skipped VMA to prevent reprocessing */ > + hmm_vma_walk->last = end; > /* Skip this vma and continue processing the next vma. */ > return 1; > } This appears to deserve a cc:stable, but I suspect the bug is so old that a Fixes: won't be needed.