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 08FC3C2BA18 for ; Tue, 18 Jun 2024 03:31:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 80A776B02D3; Mon, 17 Jun 2024 23:31:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7BAA46B02D5; Mon, 17 Jun 2024 23:31:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6825C6B02D6; Mon, 17 Jun 2024 23:31:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 476806B02D3 for ; Mon, 17 Jun 2024 23:31:46 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id C4142160378 for ; Tue, 18 Jun 2024 03:31:45 +0000 (UTC) X-FDA: 82242584970.05.DF96E9B Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf18.hostedemail.com (Postfix) with ESMTP id 216091C000F for ; Tue, 18 Jun 2024 03:31:43 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=kte8CN72; spf=none (imf18.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718681499; 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=/MN1Hl8sdbddlbB+6TTRZym24LsOWb8o0B+8s+1qKtw=; b=iC7HSKjOH8pkADhZWI2bKF9+mEzKiWeGANFWwXkqaLRtCRmyBJIRm5/lFbTu5pg4m/boHx /1ZbO860kA8htFMenWJC3L6DrHyQBpCAQnV4Czz2KuhU9xsG4NbZtqnsmiMHVeMu+9rRv1 MYIq66aXgMTjpDAnEIC5C5ru60cJC3U= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=kte8CN72; spf=none (imf18.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718681499; a=rsa-sha256; cv=none; b=pEZFBTzZ1xhkMO1X6MabZKpWA0w9SRqEdv1mDgp99DlBTJIpraw3/uX/O9zq4co6sLkzIV 228j+RiPdiEslStIfnMvsLiwkX6k67AoB+vj2cPq7AcYp9ObaN16VLkuNYvIitbOc069PO FOHA9LR9NvZ52Bz3aWvMn3pu5JNB/+s= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=/MN1Hl8sdbddlbB+6TTRZym24LsOWb8o0B+8s+1qKtw=; b=kte8CN72VMNP+uPsvf9GTU44Hf oEorvy+eOGFCKaIdrf3uEos/NTWrU5px1G9pmR/gn34Pw17a7s0Thb7G1T/kXltSl4GVDYpsLn1vz vZDhR7uiwevR2TG0ivrCxMA+UJBzA9q5/ZfDdV59gaANTFWcJEn2rPqLKXdwx0ghTwJFOiZb3foiJ Rbv4b8NaE6R5IfcpE6BON3FdDRijObJE/3Bwx8LzzHn/LACJH0Xqj7Z3vCjd5D97RPlN0Z7ShIWJK L9wMNN53sLgYMGH3NyQDcpwdw9sq+y7X31T5ERwz1a+N3VAv09pGyRaxuxQ4Ql9f9dnn0/6ECFL/W vyopYPFg==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1sJPZJ-00000002jdv-3QF1; Tue, 18 Jun 2024 03:31:37 +0000 Date: Tue, 18 Jun 2024 04:31:37 +0100 From: Matthew Wilcox To: Zhaoyang Huang Cc: "zhaoyang.huang" , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, steve.kang@unisoc.com Subject: Re: [PATCH] mm: fix hard lockup in __split_huge_page Message-ID: References: <20240618020926.1911903-1-zhaoyang.huang@unisoc.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Stat-Signature: 3x5i4cees9g4wfdo9fnnr8979t1yyas9 X-Rspam-User: X-Rspamd-Queue-Id: 216091C000F X-Rspamd-Server: rspam02 X-HE-Tag: 1718681503-654191 X-HE-Meta: U2FsdGVkX18MEc7jSqHmyaHg+Q7o2Zo4xlhbJ+irJw1asmhTfZJgbURubArTEU25KZEL65oSM11UjCwtxbqcWrUfhcvEOD1zf2CP3v09qslz87s7tDhZ3LZR7qyv0ysHLaY8im1P4ZI7kaFq5RZb8SpZLwPGNzFxT/1rDlRWuBiunQssF7wBvT1AnoLvBZkV4UkfX9Ts4bLe1P7xDvi4GodMyTnd/JT0pYRs6bHKr+NfQImmAnuLqYHbu9SWbJKHBW+jNXsb0F9xQR7J9tjjv/TlEwNm/o6VRN2UHZfca7Mm1CkPVEPlALNei8tgWdHv5EPV2g/FEfUb7INLthmTCsY5dG8WD73WNQa0tLf1BnDMUgNm9mEvh64RiRKJqGlXEhgYy82JM05DNa4hy9KDmcSkwae2OHEoBcRviICJWqWW/8vlmUbQmfxVoIF0tvx/loIUhtztpXmThMNgjIjeL5RJ/JEcnGSwHKqVkVtEgPzDbe8LTFCxYipUXlxemWAQPP6fDl7p30TjAklVO1xohEyFshe/IYFmzVrSmlU6QvFPByTrkht/zTtLej0bGeEUJjFt1LDviXGV37W+E8Q2hvobXkbEyBzWv505PwGu7HEgahSOKP7uDuqoAINNd5BvHUfeBzA3wxz7/JXb4GlGVQCmSgTV1i+RvAeK3l0HF0eO6XTdI0qMBpQWMlgMrDSNHqZ64SZI6/w0MJWslTtVfnhhCSsLvEa++2fxx6uKAV5XzdgIQ8CxU8o8RD+a0e/YtsFY5ioNz32AlQmk9iQbFSG8FtZEGDRLfFQkRSjtcWVsx0lUFWyUxV3xpCmr4Y0hTYivTkqslo4eez/gjPe9A4DhVM/v1IL2/OOr9LhQ3vUCVCwfALOd70VpIv8COpVH2YP28JgKZVDTN1SE6M7DSClasuzyyYN4sdNfkNHUhu53IRZD3Pp+EqmCUwPqm/Nv8pZelLwRyv8d0q1cYeB 1kN3DHWQ 6ePXlQiahcljrURqOKXKxmMw3cnzF++0DndKL0GFCnhrEMMKZoy3QdRedUXvydZiAVlP+c/7a+Vve5BaaysNT0XDi4lkbxxwE1RP96/uz/A6BCExbU+0mGCiZ5W+lC9dhpdZsar/EBUuU3P5gHXDj7w2sUDv5DfzJnN5/JEQPL+k+6d32qIWuksLrA9FzN5cOe+cp/4lgJ+s8pOWTueMzKfbjcaczTjeD7YZcxP5tE13k+IUtVb7KlPQhy25yl95kgfY9pv3h7G28B30k5dD25oOuOnMxCj0hO03EdScidOFooqkPru1Wa9HyXZxVSH9d0A6gJQZ74/eZUSNNwSr/NgSZSvWIbzDq1gSQrHo7jz3hQgJCBbJuAp6SiTZWa3n38kF6Y28Acm720Y8= 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, Jun 18, 2024 at 11:27:12AM +0800, Zhaoyang Huang wrote: > On Tue, Jun 18, 2024 at 11:19 AM Matthew Wilcox wrote: > > > > On Tue, Jun 18, 2024 at 10:09:26AM +0800, zhaoyang.huang wrote: > > > Hard lockup[2] is reported which should be caused by recursive > > > lock contention of lruvec->lru_lock[1] within __split_huge_page. > > > > > > [1] > > > static void __split_huge_page(struct page *page, struct list_head *list, > > > pgoff_t end, unsigned int new_order) > > > { > > > /* lock lru list/PageCompound, ref frozen by page_ref_freeze */ > > > //1st lock here > > > lruvec = folio_lruvec_lock(folio); > > > > > > for (i = nr - new_nr; i >= new_nr; i -= new_nr) { > > > __split_huge_page_tail(folio, i, lruvec, list, new_order); > > > /* Some pages can be beyond EOF: drop them from page cache */ > > > if (head[i].index >= end) { > > > folio_put(tail); > > > __page_cache_release > > > //2nd lock here > > > folio_lruvec_relock_irqsave > > > > Why doesn't lockdep catch this? > It is reported by a regression test of the fix patch which aims at the > find_get_entry livelock issue as below. I don't know the details of > the kernel configuration. > > https://lore.kernel.org/linux-mm/5f989315-e380-46aa-80d1-ce8608889e5f@marcinwanat.pl/ Go away.