From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dl1-f44.google.com (mail-dl1-f44.google.com [74.125.82.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 34EAF2DFF04 for ; Tue, 21 Apr 2026 23:02:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776812568; cv=none; b=sqbv8uRJkSCr/xzRKe/QeJhCv5W6pKBEJfLhgNJ43fvf/o8gOiH789ZIS1ku3bHoMLUilBGs9Zfg/y3qGNVbJZvysAO2CpdFPVI0F+G9PaZhCozI1XAUQ6of2xQ/buZt5vijFaAFGqsBihwmF8E9cfB70tjNdQgTHvaTtuEhmwI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776812568; c=relaxed/simple; bh=DJTgV5qxMyImLlFX+U+L2ks4BfgjBA2zyruQwbl7css=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=N81SrJm66JL/4n+ua6HCNXMQNxQOEL9pH0WdR8IZT18e+6A9mg12tXOvK/XNZrgqT1dJ1uu3vfLUloNK+4aKedsyzMNTCeaDLXw2y4+wojPn1rWvTKY8tjmprDOJv1oV1vU86XNwYW5whDzIRCDmi1jgjmAWsOLsJyG7XByCKYs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=kernel.org; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TP3DvTWX; arc=none smtp.client-ip=74.125.82.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=kernel.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TP3DvTWX" Received: by mail-dl1-f44.google.com with SMTP id a92af1059eb24-12c8f9846c8so3613584c88.0 for ; Tue, 21 Apr 2026 16:02:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776812566; x=1777417366; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:sender:from:to:cc:subject:date:message-id:reply-to; bh=+O4M27v2Tss7FIEhY4PBkpamm/Ohd33d6CzOiSw8EfE=; b=TP3DvTWXpzsyLE7pr2NsQ2mDfIi5KiFK5MuI6ietIQgmQR8rIpCx7uXTyMqjPMQeAM 3D3o7m7jfDEAddNFFIZFJxboiE3u6xtu5wFnNfAnn2bTgXm7/po/bAZpsnVZz9uW7R5R qRj5qwAFTcpBuCU528tOTQrfmnt99cn95HejB/qUu57XLQpzsqsh31klInyVPBX3+5Si s7V9jWbcfc1te2CJkitg6JWuz5nn6PvAfjZynhKsu2L3vUbmOBGnrs44mSIjNNe8uAQB if3MOLEwxazqlR6EzPTlCR7lhvwIqvZ/sNxD7aeh6KpZAvHpXzeRjoSRs2UAxiuPGVTy +80w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776812566; x=1777417366; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:sender:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=+O4M27v2Tss7FIEhY4PBkpamm/Ohd33d6CzOiSw8EfE=; b=UrGDfM8lHCpWFTIqC7p9BrCjlbodyHL1+NM+Vfs4qESclp0MBN4aZz+itOUKJn1eV0 uFN5G1bSdQtL0XmBbHXCxPn3DxzdRLAfw3J0Cb5kOa9hNjL23+yy4skd1veGvvoBh+5/ zfw0ZQDa8sPHFi56eLXaVSf9+DNVDDV9qxfxThA37axLVBdKh2K5W4X1DCZBZE0u1A4l 5mAD8jrdLj1mc3Y/tGiDogf5yLXBWzBSGu1bxUa4CBb2x2lgByOxhFtoMRYLDAorUlpZ eLI/+lt26A0bbbSSwr/oMN2bhXzrEs/xPzCT5LCquSLztjMwmJe/+6dWSmprEvikQe1m 6Z+g== X-Forwarded-Encrypted: i=1; AFNElJ8gE86ZssR33glCz14jp4auZIsmCLdcpC/FtwJmwi70ISexQP3H14BMSJeHpnGmEdv2vxL4PTc7KypnhGw=@vger.kernel.org X-Gm-Message-State: AOJu0YxZrTLKsf53f+M+Ru5IvDPwOtBsTiNdDo1VyBkmlULRuZtXFCsp zl5qtaXegkhNoukFEeN4c3+CXbkMQgPpSmdODIAWwMGZqNnI2uZwqrZZ X-Gm-Gg: AeBDievTgoXKefUtNiKtteQQv2Z+EPPlaxJAFq+/Z/phdIpOToN2B31mcxhNlBtHVg5 JPXNoVwkbjhi9wx5udfhltjb7yJVTED58jEt1EFRpU2WPaeJphURWLxNRvfcakdfTxMkbZd0j56 QkcoKKmJa75IWZ2tvJQ3oXxcB7xOT5luYO3wXN/CSyRGuf41s/1Hyn38l/Wt2BYt4Vgv5iHaQ3q SYRpEx+jS+vDv0F8/hb1Uiwi69idnLSaX8vl8p8FQ+C4u1ZJnILOvzXQAGpnge5BmXCbYSoK3Cx TlJ9Q0OZABPFQoyAvAUGUxFE5S9V1jJJo/JFhyVrFfE3x+eommgK1unTZr9DZETDDN2xYEtEbx9 lzeo6t/+4Yea8jbYKKCJ/+y7jit1N/S2E7GQsQq4dC+9ecr5F9wQldmhY/BGwokJA4alsaoFmgV oT3vZSLDFeNwo+UuWdxGOuRkEJNpGZAhJJaJbJel3l65SKlyY7ijfxj+huhUbYG8V524bc8EdUw RklLYBzWoMYMQ== X-Received: by 2002:a05:7023:b13:b0:128:e693:b61c with SMTP id a92af1059eb24-12c73fa713emr10677778c88.27.1776812566137; Tue, 21 Apr 2026 16:02:46 -0700 (PDT) Received: from bbox-1.mtv.corp.google.com ([2a00:79e0:2e7c:8:4678:d28b:b946:bcc]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c74a20eb5sm26453546c88.14.2026.04.21.16.02.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Apr 2026 16:02:45 -0700 (PDT) Sender: Minchan Kim From: Minchan Kim To: akpm@linux-foundation.org Cc: hca@linux.ibm.com, linux-s390@vger.kernel.org, david@kernel.org, mhocko@suse.com, brauner@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, surenb@google.com, timmurray@google.com, Minchan Kim Subject: [PATCH v1 0/3] mm: process_mrelease: expedite clean file folio reclaim and add auto-kill Date: Tue, 21 Apr 2026 16:02:36 -0700 Message-ID: <20260421230239.172582-1-minchan@kernel.org> X-Mailer: git-send-email 2.54.0.rc1.555.g9c883467ad-goog Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Minchan Kim This is v1 of the patch series to expedite clean file folio reclamation in process_mrelease() and introduce an auto-kill flag to close race windows. Currently, process_mrelease() unmaps pages but file-backed pages stay in the pagecache, relying on standard memory reclaim to eventually free them. This delays memory recovery in memory pressure scenarios (e.g., Android's LMKD), leading to redundant kills of background apps. Also, the requirement for userspace to send SIGKILL prior to process_mrelease() introduces a race window where the victim task clears its ->mm before the reaper can act, failing the syscall with -ESRCH and delaying reclamation due to arbitrary reference counts (e.g., reading /proc//cmdline). Summary of v1 changes since last RFC (https://lore.kernel.org/linux-mm/20260413223948.556351-1-minchan@kernel.org/) - Patch 1: - Unified free_pages_and_caches() in mm/swap.c to handle both CONFIG_SWAP and !CONFIG_SWAP - Clean up description - David - Patch 2: - Used !folio_maybe_mapped_shared(folio) instead of folio_mapcount - David - Patch 3: - Used mmget() instead of mmgrab() to ensure that memory reclamation is performed synchronously and deterministically by the reaper, avoiding delays caused by non-deterministic scheduling of the victim task. - Dropped the custom KILL_MRELEASE signal code and modifications to siginfo.h and signal.c. Instead, use standard kill_pid(..., 0). Minchan Kim (3): mm: process_mrelease: expedite clean file folio reclaim via mmu_gather mm: process_mrelease: skip LRU movement for exclusive file folios mm: process_mrelease: introduce PROCESS_MRELEASE_REAP_KILL flag arch/s390/include/asm/tlb.h | 2 +- include/linux/swap.h | 5 ++-- include/uapi/linux/mman.h | 4 +++ mm/memory.c | 13 ++++++++- mm/mmu_gather.c | 7 +++-- mm/oom_kill.c | 56 ++++++++++++++++++++++++++----------- mm/swap.c | 42 ++++++++++++++++++++++++++++ mm/swap_state.c | 26 ----------------- 8 files changed, 104 insertions(+), 51 deletions(-) -- 2.54.0.rc1.555.g9c883467ad-goog