From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) (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 2C31637EFF2 for ; Tue, 14 Apr 2026 21:36:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.52 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776202566; cv=none; b=ubZlmg9GFsPXz4X27aJjS0AjoQ2OYqTfF51AjY2KlIvHpoQIM+377+0nAhA8GOfoo14fByzpQOdO0BU8QXDG6SzqkZmduMO6mVq9loxp9uvhwlAx+Pn+rEOX0+Vpxx+Qe2zebuJnsLn/vndf4nn8LmVSkWy8qNkg1SqIimFNqOQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776202566; c=relaxed/simple; bh=0TMK6TPj2I/wDCZC3TKkkZR0vWPLJmtivYg0Oosnwbw=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=fhDuFPrgJWIcnNk935cJKJ1D3jL5Tl3QgsrGJZMGSnKEaq5+g2AsqthqNWKN37+hNX7blOtDecX5RC20k25bh6It3tF5tyoSxf56NsV1w+GJL7jTCMlBtKrL2XKWEFYT/ZfOIPzG6g4c60uzYE/BvQam3FEyBtkH0weOhBOz81c= 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=CKD8hswe; arc=none smtp.client-ip=209.85.218.52 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="CKD8hswe" Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-b9c01854477so1012203866b.0 for ; Tue, 14 Apr 2026 14:36:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776202563; x=1776807363; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:mime-version:date:message-id:sender:from :to:cc:subject:date:message-id:reply-to; bh=FVfeBwiYFSjucW7g9phomZssZLdfk3en30hBBiRPj+E=; b=CKD8hswejFyJ6d0NueXf5SrY2Yru5vKmq1YraCdrqWMGZ5QF9ZBSbEc279u+bQiLnc kGxpfO9QKdOMSHYcToyrJPtArAGDMKUl4Jo7tsW0PnZMofNm+l6YFrsdugfd6zYx8ssK wb7/b2h6z1kV4DZ/x/TIlQvF1xTsZ0lwXm2blP9MZN4vKJPt2f2aNFylSI0bmuocRudm i1+LXDCBFrMENaozlHJ8G4mSNIwyLscbHRPsUkPzG1xqeY7k9UoKq/KkpdrWF4ZelLMd x+pDvgFcyMF2ACMHFQsVRH8/BU2Ke4C475Fm+7hv97Z6Nxj26rseVMTqCedYMWKGLXjN S4Mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776202563; x=1776807363; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:mime-version:date:message-id:sender :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=FVfeBwiYFSjucW7g9phomZssZLdfk3en30hBBiRPj+E=; b=CROgZLmBlE41y17Y5W8f8cp8A+kk6vSZz5wR6LvZfrq4TgeTdND9FQWhQ9QfE1CgbU j2HDwno4zs/JFbcYbGuyG0HE6SZYWA9jq91x6TNnqSXP7i8SXQnFBN4If/qnSGJHwjjk u9e62GupQbmFKYN0AYGWzLlBeIjnUMaLNCfIQ5z7U7cgsrGo03VwVIV0X5hanyZsX5Yi /0scuw4aJKwPEoRc+ks6ze/UtrsFAG/OOs1Bl9f0kltepTQH6RS8jktJgxhC98scWN8w 1fVXI2hr+RZ2OMCAXwCh5PeLMLflwznJzMNVRc8DcgYaml3Ukr4cOC0sN8mvu4rDk6oM N5AQ== X-Forwarded-Encrypted: i=1; AFNElJ9zrwsynUinGr2xizLvnHhaChX7nxBp/WLST4BurA3Pml6UyVPIx2k/x4Anac17l+IJAycON1uUlFv836k=@vger.kernel.org X-Gm-Message-State: AOJu0YyM9EY5RFSKu5YLwPnF8c2pGdJhT/rCNkg1TJ+YHOW3T7JPl0D0 5qEjh5z0+zKuEn6AOTUfubSP0ZeP0AsO3dqW6Cwjjq4eXaCUENp1Jo2S X-Gm-Gg: AeBDieuWv8fZ1pKn7pacOXO6X8XENclslopNdTLWKzk1SCnPgkBjM2GF6XEOfgj4a6N VFQp68HSf4yd2IUoWAgeI2MdI3AgrE3pjvAaxWX7kL835FjJtcY5uqscZTWsM838fH4h39RLNG2 DBF/RYG3+GQcJPgW8YzzGIw+7WwRRqEBucu4/6XiHfszBxDHzhyUJVew2u2XKacneknQqFUw+LC FeW71tRBFYt/pzh3bwSyPOx6XaW/bQcmNVCinHZDmckYWT/DhpX3C5iMixFjrVcvp8dH050glz3 IFhk40/x5nBdBhhNlel/GvgKQNEgOwxoyLIkMB2RTnhynVtoNc3c4ZEXo9+qAQueAE4/F8Zje4C EEnb60dlBncgl/+tye3MPbBBtSbrPDFaRbcpXA2UG1Qv2IfJWKsfQlXLRnlfwjXZNmz67cGGL+Z HSyLIuYLriTl/EpphWVpw7KEAU0YA3Wnws4FWedCpTDzs= X-Received: by 2002:a17:906:6a03:b0:b98:48b1:b129 with SMTP id a640c23a62f3a-b9d727969e8mr1203629666b.47.1776202563125; Tue, 14 Apr 2026 14:36:03 -0700 (PDT) Received: from 127.0.0.1 ([94.41.86.134]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9d6de8d709sm449315266b.8.2026.04.14.14.36.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 14 Apr 2026 14:36:01 -0700 (PDT) Sender: Message-ID: Date: Tue, 14 Apr 2026 21:35:59 +0000 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Subject: Re: The "clockevents: Prevent timer interrupt starvation" patch causes lockups To: Thomas Gleixner Cc: Frederic Weisbecker , Eric Naim , LKML , Calvin Owens , Peter Zijlstra , Anna-Maria Behnsen , Ingo Molnar , John Stultz , Stephen Boyd , Alexander Viro , Christian Brauner , Jan Kara , linux-fsdevel@vger.kernel.org, Sebastian Reichel , linux-pm@vger.kernel.org, Pablo Neira Ayuso , Florian Westphal , Phil Sutter , netfilter-devel@vger.kernel.org, coreteam@netfilter.org References: <20260407083219.478203185@kernel.org> <20260407083247.562657657@kernel.org> <68d1e9ac-2780-4be3-8ee3-0788062dd3a4@gmail.com> <87340xfeje.ffs@tglx> Content-Language: en-US From: Hanabishi In-Reply-To: <87340xfeje.ffs@tglx> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 14/04/2026 20:55, Thomas Gleixner wrote: > The one below should cover all possible holes. > > Thanks, > > tglx > --- > diff --git a/kernel/time/clockevents.c b/kernel/time/clockevents.c > index b4d730604972..5e22697b098d 100644 > --- a/kernel/time/clockevents.c > +++ b/kernel/time/clockevents.c > @@ -94,6 +94,9 @@ static int __clockevents_switch_state(struct clock_event_device *dev, > if (dev->features & CLOCK_EVT_FEAT_DUMMY) > return 0; > > + /* On state transitions clear the forced flag unconditionally */ > + dev->next_event_forced = 0; > + > /* Transition with new state-specific callbacks */ > switch (state) { > case CLOCK_EVT_STATE_DETACHED: > @@ -366,8 +369,10 @@ int clockevents_program_event(struct clock_event_device *dev, ktime_t expires, b > if (delta > (int64_t)dev->min_delta_ns) { > delta = min(delta, (int64_t) dev->max_delta_ns); > cycles = ((u64)delta * dev->mult) >> dev->shift; > - if (!dev->set_next_event((unsigned long) cycles, dev)) > + if (!dev->set_next_event((unsigned long) cycles, dev)) { > + dev->next_event_forced = 0; > return 0; > + } > } > > if (dev->next_event_forced) > diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c > index 7e57fa31ee26..115e0bf01276 100644 > --- a/kernel/time/tick-broadcast.c > +++ b/kernel/time/tick-broadcast.c > @@ -108,6 +108,7 @@ static struct clock_event_device *tick_get_oneshot_wakeup_device(int cpu) > > static void tick_oneshot_wakeup_handler(struct clock_event_device *wd) > { > + wd->next_event_forced = 0; > /* > * If we woke up early and the tick was reprogrammed in the > * meantime then this may be spurious but harmless. Ok, it does fix the problem! Thank you. The patch itself does not apply cleanly for 7.0 though and I had to adapt it a bit.