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 5500FC61D97 for ; Sun, 29 Jan 2023 21:03:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C9FBA6B0072; Sun, 29 Jan 2023 16:03:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C4F3A6B0073; Sun, 29 Jan 2023 16:03:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B3F256B0074; Sun, 29 Jan 2023 16:03:30 -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 A45086B0072 for ; Sun, 29 Jan 2023 16:03:30 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 704B0A0589 for ; Sun, 29 Jan 2023 21:03:30 +0000 (UTC) X-FDA: 80409062580.26.3106556 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf08.hostedemail.com (Postfix) with ESMTP id 2419E160016 for ; Sun, 29 Jan 2023 21:03:27 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=xH+LEYEB; spf=pass (imf08.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=1675026208; 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=3xQO0SYm9o85/BeodgMxeMRJ7bIPb1AdmfUD3OHDZzE=; b=7giIt7X1gB7p8H/tZv2rmqcag6UjMX7DJCBbU7JHhHkNGZzux/yLWYDzF8tMr3/fk+4o+l tO5LC1paUBTqAA3b2g9RSB9o/AsyC9px0ijMIbZzu4VhjGfjxEnJ5u/wwm6DbsUam1ndna PKvjDv2THRU2WK1fQvppw4BgP1gpfXk= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=xH+LEYEB; spf=pass (imf08.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=1675026208; a=rsa-sha256; cv=none; b=8EFPpkGrrTEcIe5HoPYR44PqonTcLTC4qTV1fHjgdFxSXKCq0mqcVwrihhjdXxbLE/aqPv ceBxqaZfW8U/ZAvYvyEUSz9L9JjuF1ZrWLe3tfN5ZywhIVWsOU51psql3u8tX5GDBtVZRR Ym07Wq2XmAKZW7ncRyn7ym2V0yHfRn0= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id 13243CE0EE3; Sun, 29 Jan 2023 21:03:23 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EDB91C433EF; Sun, 29 Jan 2023 21:03:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1675026201; bh=FgIJHyHT1wke5O7zZ5KlkHLLwBp9RrwSoOUMgqvFsIc=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=xH+LEYEB6s3JjqX0GRxgde8UOr6Gg5LNSqjSuu3TvESEM6TxEq5fEpZCcUQ3PVkE/ NUCBBmqZFVVTcXI/6qFGn7i5K5FebKkmoO86zZKL6S4LBFvyDY97cgqy9WKQy5IQmQ 8dgn/se2dlsln0Naac2nt5doA7m9161Gu+yL5lUw= Date: Sun, 29 Jan 2023 13:03:20 -0800 From: Andrew Morton To: Longlong Xia Cc: , , , , , Subject: Re: [PATCH] mm/swapfile: add cond_resched() in get_swap_pages() Message-Id: <20230129130320.7e2e4445ecc4b172c61c7b9c@linux-foundation.org> In-Reply-To: <20230128094757.1060525-1-xialonglong1@huawei.com> References: <20230128094757.1060525-1-xialonglong1@huawei.com> X-Mailer: Sylpheed 3.7.0 (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-Stat-Signature: 7zzomy94z3gf3a3wn9eay5emgstairma X-Rspam-User: X-Rspamd-Queue-Id: 2419E160016 X-Rspamd-Server: rspam06 X-HE-Tag: 1675026207-409790 X-HE-Meta: U2FsdGVkX1+4mQnHScgD9x8FAsnFpXGTtliIvDXf0aFu6fxrVpVvT4LdMowKbxnjaz/VnkTtrQF5+HBPXTeQ50ivUqvH7Ke6P1DmlJfVjWPxg2vECZ2YBncH1t0b572o1tJYLYjchPjvpzZ+ieem5n95latgsmNT4/huDsbbuWbJBlvfRT9cs12VV/PDRwDKAF3MivKbBSs9cK7vYgoQSibuvF1lGbflAfUhXhEuWCBppxPtiiDMqTvCzS0JndTAY5Az8JtlDuPm8UJM52ciYieAh/XLT1iJsd7WmN9MI8Oxwpr09MVAFst9g6aSQGuDH1EEkpRSfLM+uZoP5VSkcM+im7kCUAdg2SUlhIQUjoUDQcXQioukIGh0IiUShRsSMxO2tlB8/LuJ0UQWvoTa4jlDBRViTsrwx6nsQhhXxShkEauvyWBfsxLHCGoLjClt4pco/zi4O//pTDJAYEvavKbvhVNTxgicQcMNZk2F3WZ8sdWDrpznFEi2KW2ZGOSY/rDCOdGS3UIiJD0eeVsbrBeG19ndmkp06xZb+WGJwWWbvSftbdYfu4M4t8hwLClpcXwsjU1mt2cNsIwo9DAQfduk/6HpXOyThMZOfgYWfnXt0nIdwVv2AzoKg9o4MEy58r6qy8meKfbh6Byl3SzO8hNnRStot5QRptMhwOVMupQfa043lSI5ALpiYhWU8KuVqSPvvmfcrF3zpn3zuo5/usbYzySTcN3ZlqSZX23lyD5mW+qEvjGIxGegLNf1A/3M2tAriaKHAkDwSm4kMcTz8ZvbJuqYYzpgp66c/IE+ZV2uXGU6+PNHAma8bzNk03DZsxCD3eIBue9sXlDFHbxEFd0g39EC8tF1GGlPq6Yz4iIZ+cU1HXGupKm+8f3skBfX+1UJzmUZOICWTEaN1i4ZM8Mh2wGtoB4BmVALUetnkI5trNUt1apzEqaell/P5+JTkyI0tjqzuUGpr2Fi7V2 ahom1gFH 9fWZkkH0Y0EYUiyr8I9lxdgGkBX70XOc58XoU0TKK64qYSIuMiXg5H9XFnIkIL6TAVm73JrLRGC5q8GV+g/DHqLPAQn9qPTauSYVY3AVE4dO+Mvs951NIPtvL2d6cmtHa2IVtlM8NUw4vzEonS8PutN9wgll9WcBxAsnJyt6ypMqEwdAKX6zp/qoGgAUAsGwU/FBSIk5s2u1XbwWRMKdG0e9ahFbriHt3DqJcGiuMkStEmBe6hSqkN42zrdk8M9rZsqcyzGxndx0T4rEhLIddsGMxjziPOLpJUaMkcTUKw3xzUZcvKYeoHFDzKWyzAtLg68+xVVNfsHoFjhLu2QPpD3/lL707scguQRZnTS1wqTT7MZyZg/c0CT3aQY6PZEZ+ZpSBg6e/ddb0M9oGrHvwQ8xvHpRqMhHYvtrz 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 Sat, 28 Jan 2023 09:47:57 +0000 Longlong Xia wrote: > The softlockup still occurs in get_swap_pages() under memory pressure. > 64 CPU cores, 64GB memory, and 28 zram devices, the disksize of each > zram device is 50MB with same priority as si. Use the stress-ng tool > to increase memory pressure, causing the system to oom frequently. > > The plist_for_each_entry_safe() loops in get_swap_pages() could reach > tens of thousands of times to find available space (extreme case: > cond_resched() is not called in scan_swap_map_slots()). Let's add > cond_resched() into get_swap_pages() when failed to find available > space to avoid softlockup. > > ... > > --- a/mm/swapfile.c > +++ b/mm/swapfile.c > @@ -1100,6 +1100,7 @@ int get_swap_pages(int n_goal, swp_entry_t swp_entries[], int entry_size) > goto check_out; > pr_debug("scan_swap_map of si %d failed to find offset\n", > si->type); > + cond_resched(); > > spin_lock(&swap_avail_lock); > nextsi: This must be pretty rare? My googling for "scan_swap_map of si %d failed to find offset" turns up zero reports, but I guess few people enable pr_debug. I wonder if we should remove that pr_debug(). I mean, it's known that this happens, what value does the printk add? I'm thinking this fix should be backported into -stable kernels.