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 ADF3CE7C4E6 for ; Wed, 4 Oct 2023 16:19:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1EA466B019D; Wed, 4 Oct 2023 12:19:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1738B6B01A1; Wed, 4 Oct 2023 12:19:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 013A76B01A2; Wed, 4 Oct 2023 12:19:12 -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 E2C666B019D for ; Wed, 4 Oct 2023 12:19:12 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 99B43C03A7 for ; Wed, 4 Oct 2023 16:19:12 +0000 (UTC) X-FDA: 81308288544.29.8C28270 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf09.hostedemail.com (Postfix) with ESMTP id BA0AB14000D for ; Wed, 4 Oct 2023 16:19:10 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=mlU6hD5l; dmarc=none; spf=pass (imf09.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696436351; 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=/Oa/g6o6hT7IwnhpQvRzhwAyPVyeHnwivKwouITERmw=; b=nM8aDuMwyfZij75D2p+te1ZoYFwTcOeIeujeQ2RDkoUOzmmZj3/LoYRp9/PaeOJ0JoEnVO peqUyXE5RzEMOxPH2Sz6ThXeQ1ZqDozlP8ZhGbGNUf/+RM68AcB2wd0aXnyL9s+220bpVv ND/3XH1XzfRE/oPpxI6W1u8K7b3S51A= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=mlU6hD5l; dmarc=none; spf=pass (imf09.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696436351; a=rsa-sha256; cv=none; b=YStFHoOdNcFjIPUjlPqqJupZ5JVkgKNvP64M0A1OlnBp759xXyZKfYXQ+5tk/pSlc+y26E 980Gf29ld3EzUMOsnSleuFPSAFVfTkIildwXNHhhynP4uWAYHlI1anTwUP98+AIle+LqMk NA4nBUYpgJQJAxq1wiT4o4ZeFRZRtyg= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by ams.source.kernel.org (Postfix) with ESMTP id AD367B81EDD; Wed, 4 Oct 2023 16:19:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6BD17C433CA; Wed, 4 Oct 2023 16:18:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1696436348; bh=5YCSUKis0P5pMUCSTy8MQPFGAhbMIzReSfUh9/11U3o=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=mlU6hD5lL7ftnBxbxSbvDTrDTX7oWQsdqm4XXjIXKuLcfZ7O4e8TxUONMIg3T2pMg TDgwfWWHKHMMVuSOp2uvxJ2ypKkRs+anqw2pwCyd8I3oHZDqgT6d9nObBfjQprIStN L0Xhxj1gYSjldhBX2CAKV+lfF7MThHLQgJXLS2QE= Date: Wed, 4 Oct 2023 09:18:53 -0700 From: Andrew Morton To: Liu Shixin Cc: Yosry Ahmed , Huang Ying , Sachin Sant , Michal Hocko , Johannes Weiner , Kefeng Wang , , Subject: Re: [PATCH v6] mm: vmscan: try to reclaim swapcache pages if no swap space Message-Id: <20231004091853.9be5aa562f65e0305e06b14c@linux-foundation.org> In-Reply-To: <20230915083417.3190512-1-liushixin2@huawei.com> References: <20230915083417.3190512-1-liushixin2@huawei.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-Rspam-User: X-Stat-Signature: mbdambd9459ntwa5ocw1ej7ja9m31qhh X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: BA0AB14000D X-HE-Tag: 1696436350-905782 X-HE-Meta: U2FsdGVkX18dApgGs7Yf6IbMB0BfZdAROb1pXTSPJcIiHVs3St20kRhrpqxgCmJaAO3rvpqvN3E6QbRr7Y2yDoUmgx3lMykudGkFTtK3P2LjjEF0imqoRbdiuk8pVcH9bpeGSyr5IqcnFvrBbZF1k6F+byWx3RH3VDcJIK1lgmQ64z6vcyHDF0xNl5NzxQw/tiQPKeJY1nPG9gW6H4v9JB/j6BrTbcnWBMfZt5XdJAk9Mdr2kH87VnqHYJKjfQHL32SqxYUjBRyuHcgR3xPTLtd2l5i60qND2J2P5UugXHXrmChhtsZi/daXqyZzgyFBabPWOR7B0WdNCWvDVH1qt8zL3VX5IN4eenpb2M7NZIEpb4dlvxUfwJO2HbR2J85fD+prAVqoV3zWcyrCRUG3ae8F+V5W+460Sj4JtMzbgtV4yCNeQp45oL//PnepEEqME5i51K8DUyEORcDNaEfuh8HT4QWHghATqU42WwBb+Vu6MWSQTJXiZlmQyqz3UdgZi3ukTWcgD2x2FuCyC2pULjFy9tToML7WuHPZ+4VhTl8lghrWNZFG78dmjTM2FBsbP0VNJ3OdmNQcoM0e5YAZwCGGPr4BCx6GhLqJmoR0iIBly0Mq1NSqxXMJq2wL/Fu+0qH222tX9IOC4y3cQI+4zLtUTRLxB9V5l695EMefRkKrqpOrf4yOM4bQd9RKI3Z0dosBsT3vt8kYAbBTVC4A0wRHdNclzSKSfxNC2d2Jf3piVYSXmYsjGLUu3UHwYFoTEwcMjoLdGwNOAadxWwJcSJP6+SjSzu2VO8Y2Hm+qhlA2ZfcUIfTpdSQy8KsWdn3qTNTIa+dzAAs4dI5CEr3smFDFZqQKyw1S4I9SC25PKTfJNN9bLZ/bCqXF84QOCSaa5/0LmjXSv81bQ57p6Th4/8l+nEYcjAqynhhMBN0no2onnQWmoqa+K6sbzGh/tjEFFrw6hb+Uc8A+9DNe8S6 MVdZYtLw unepwl1/iqCPiB9DAaWpUfI/aVoOt6xJxM1aojzEp3og6WCWsfElvuseVpQmANrBmPECasdcCP79Ky+s1fePnhxSzqiYPiQ9og4/Q8bKnbK0p4JQ+vFy3TSHgCiROTD92vmQ0R4UhZSDbeAWYYNeKo1FOTWlzJ5B8mjroOG7tCTQqn4cuSKJc10lvG9mttK2J/1BCGqW7ICGXzD4sodrJSvgimmrJtPpQlRNFqkrImA72xSo1yLeMeX4l5Jkt8zFZCOML 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: On Fri, 15 Sep 2023 16:34:17 +0800 Liu Shixin wrote: > When spaces of swap devices are exhausted, only file pages can be > reclaimed. But there are still some swapcache pages in anon lru list. > This can lead to a premature out-of-memory. > > The problem is found with such step: > > Firstly, set a 9MB disk swap space, then create a cgroup with 10MB > memory limit, then runs an program to allocates about 15MB memory. > > The problem occurs occasionally, which may need about 100 times [1]. > > Fix it by checking number of swapcache pages in can_reclaim_anon_pages(). > If the number is not zero, return true and set swapcache_only to 1. > When scan anon lru list in swapcache_only mode, non-swapcache pages will > be skipped to isolate in order to accelerate reclaim efficiency. > > However, in swapcache_only mode, the scan count still increased when scan > non-swapcache pages because there are large number of non-swapcache pages > and rare swapcache pages in swapcache_only mode, and if the non-swapcache > is skipped and do not count, the scan of pages in isolate_lru_folios() can > eventually lead to hung task, just as Sachin reported [2]. > > By the way, since there are enough times of memory reclaim before OOM, it > is not need to isolate too much swapcache pages in one times. > mhocko earlier suspected this might impact global reclaim. Have you looked into that further?