From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0DB343A784D for ; Tue, 24 Feb 2026 16:36:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771950969; cv=none; b=qxX5DmwW8a2Bf5HMiLjHo3AQXE4o46hlXkYhv7TONJPiJBjUgLIx7YvMTqTn0mHdSCA9fVFkSX1gB3WQP47lEsLqVL+cnrurWnBZ6qeYn8xFylePn4V6WvHzbkeFMSTRnX78E9iC5KfxB/balmY13f75PgzYVUMDP5v0tJLTFJA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771950969; c=relaxed/simple; bh=sCGdU6vnxJTJkuw6tdgNFr8GGsntVWTC1+pVjYDnALk=; h=Date:Message-ID:From:To:Cc:Subject:References:MIME-Version: Content-Type; b=G/m8NPVeF0HARkvtmJOjCLQnz2khI+18PoTVP+w1rh2x43GpQN3p6kgerrhTVyXhuPZjTsW2FNu2ofattylNkbMdmstAKOXc43jqbJdkUEW8UnTGGoav9ZVshoFVOhU5jY2HtlQVsriixgbzLz0WK/cLkvhLn0hAXOSyMwHk2ME= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=M2HzJdIH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="M2HzJdIH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6F2AAC116D0; Tue, 24 Feb 2026 16:36:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1771950968; bh=sCGdU6vnxJTJkuw6tdgNFr8GGsntVWTC1+pVjYDnALk=; h=Date:From:To:Cc:Subject:References:From; b=M2HzJdIHzKRZRL09ilDae/ZruR0E6QP3JtQRraEm7U002gj9s9z3HPeYhO98hhSkN C4wQiWJxr6SWkMec0VUQkHDHIK4LP34J9KHPGmhAp76BKPwtSPd9iEt4odZHoL5c83 2jm3PGAbeqF4AOEVaN0qdFtCnlsCAlHlU4n+DH7Zh94MHT9JraZDBY7aJR/cG2DaU7 ce4ygu6yDDge5V1uJrAw+5jkPct+anlLDe01f7yC9w/kShbXnVjlOwy+tGXuA6pIGv a8xLOxlOoKcm2hM0ObXtkO535Ad0H7Z9riWf7gz454Pes9sBge93eccde/Nti2vIun VVIAp8sKj9WnQ== Date: Tue, 24 Feb 2026 17:36:06 +0100 Message-ID: <20260224163429.475409346@kernel.org> User-Agent: quilt/0.68 From: Thomas Gleixner To: LKML Cc: Anna-Maria Behnsen , John Stultz , Stephen Boyd , Daniel Lezcano , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , x86@kernel.org, Peter Zijlstra , Frederic Weisbecker , Eric Dumazet Subject: [patch 11/48] sched/hrtick: Mark hrtick timer LAZY_REARM References: <20260224163022.795809588@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 From: Peter Zijlstra The hrtick timer is frequently rearmed before expiry and most of the time the new expiry is past the armed one. As this happens on every context switch it becomes expensive with scheduling heavy work loads especially in virtual machines as the "hardware" reprogamming implies a VM exit. hrtimer now provide a lazy rearm mode flag which skips the reprogamming if: 1) The timer was the first expiring timer before the rearm 2) The new expiry time is farther out than the armed time This avoids a massive amount of reprogramming operations of the hrtick timer for the price of eventually taking the alredy armed interrupt for nothing. Mark the hrtick timer accordingly. Signed-off-by: Peter Zijlstra Signed-off-by: Thomas Gleixner --- kernel/sched/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -998,7 +998,8 @@ static void hrtick_rq_init(struct rq *rq { INIT_CSD(&rq->hrtick_csd, __hrtick_start, rq); rq->hrtick_sched = HRTICK_SCHED_NONE; - hrtimer_setup(&rq->hrtick_timer, hrtick, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD); + hrtimer_setup(&rq->hrtick_timer, hrtick, CLOCK_MONOTONIC, + HRTIMER_MODE_REL_HARD | HRTIMER_MODE_LAZY_REARM); } #else /* !CONFIG_SCHED_HRTICK: */ static inline void hrtick_clear(struct rq *rq) { }