From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (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 6608B336892 for ; Mon, 22 Jun 2026 02:50:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782096617; cv=none; b=VpoBoC5yWN2XcYfWke5qSGYNFU8/l62v7jvsS1TjwPGWlyXbpFAnsZwVzrr+E0qr8b9h1Fdm3hyJk/376jSmkSWSRs4u4RuvsuRjs3txc6EFo1kw8lPgl4Lbre5FYGcpcORCmlJOYH6tzDnMaGFva+saosd9F2ZpwHCWRkLUphE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782096617; c=relaxed/simple; bh=Itb1HUDL12MYiJzsbO/gep+LFMv5090ITLAzva9MWkg=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Q2tRDf9RLd6Kl+4uoPEISGDYsJi0oaf3SvfF6nSa0ul975JV2+3+AePvPjeoNYFoHmOEB1GHXgMJ9k6cSxJrcLKEOzt5IkTW8RRcjwy52x6l4MJ5myb8VbC94dLPtMzt080KRY9QMHM/JSgWLRJKksuzDPZMXShMz0LWr++G/tE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=mFK9SM30; arc=none smtp.client-ip=209.85.214.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com 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="mFK9SM30" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-2c6ec0af575so23741355ad.1 for ; Sun, 21 Jun 2026 19:50:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782096616; x=1782701416; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=hyww99ljWm4jab5h2ExE0M0oFPAAyg/3ek5Kzuwfymw=; b=mFK9SM30sxRVShRf9H7A6b+FmUoYOj30lbi6X/MY2rIaCs2FglxV1XzYaBHgMl6Awa M/JxBJKKGAIAPFBf3gqw3ooVaBOyf5ZE/iMQn6f8VzmvcMbQlC2bRIDCljTXOTMP1+Pq Kgwcg5ZMQyS6YsFEgFKtycoli8W8LoaNO4UY63hRSO32FAo6o5+ggDSMkVPUxgepx26c vwnGGKSIb0qD+1uwaV/2arFVqz8eBAJCnE+WUCuzW3w5NHmvzQ4oatZdoZ0AGUe+0CbB lzrnsAZ5VuU9GxlxGn4Bw3iYPqIGaqCHQcBMKGLb3kvqjh5wehquE7iXD1DWG7kfp6ox 2yDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782096616; x=1782701416; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=hyww99ljWm4jab5h2ExE0M0oFPAAyg/3ek5Kzuwfymw=; b=TpNM02FLIg3VwDZWakubIKv7w6S/Ndn7GV7RWT+RNN10YnyrFOLtHkUn1Y9LPCyV+Q QtUmXqkrouJnthwxRY51Ox5i5e8v7cqL9J3wGkyOrqgl+A3OfjEa6cWlVGkZf2EFRr4E iLLV3KBu3k+EfQTVTlCf4Y2+E84oBt82JadJzMj+YZvU8pitsdyqO5TNdmSsXPNqnd8U Ms7f5n2ArsgukQsFG6AsK/oX7gzeqkIA2a3LSqBiiQvdvrwsrCSzMymMON5GlhrrnYQy vtNHIJEMxYJr+CPKWd2L5ZQv7+5nWmErvwxwJkv9lqZmMcN/Ngr+SbbWTcukmDhJmWru 7jWQ== X-Forwarded-Encrypted: i=1; AHgh+RpjmfbI2sJr/w0oJ68CFeFZ7dmlzivU2pSqCTgIYR3ShRTqV5sXQKL3b4UT30VFpaVJlUT4C59iieG3rLc=@vger.kernel.org X-Gm-Message-State: AOJu0Yw1uDbM2odVvsSSwyzdB4bz12X/Bteqgav9P4N+I22LqA8Tp4IX Ja5M4ZDi0OyRAmMdzk6pxslskoDl71ZUsuTAFB7qq/Amujkf+cCnIdwk X-Gm-Gg: AfdE7clbTbJ088axPyCxgecSVx44KHLGZUbmc5hlZT6XqRQIO1PrgvurkwDC3ZPObzI Kn1S17+c3oYMMgrd5qhqo6xB5MrAp7tsKWl/PzWBWTdXlOBmm5ZP+hktBn+MqaRmYn8XjNB0ceF xbPUr7UVdEzF5H2JiB/qG4aHSZQJBNcZcNmE5/xAw0sB0YjHCwvMX5EGnFOMQ1UkWNP5koPLbTW atFi83vr/Y4SWwsVVwHwjZrEsuqbcYcpdabfwrzUoMCCDu2MWp4AWgz61MjfO0Sil65HdFYcy/m g6ME1ScJSbPpUHU0OUixdUKJJGicacOnrikmxZs8Q13egzxaPvZVoSARR9oLxXzNl5plfgkxic5 BjZr0f1Hlh+zRMbKjs59s+FVC0FOVAAZbysTu9JYH12EawrvLC7HXS1+u+WVlvfBn8rFAAO2Uwb zEfrJCWuZHTsvqJc8IpGIcGnsky4VU5sYyxj8LjjWcGSyi26ni/RWLFhik6g1ZItkeA+6y/8N5h 88L X-Received: by 2002:a17:902:d545:b0:2bc:ac76:c1cf with SMTP id d9443c01a7336-2c718f1f023mr152321965ad.24.1782096615676; Sun, 21 Jun 2026 19:50:15 -0700 (PDT) Received: from mi-HP-ProDesk-680-G6-PCI-Microtower-PC.mioffice.cn ([43.224.245.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c7439f8e51sm65579495ad.39.2026.06.21.19.50.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Jun 2026 19:50:15 -0700 (PDT) From: "zhidao su (Xiaomi)" To: Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot Cc: Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Kees Cook , Felix Moessbauer , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-mm@kvack.org, "zhidao su (Xiaomi)" Subject: [PATCH] sched: Preserve timer slack default across RT reset-on-fork Date: Mon, 22 Jun 2026 10:50:06 +0800 Message-ID: <20260622025006.614695-1-soolaugust@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit RT and deadline policies force timer_slack_ns to zero while a task runs under the realtime policy. The original slack value is kept in default_timer_slack_ns so it can be restored when the task returns to a normal policy. copy_process() initializes the child's default_timer_slack_ns from current->timer_slack_ns. For an RT/DL parent this copies the temporary zero value into the child's default. If the parent also uses SCHED_RESET_ON_FORK, sched_fork() resets the child to SCHED_NORMAL and restores timer_slack_ns from that already-poisoned default, leaving the child with zero slack. Preserve current->default_timer_slack_ns when current->timer_slack_ns is zero so reset-on-fork children can restore a real default slack value. Fixes: ed4fb6d7ef68 ("hrtimer: Use and report correct timerslack values for realtime tasks") Signed-off-by: zhidao su (Xiaomi) --- kernel/fork.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kernel/fork.c b/kernel/fork.c index addc555a1077..39db7502379b 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2196,7 +2196,14 @@ __latent_entropy struct task_struct *copy_process( retval = -EAGAIN; #endif - p->default_timer_slack_ns = current->timer_slack_ns; + /* + * RT/DL tasks run with timer_slack_ns forced to zero, but their + * default_timer_slack_ns still carries the value to restore when + * returning to a normal policy. Preserve that default across fork so + * SCHED_RESET_ON_FORK children can restore a real slack value. + */ + p->default_timer_slack_ns = current->timer_slack_ns ?: + current->default_timer_slack_ns; #ifdef CONFIG_PSI p->psi_flags = 0; base-commit: e771677c937da5808f7b6c1f0e4a97ec1a84f8a8 -- 2.43.0