From patchwork Sun Feb 9 22:29:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frederic Weisbecker X-Patchwork-Id: 13967153 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 40C9FC0219B for ; Sun, 9 Feb 2025 22:30:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3D5836B0082; Sun, 9 Feb 2025 17:30:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 384F46B0083; Sun, 9 Feb 2025 17:30:17 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 24BD66B0085; Sun, 9 Feb 2025 17:30:17 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 0DCA66B0082 for ; Sun, 9 Feb 2025 17:30:17 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 66DD580C4D for ; Sun, 9 Feb 2025 22:30:16 +0000 (UTC) X-FDA: 83101850832.20.71BA250 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf10.hostedemail.com (Postfix) with ESMTP id C3F58C0006 for ; Sun, 9 Feb 2025 22:30:14 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=KYevvj0X; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf10.hostedemail.com: domain of frederic@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=frederic@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739140214; a=rsa-sha256; cv=none; b=dT71FDXG3E5g+fgzvIYFPsVIQ7c+7kYHCkLfjylKOMgtGXm7xu8s6uS6pSPd/6lXrQPeH4 ZNgHPpzcgXt6Iod8YIdnFfF0eZTgH69iVjMBO/vGuKamd3+DlPRPnzCxHbnoLvd17/e3nM 6skSSuuA6fWmEjFMOIlf2QBOZWQ3vSs= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=KYevvj0X; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf10.hostedemail.com: domain of frederic@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=frederic@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739140214; 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=gjHR5x9RKn4HWHdzFmkfnBQ668G6xrukukra4e256XQ=; b=xlPfORkbRYpVpvvgJH09xXjTbrgF1RdcPJHomtxXx6tbG/KlmQl3avFox3CaTVVoO1Ea8S N0EDMSvWSKh9jlP1uZqqoSHrcaTlfO41AHZSRUJd/5GyKmDpD5hxc5ruiEYpKI6u5KJLvK 3ju6VoG12Tf7EXsIIqzeW1e9dbnh7QQ= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 03ACA5C12AC; Sun, 9 Feb 2025 22:29:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 98273C4CEDD; Sun, 9 Feb 2025 22:30:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1739140213; bh=1rNkUd1hCd+4vEvTywqE43/ZrYdxvChv2CgPqlTsF4o=; h=From:To:Cc:Subject:Date:From; b=KYevvj0XQZ94iWXrQkZyh0/2bwCrKQ0zHPItVvdNT96mU7Xd6NmVWhHJ84KJrRIxl bdECFdUxa9wuxRwFTl9GvSVbJ+Y+KfHsWGPDwWeUHHO3nID89Uut3eEUDQmi3VJ2fo XVmKEkcZDFMApKR+6W56EmpGw7ae9mk8HNv75DjLYMu/cH4Qr+/8qnV10TEy7PVfXi m6yUHiIo1Fn9VloFQ3mA0kuaxG8ongRV0fcY4YduN1iKnoQIcC7OknrxWF0fY7uQ7/ HT6iM5iYqZ/7hiP6QLd8kLaSNo4sMCpNxnKYeO+IRfpAdAvYw9Jd5hkEVrZ8+ILNrQ o1ylUgvYdYf7A== From: Frederic Weisbecker To: LKML Cc: Frederic Weisbecker , Peter Zijlstra , Ingo Molnar , Valentin Schneider , Marcelo Tosatti , Vlastimil Babka , Andrew Morton , Michal Hocko , Thomas Gleixner , Oleg Nesterov , linux-mm@kvack.org Subject: [PATCH 0/6 v2] mm: LRU drain flush on nohz_full Date: Sun, 9 Feb 2025 23:29:58 +0100 Message-ID: <20250209223005.11519-1-frederic@kernel.org> X-Mailer: git-send-email 2.46.0 MIME-Version: 1.0 X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: C3F58C0006 X-Stat-Signature: sr8pdd5ey9z7uncryshdch81ch8nxhsh X-Rspam-User: X-HE-Tag: 1739140214-260162 X-HE-Meta: U2FsdGVkX18XZleq6zHyOVTnD3agoqwUrZE8KZMw3DAc7ldXmIzK9TH5aaAayT6Gt4rWLxo/JEBEGpN0H50FN82NUX1PBXQuhX8w2TmVijh8jjWeqKkfvfaFhawMd7vUvjpCC8KHYDEpI4aCcskWYaiyWG6lG2jSP1qbGWPUuKAnDoEAGWgkb7Mxc5qtoz6bDQ25ca2yQttHesgZxpZ/DXrEnh4xODm2sY8Tv3hdwzrOknFdSuqsTriLlAHpv914zUDhyxazSgY9lNDcuDkW2qAvIRzV+vXhhizUGnp143z4gIRv52bHA6oYyhIcfmwEttJKYS1AimBaIv/cy81KClKjiJVElz0XadGvfS4a7Z5kQcCX+eW2U31500EQCe6VlKJL2woaZ0GZzeFlHWeRoxtym2LDycEe/DMtqGpx2pBiSDkUJ+muF5KjXe9UWL/5EI+nHUbwZlKURNCAGDD35IMxFrA24tlp2hA/Kmz6LUIO6MLABZ7R9VBwChjmu73CDWEa2ckxQ3zY9Lc+Ruy8sIOgXt7MDyu7eTYN5zL/3Yl2lThb1KatFrUU/dhP6MRKrIMJ5f4f8RtRn/YeV1sxOne65oa/sbHU9n5qxbwwSsgMSsMsLpGR6G7joyBbFTvOReEqtk4WQWt03uD2ka40TIgF+xF3iNqqMlTH4W2GhkdnO8CHc0BKUkGKjAS33WQmWeEh+ZbzOhNRc2rY5XIH9KxRgEuvoT05YRHDPEgoVxfMXyA94yqiJW8l4t04LDF6ErJU4zPFjXpe7p9lbNhQEGirR2Es/qSIazkhF5WtaEFPT6LzJPCNhpXPOkGeCjWUA0PmHKqCup9etYSXHhk/FeKB7Rui77JF/NNXL0yGYUPn+ahThM/HUzgAzBPqOF5VnMlgwES5sSca6tS/d5qBueUE3Wak2bPKKpIVsZrGUqYTt9jV1/BXT3NVKrpLUGkTq/Plp45ibrpIKzWtqWT u5Lrg5xx fENRk4ASdBAbk9m9MoqJyB4ahW/80TYh0U5yfVLsifLNGgQD3kes5Fr3YD8/tH0E05JYoxvntEQFt+4BUEZn/h+RM8UNdn6wZmSsabMp+yQTN8+IISfgQ1Bs57/GrB6WPz2ruXtWIMunKiC4loygKzd9kONLAos+XgqcvtR13oCtwSD9T1NPeCEd4hIQjZezBMLrezwk0lR2uI+dT1xwxTA8HMI3HSrYCnuWvWwQt+lQoiBT5pzdm1zw+MXvNal75kRjI 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: When LRUs are pending, the drain can be triggered remotely, whether the remote CPU is running in userspace in nohz_full mode or not. This kind of noise is expected to be caused by preparatory work before a task runs isolated in userspace. This patchset is a proposal to flush that before the task starts its critical work in userspace. Changes since v1: _ Various task_work improvements (Oleg) _ Remove leftover comment on numa_work (Valentin) _ Add Reviewed-by tag from Valentin _ Use housekeeping_cpu() instead of housekeeping_test_cpu() on fastpath to benefit from static branch (Vlastimil) _ Spare the actual remote LRU drain when the target CPU is nohz_full. It is assumed the LRU drain will happen locally eventually. (Michal) Frederic Weisbecker (6): task_work: Provide means to check if a work is queued sched/fair: Use task_work_queued() on numa_work sched: Use task_work_queued() on cid_work tick/nohz: Move nohz_full related fields out of hot task struct's places sched/isolation: Introduce isolated task work mm: Drain LRUs upon resume to userspace on nohz_full CPUs include/linux/sched.h | 15 +++++++++------ include/linux/sched/isolation.h | 17 +++++++++++++++++ include/linux/swap.h | 1 + include/linux/task_work.h | 12 ++++++++++++ kernel/sched/core.c | 6 ++---- kernel/sched/fair.c | 5 +---- kernel/sched/isolation.c | 34 +++++++++++++++++++++++++++++++++ kernel/sched/sched.h | 1 + kernel/task_work.c | 11 +++++++++-- mm/swap.c | 8 +++++++- 10 files changed, 93 insertions(+), 17 deletions(-)