From patchwork Tue Jan 9 09:15:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jianfeng Wang X-Patchwork-Id: 13514686 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 72627C46CD2 for ; Tue, 9 Jan 2024 09:15:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BF1556B0074; Tue, 9 Jan 2024 04:15:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BA2426B007B; Tue, 9 Jan 2024 04:15:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A691C6B007D; Tue, 9 Jan 2024 04:15:18 -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 946B46B0074 for ; Tue, 9 Jan 2024 04:15:18 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 657EBA157B for ; Tue, 9 Jan 2024 09:15:18 +0000 (UTC) X-FDA: 81659213916.21.49AD6DA Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf21.hostedemail.com (Postfix) with ESMTP id 550E61C0011 for ; Tue, 9 Jan 2024 09:15:16 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=LwPgBZ8F; dmarc=pass (policy=none) header.from=oracle.com; spf=pass (imf21.hostedemail.com: domain of jianfeng.w.wang@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=jianfeng.w.wang@oracle.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1704791716; 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=+xyrwDFS099oTZr80eG8tqlbdegvI+EmzfeYorlmT8s=; b=b45Zzr+G8/reuhKL+NAbWR31vg8SHhMlIQlQdPTQurFcHEIIyeiwgdXwKyLCoIxcnuijYb Lmmh518Lo62jUcfd60IEVoGTyjda3RHschGMQWqghdfzasDMkCANYmsJUDW7kCpbUiAAfU 8rdiHCPQkkQ9IRI3mmY28ZRgyn8ct9M= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=LwPgBZ8F; dmarc=pass (policy=none) header.from=oracle.com; spf=pass (imf21.hostedemail.com: domain of jianfeng.w.wang@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=jianfeng.w.wang@oracle.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1704791716; a=rsa-sha256; cv=none; b=v7xbwzAGkwqBo0gwkuUZjPOgwVzR0la8IkeDPKoPqjhaLFcaHw85N7BIugH2zqWy1Mlxi+ XSB48FP4YQw/fkmECzP1sMYqMLa1qF1nlMMqrUZvDNUSEnLP/4umDWaSxxKEmlm7vunJ02 42sUsURnWpCEDwr4Sb3Rs79GUT7YJ6U= Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 4099ExJF002379; Tue, 9 Jan 2024 09:15:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding; s=corp-2023-11-20; bh=+xyrwDFS099oTZr80eG8tqlbdegvI+EmzfeYorlmT8s=; b=LwPgBZ8FNFDr95rT4pYF6Jb9Nqwk0ExICiU9LTw94K2MnYwAKMqPES5Gl+aCvrBTSYct avy/AXVkQTv0Ai57iyzSAjwoPBcQAVebzTw5Vd2P5MifynPKWR+VLclqSDUZFofatJCy e2g0siJ4Nc4iaKZmqnZA+PP2ti9ocd/97qw+vHJzmmGQIHOQXMsJP2X9bL3funAg168J rp1qc9trPCBRXDP9l9xw63G/i6G34XtAXm0wvtxxSJIVx+BC8Rl6QFvWHsizZVuG1cwg 1+GtlU1DxhfifcLdypb8Ae0VryLpdb3HCjc56Ax9XFtcYg+sLvxNqHkoETBCzebA/8Vq eg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3vh3bd0020-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 09 Jan 2024 09:15:14 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 4098Xsuf006721; Tue, 9 Jan 2024 09:15:13 GMT Received: from pps.reinject (localhost [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3vfur3f6rt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 09 Jan 2024 09:15:13 +0000 Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 4099FCea007613; Tue, 9 Jan 2024 09:15:13 GMT Received: from jfwang-mac.us.oracle.com (dhcp-10-159-139-172.vpn.oracle.com [10.159.139.172]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTP id 3vfur3f6r8-1; Tue, 09 Jan 2024 09:15:12 +0000 From: Jianfeng Wang To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Jianfeng Wang Subject: [PATCH] mm, oom: Add lru_add_drain() in __oom_reap_task_mm() Date: Tue, 9 Jan 2024 01:15:11 -0800 Message-ID: <20240109091511.8299-1-jianfeng.w.wang@oracle.com> X-Mailer: git-send-email 2.42.1 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-01-09_03,2024-01-08_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 spamscore=0 adultscore=0 mlxlogscore=999 phishscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2401090073 X-Proofpoint-ORIG-GUID: 89_hUgsNPu7_jKHX54smR6a95sDi_sq1 X-Proofpoint-GUID: 89_hUgsNPu7_jKHX54smR6a95sDi_sq1 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 550E61C0011 X-Stat-Signature: d14o87fpamipqn6osa1t1hrob3rwwz6x X-HE-Tag: 1704791716-391779 X-HE-Meta: U2FsdGVkX1+cl74Clzv/SOAtZMTvxBJCxpr8wEDye4LxPkOsM/AFFxEX0vQbIj5tb1K2DPnUj/ABo2iWIIzJ0E2SBHEcL2egnDhP4tf5V9gSx/HJf99vPZscODPntIQULCexFwfM7CGNyC3HiOe1RNAtXr+0pRvGH/hGk6M9EJU2zGYdtLw+ZY9TisQIPUruFDNLs6rLpex39boCO2MQNT+iWs+2un8Q7YHEVgqEgdIWHNFtGxM5qoblFFPkW4l5fnptLiMmly62oZY2jzOhux8FkZ9b4bnLjrF4A1nk310KrBvYk13RAXZuOqmpy3p0hvaUx2nVsWTMlnwGtQJkDciTHrvv4oep/g8Ok6rhPTFQcc4rvmhMwwb8z3u8urz10+Egw3UrsYnnxLAmZ5Gw4ZodZkxAr1GqZy4hF2PNNyu1IYWLH7JMxG24M9zdCRLBX54BgrAfPM+sRMqiwzUeujTQWfbEXDvyCz1vWw8gQ1/MlZVt6n72N4rM3sNRTQV4AsfnbDbwdNlbZjzhrAgkNNZe4nIIO9lLjRyT2vOPs6hYTITdpHoGTXITqZxoBl3Fyfj07aM+uV//QQoElIaGY4pnLcLDfw9V1uc5psc/QaprlnOg8F0xfuiPsSytU5+JceSU4n6WAsszgL1p9jAvFx3c/hW6ZmDlLPFM0Xe2a85z1msnylf7fo6JGEkd7KNUkbtyk0H8aqK98Zaab7BgeqzceKgf/bNC33EAYBzkZ73Jl6DDKy8xRAYhd+R6NGIec+d0P20aWE8w5TDp2A/M9uU+a5UEYB/muuNfYKJdmEV/FXu0xNQ4+Y9FJPIU/QwYz9yB1HTP+q02dNpVhvnqxuLrauSPMAuYhgKo+jFgJ0ddnywv3/Ojoo+RPDiMl6547sYrmmYUocNII0LwAIRxpchzcW+TDxAFvL/3LYi0NRRRWh2dzyXwPnhKcKgFQNeV4BQOaDiKUlunMdz+7rb C0dBjQD6 WUpecqnwavRB8jymBHdPd/u09CV9sjqE7KR+uZZX0Ngx044pjOIPYdgzNl2iMwTq91hDRjrTb3AafTNJb9dsjAKvNT7YpMLnAR58snmaj9s7WdPVFzx9udh2EPKw5WmIVUeczAXvSzETNMJXtynxl85nArtj1+zVG8pT2Bvc3BAcRGcJCH2ZabyFWi1icibz+ov5F5FVmYRGEMZIF+C7q0Ppb7TLsfKxdCI0fnNypGjtVb97V84W+YZB/nlhn8JuCCBzR 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: The oom_reaper tries to reclaim additional memory owned by the oom victim. In __oom_reap_task_mm(), it uses mmu_gather for batched page free. After oom_reaper was added, mmu_gather feature introduced CONFIG_MMU_GATHER_NO_GATHER (in 'commit 952a31c9e6fa ("asm-generic/tlb: Introduce CONFIG_HAVE_MMU_GATHER_NO_GATHER=y")', an option to skip batched page free. If set, tlb_batch_pages_flush(), which is responsible for calling lru_add_drain(), is skipped during tlb_finish_mmu(). Without it, pages could still be held by per-cpu fbatches rather than be freed. This fix adds lru_add_drain() prior to mmu_gather. This makes the code consistent with other cases where mmu_gather is used for freeing pages. Signed-off-by: Jianfeng Wang --- mm/oom_kill.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 9e6071fde34a..e2fcf4f062ea 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -537,6 +537,7 @@ static bool __oom_reap_task_mm(struct mm_struct *mm) struct mmu_notifier_range range; struct mmu_gather tlb; + lru_add_drain(); mmu_notifier_range_init(&range, MMU_NOTIFY_UNMAP, 0, mm, vma->vm_start, vma->vm_end);