Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755544AbaGIKdE (ORCPT ); Wed, 9 Jul 2014 06:33:04 -0400 Received: from fw-tnat.austin.arm.com ([217.140.110.23]:50163 "EHLO collaborate-mta1.arm.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755022AbaGIKdC (ORCPT ); Wed, 9 Jul 2014 06:33:02 -0400 Message-ID: <53BD1A56.7000902@arm.com> Date: Wed, 09 Jul 2014 11:32:54 +0100 From: Chris Redpath User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Viresh Kumar , "tglx@linutronix.de" CC: "linaro-kernel@lists.linaro.org" , "fweisbec@gmail.com" , "linux-kernel@vger.kernel.org" , "preeti@linux.vnet.ibm.com" , "netdev@vger.kernel.org" , Arvind Chauhan , "David S. Miller" Subject: Re: [RFC 7/7] net: don't check for active hrtimer after adding it References: In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Viresh, On 09/07/14 07:55, Viresh Kumar wrote: > hrtimer_start*() family never fails to enqueue a hrtimer to a clock-base. The > only special case is when the hrtimer was in past. If it is getting enqueued to > local CPUs's clock-base, we raise a softirq and exit, else we handle that on > next interrupt on remote CPU. > > At several places in the kernel, we try to make sure if hrtimer was added > properly or not by calling hrtimer_active(), like: > > hrtimer_start(timer, expires, mode); > if (hrtimer_active(timer)) { > /* Added successfully */ > } else { > /* Was added in the past */ > } > > As hrtimer_start*() never fails, hrtimer_active() is guaranteed to return '1'. > So, there is no point calling hrtimer_active(). > > This patch updates net core to get this fixed. > > Cc: "David S. Miller" > Cc: netdev@vger.kernel.org > Signed-off-by: Viresh Kumar > --- > net/core/pktgen.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/net/core/pktgen.c b/net/core/pktgen.c > index fc17a9d..f911acd 100644 > --- a/net/core/pktgen.c > +++ b/net/core/pktgen.c > @@ -2186,8 +2186,6 @@ static void spin(struct pktgen_dev *pkt_dev, ktime_t spin_until) > do { > set_current_state(TASK_INTERRUPTIBLE); > hrtimer_start_expires(&t.timer, HRTIMER_MODE_ABS); > - if (!hrtimer_active(&t.timer)) > - t.task = NULL; > > if (likely(t.task)) > schedule(); I think this if condition can also be removed. hrtimer_init_sleeper copies the supplied task_struct * to the timer, which in this case is 'current'. The check is likely to be there in case of !active case you removed. > --Chris -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/