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 9A242C52D7D for ; Fri, 16 Aug 2024 05:02:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2EF336B02A4; Fri, 16 Aug 2024 01:02:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 29EB76B02BE; Fri, 16 Aug 2024 01:02:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 165F26B02BF; Fri, 16 Aug 2024 01:02:43 -0400 (EDT) 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 EA5816B02A4 for ; Fri, 16 Aug 2024 01:02:42 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 8B89F1618CD for ; Fri, 16 Aug 2024 05:02:41 +0000 (UTC) X-FDA: 82456913322.04.A797D10 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf04.hostedemail.com (Postfix) with ESMTP id 6252840012 for ; Fri, 16 Aug 2024 05:02:38 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="zH6d/rhu"; spf=pass (imf04.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.73.55 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=1723784462; 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=B9vRuq8scefacEkSyeEBx/M3EFfwpIdHg1Ag/qgjJNU=; b=nu5fkgd5Pw0asObkcN1QbQonY+PETTATyS0fc+lfaVxcnVDgnNenGuFFdfOD9eM9kg4Pin ZZgRXvpC8y5hAdPf2eKRpSXmoR5iNS8kQloydLwDer+t7BeWlLD+EJSAC5Kd4MTWdkCgnp +O2ZCpbnwlsrsL1nep55b1Xmkye4sKQ= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="zH6d/rhu"; spf=pass (imf04.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723784462; a=rsa-sha256; cv=none; b=VkyJ0yttQTotMaklBsJ1bC4Gax0MktTntW2FILHQqxtZzwq1itKFwo4cz2XblE2SKj4V4X tAU2wBdwrOlcSwx2VjRe6rtMlOz+oRJj1rqqfmOsbWYziZIHjbESM/r/tdkOX/JyL2D3n/ vqzrDVRI5JAKYwaVgNKXgFMogSHV/Tk= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id BE6D0CE1CE0; Fri, 16 Aug 2024 05:02:25 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7F31C32782; Fri, 16 Aug 2024 05:02:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1723784544; bh=AEkbPxdpS1Ba7oCEoeKShqIutg2Z5i+vZsjUzLWOK8I=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=zH6d/rhuRdJ6fGA+XdSY3a7F+ley1JXLdbDje+0mEyphAhSz0ZKAPYA+T4NM7fjA2 TFwc4OPNfVoyuM02a5WCuufM0ToxXVrvF9DXEmEYT/GpUkRYQDlguxR5b1JTHEuHn6 tRzJnJwzwF6advmIHtfGGnsQy4SEdBxxHxYMWisg= Date: Thu, 15 Aug 2024 22:02:24 -0700 From: Andrew Morton To: Gao Xiang Cc: "Huang, Ying" , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm/migrate: fix deadlock in migrate_pages_batch() on large folios Message-Id: <20240815220224.d7970835d5c12b4833bd04dc@linux-foundation.org> In-Reply-To: References: <20240728154913.4023977-1-hsiangkao@linux.alibaba.com> <87plqx0yh2.fsf@yhuang6-desk2.ccr.corp.intel.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: rspam06 X-Rspamd-Queue-Id: 6252840012 X-Stat-Signature: rkegzhrofrr5ok7zijn93ro3ziki35bt X-Rspam-User: X-HE-Tag: 1723784557-342388 X-HE-Meta: U2FsdGVkX1+wjZSKw746EO0IIXm1XUBeukcBReItXFwPFHb54kNBeU9Hi1gxUXsmgsPx3PT0QXTuVmBHBO7IzfuF4T7Vo1EivzxMz/uaJ5ky/ng8Gfced61T8YAAor0xP2V6d9qsnwNW2XyW/wEK/kUfmfvrqgmjW1ex9QxmXyBalo2ivLuMXH4vCY+k6pfunCvG2s5TIf6oI3JO2436qlYn9EL2ZRnAJVMvd+WbZAAaLa2HQ00ZOCQ+XhDnXLAHMvQ7bD6qUlFC+1c5lfbGDQUWzpXXpTg/uFgj4tjvQAv9WC8t/8d0ouqBWY9tDCzhUjK961eohyWvBvcq7Cj5iH/h4vvtESzsgJSndbJCQDb2+8Xw06aQ3DHlPvLcTJiG7BUO/TVEt/a7xh5GNNYsa8u277mRUIGzCWqan/hG8kOgix4TnrU7Qhs01hPZKQ68b4AekTgAaHfkJOjGVidoQm+OXftAjSUzxGBLupEe6nRSFYqT61/4lB+n6wSXhojy+y6Vfkl7Mv5L3QK8gJ5gCQFnle0L2/u+OumKUiiQxe019IQgksZBZVBNAbs9fL1qq2zv5zekQlMIkjE0rEnKgFS6KuE7af8WM2EU1hqjguPGCQTLnv7/Vp5fYJzOLUdgP08FkezJ8bTmELfeYkEpd04t9mSTPDNY+In2RFVfuCDTID2psUoLM/kP/ZE/CB3qQkaPsxsBOPY5SBBhlGQieGy0PHPqq0uapAKNv909g6BK+vIOYXRNNlgM3tws3y03qOzq5H/nuQYwtSHcmhcrgK0dABs/1jDdt0H+f8VwDkoIe/PTxhQ02qJJm/SOtDjDl4c1zs2YIGd/ZU05gFAXoTgMz6EAn+Q1qDm1C95uz08dZ0vqc+Y4caZu8AX+vjdnPEwNwhQmSXh+WU1RDB+Wy1x/GruQdSPSeRSznya4X8rnD28W2F455RfFvcyHAocXyY/87fZk3PDbpfugtmb GUYy1pde E9st4IH+jRU5+eZx0Z7q0JRFQJuJrYoEJO+9p7JA40P7hsNsDU3D24cOhlUMMFLJhfySAhqRbFVleIrf8ukVZDKe/txa49ui0BYoM0U7DT7xfgKizUtCuzUN46rB1xNC4jwEtRs2nk2G5Rnp2sysQVuhmgi40wcD5WflwA6nNgSKg8COvCQX/wegkkzn9YGT9SL/pLy7sqQIflALpMpC9HRLkXCyDYFR3kHt3Bnz8AzRxRQfoGPmNFcioCNGsY7YmjU09N3VH1Vq9yk6ReQmzvOA7Nl9cIUfO4+tY8ziyay6OUwk= 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 Mon, 29 Jul 2024 09:58:02 +0800 Gao Xiang wrote: > > For the fix, I think that we should still respect migrate_mode because > > users may prefer migration success over blocking. > > > > @@ -1492,11 +1492,17 @@ static int unmap_and_move_huge_page(new_folio_t get_new_folio, > > return rc; > > } > > > > -static inline int try_split_folio(struct folio *folio, struct list_head *split_folios) > > +static inline int try_split_folio(struct folio *folio, struct list_head *split_folios, > > + enum migrate_mode mode) > > { > > int rc; > > > > - folio_lock(folio); > > + if (mode == MIGRATE_ASYNC) { > > + if (!folio_trylock(folio)) > > + return -EAGAIN; > > + } else { > > + folio_lock(folio); > > + } > > rc = split_folio_to_list(folio, split_folios); > > folio_unlock(folio); > > if (!rc) > > Okay, yeah it looks better since it seems I missed the fallback > part in migrate_pages_sync(). > > Let me send the next version to follow your advice, thanks. The author seems to have disappeared. Should we merge this as-is or does someone want to take a look at developing a v2? Thanks.