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 367F2C6787B for ; Fri, 25 Aug 2023 16:50:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2F72E2800BF; Fri, 25 Aug 2023 12:50:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2A7112800BE; Fri, 25 Aug 2023 12:50:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 195CA2800BF; Fri, 25 Aug 2023 12:50:02 -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 064D42800BE for ; Fri, 25 Aug 2023 12:50:02 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id DA2734079E for ; Fri, 25 Aug 2023 16:50:01 +0000 (UTC) X-FDA: 81163214202.23.75C660E Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf07.hostedemail.com (Postfix) with ESMTP id 1E07E4001D for ; Fri, 25 Aug 2023 16:49:59 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=MAZexDFL; spf=pass (imf07.hostedemail.com: domain of longman@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=longman@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692982200; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=dFbyl65fOMx95bWsq7D1d9gpilx7s+IbQPWJBjX/wV0=; b=sZOLrtuHEB39jfP2R1n5ppauidkAIzH5QTgyh1PQcOiP1G6yD1xZfXNc1QFuUZH3s5w8jP rleGF+h1f7k3uY0WyMoIDd5CKYctr1RWvO1rZkv+/q49Sc5RUN5NhCM4ZGNbaw8gliApd4 0h/SAjgW8eXuJPS49FRI+7RYTtsUSyA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692982200; a=rsa-sha256; cv=none; b=nE0W+yljE2m2cpe+pwLnb0rVvcXMI6kiHLqZzA8Mpn5PPpRIIv70rxZZWNkS2uVvjDni2G DHo9yhELnsE6p61XHQcAd+nNkV2GKXdc/Dun+iKbAK0t6ggnIp0alnfyK/5+PS68M2xUh9 cAQ4Vs9Vu5DLaPbpL3yiRAXu2EmJRpk= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=MAZexDFL; spf=pass (imf07.hostedemail.com: domain of longman@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=longman@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1692982199; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=dFbyl65fOMx95bWsq7D1d9gpilx7s+IbQPWJBjX/wV0=; b=MAZexDFL/K+kzJSBmyjius5TVjSwWrnAeLpgDq4946Av1arYnZ7+r3dn1EciUYO/zTNBzD 7jSfwejDbx0OSh9U/OwOln5iuC9eP9N31Xw4cckRtF8tP/AWCJX82rtL+dPZNyNVzm2oJ2 Y7/K/U7+RYQCG4GdsQ6G84hfvJjbWQo= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-634-Czpd90lvPDyB7m5MUA3VeA-1; Fri, 25 Aug 2023 12:49:57 -0400 X-MC-Unique: Czpd90lvPDyB7m5MUA3VeA-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0DD9A8D40A0; Fri, 25 Aug 2023 16:49:57 +0000 (UTC) Received: from llong.com (unknown [10.22.34.124]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2A6D82166B28; Fri, 25 Aug 2023 16:49:56 +0000 (UTC) From: Waiman Long To: Catalin Marinas , Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yisheng Xie , Waiman Long Subject: [PATCH] mm/kmemleak: Move up cond_resched() call in page scanning loop Date: Fri, 25 Aug 2023 12:49:47 -0400 Message-Id: <20230825164947.1317981-1-longman@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-Stat-Signature: 9hk8rod57h4k1eq8x3mnujn4cp1gzskd X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 1E07E4001D X-Rspam-User: X-HE-Tag: 1692982199-285487 X-HE-Meta: U2FsdGVkX1/KIdkwifZOQRgcWzo060J6N/X2keuOKsVDJo6llM6T8i69W261nBim1NHY7pcj0deiMW0XD+I7RIOFUUJa6rqZKIFa+0wMsQeAsba/51NHkBssVZn62RaKnnz4jIJg6qEdxfpYClGTjfyMuIlksPLeBOVH2xbHil2zZZ4WMAy34U+/tM/oTMMRYdKXZ8XYxQ2i9kfeoqiv6IOuaYTU0k4PP/2OzaN3jFxkI/c2olgEVYk9at9Hqyl3Oqe8FcsnypxZCoUB0flIG0m5beysqezNI1tqmYzQgZ6HEba88oQGtovazGZr1DUavYlvvcCWVYhvDQLRJI7eRqjwGVAgyUQbTp08p+IHaLBKJo+/7uYK3ghwPEek6HRA8fzwhfcpy0kaOnz9skOIlrAW4lkZB/FetcUzkRWA4qOVOxbG9iXPyGKWZXyYNbMMAOyLdV5jSSOEsQwm9nTCwS6chssBob+mZoICM7ECZlNUZplaYPtCq9lxmgtrrE1OVHI5dLl3/61ZTqJ0zo1uO+HfFhvutYE3a87u3RrLBBj/zHhR1EQh1aUzv8ZwPjd15ZZp5nczwVGXtOad/hCAQIsIs8gvGIbgEVVh0+G7OOBAGeTwPNTz9dPi73GgWryWK9EBy2aMbBsivW5Y8jgxAzA1vGYRH3Fhe6aLqRlQDOEN2yXYXr8Y+mEdQGaKDO2jMgclVGqCR3LNwiDZ449mTNzlXAKWYK/kIymUh1e+OFl/BOgK33+pZAfljOxKmvxoMtu+vJc0PJSDEdcGVnij2efmY/dIfvCG0CH4voj89jhQ22ezkCULS5Ym45QlwAGQi87efksaPrTTHArp12CxBixrhtM59Q+GDM2oOKv6aFLDbF9KP/A7ONJB/v/CyH+b96LhVkYWt8GFmATrc/iT+FdHhaFoWx8gy5vcr+ZVNjz5jAjoLxFBHtrv3W6lYklUfavDYQJjRpCdokn1TYJ /dJeoWgO m6nK5zIO7mncoK3ZBDSJjmaMhPlCs0kG3U6X+Hh5m+DDj34kwth123liHRfZhzGQVIopOgR4nRNO3mgZ1AqMOsHDNb/EuGPRfH3pv8MKRXCuCLdeaRM58RhoH9IGebPRyKSpIP+YZ3NFQR971aal7QAlRQ8PERwjRcfF5WUp5TehP/1R+5i5lD8ptHT15QTnW3w+RECbJdR5YVXgT+hcD6/o30A== 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: Commit bde5f6bc68db ("kmemleak: add scheduling point to kmemleak_scan()") added a cond_resched() call to the struct page scanning loop to prevent soft lockup from happening. However, soft lockup can still happen in that loop in some corner cases when the pages that satisfy the "!(pfn & 63)" check are skipped for some reasons. Fix this corner case by moving up the cond_resched() check so that it will be called every 64 pages unconditionally. Fixes: bde5f6bc68db ("kmemleak: add scheduling point to kmemleak_scan()") Signed-off-by: Waiman Long --- mm/kmemleak.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/kmemleak.c b/mm/kmemleak.c index a2d34226e3c8..114d8dcdcf70 100644 --- a/mm/kmemleak.c +++ b/mm/kmemleak.c @@ -1579,6 +1579,9 @@ static void kmemleak_scan(void) for (pfn = start_pfn; pfn < end_pfn; pfn++) { struct page *page = pfn_to_online_page(pfn); + if (!(pfn & 63)) + cond_resched(); + if (!page) continue; @@ -1589,8 +1592,6 @@ static void kmemleak_scan(void) if (page_count(page) == 0) continue; scan_block(page, page + 1, NULL); - if (!(pfn & 63)) - cond_resched(); } } put_online_mems(); -- 2.31.1