Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp2871286pxa; Tue, 25 Aug 2020 05:49:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzqla2gkFvTqlOdquIsfUF9rjW0EAs+6dyGgmCaKcN9OetTb9yzWFzD/MfqxhZAEvPTwneu X-Received: by 2002:aa7:ccd5:: with SMTP id y21mr9804878edt.91.1598359788435; Tue, 25 Aug 2020 05:49:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598359788; cv=none; d=google.com; s=arc-20160816; b=uoCi7x4GTIIzPkBeC1OumGrPXlYR99T/WNOM4OemnhhAGMCA620LONFz/+MUdfm398 ZXuaNeagMAoux3cGyKroF4dKkJS0PoDQ1wPFuCJrzowpQw2DWs1F8xQG7DOkAf9H3lSX V4Ij1rTw2osvm4G9z/8Kig16PuCmBMsTmHaLcHmSewU2Ihlld0+TNWZJxR7b5Te+iTkc bFZ4Z0+mU7H5azxp2iczFz2v4JtN3s6w8ViQPWOsisVqV03RYKd754J3eynROjYw15Fa actyu1BWu7pO+KWg82s1nIpk6nhtmlRIqjThFHFaiUjTA0Zk3HnNJJi+0HbVsrTc7z/j H8Iw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:references :in-reply-to:subject:cc:to:dkim-signature:dkim-signature:from; bh=a6WdDwr7pWfjm7IsVLumrHh9ko/TrrrmcQVTz/8dLfE=; b=AFDgbO6NCCRrolziCfWdyxk2YBh2FQiccIXvbyboaZkswyn2JSOtRTOWiMcbduQUwk weNUpiWNQNH4Rx6iGhN6Z+OR0veGeGb/0BBhjdxUZFF8E4zZ/e81yA6+hHqTzJ7mdorF /4yqT5+4GFJ2PYIpy0hYKHEfMDfnQTDabm1QE/e9Hd0n0bkAxHvEUH537yA1/f+W15E/ +8VDOOXCC5HMCHwiUlU12CtDAJR7AvrU1mXea/E391Iq5Q0aQhcNStrubNJRWJ1/mcL1 cN6uK8IB+kWhA9Odvk+rHKoRRqzql8MrQPY3Guo3QcudoiQX3WbnHx0QQWRmmZ3z0HAn R+TQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=OzDcARDy; dkim=neutral (no key) header.i=@vger.kernel.org header.b="/6hQZten"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n20si3849553edv.465.2020.08.25.05.49.24; Tue, 25 Aug 2020 05:49:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=OzDcARDy; dkim=neutral (no key) header.i=@vger.kernel.org header.b="/6hQZten"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729801AbgHYKgX (ORCPT + 99 others); Tue, 25 Aug 2020 06:36:23 -0400 Received: from Galois.linutronix.de ([193.142.43.55]:48852 "EHLO galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729698AbgHYKgX (ORCPT ); Tue, 25 Aug 2020 06:36:23 -0400 From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1598351780; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=a6WdDwr7pWfjm7IsVLumrHh9ko/TrrrmcQVTz/8dLfE=; b=OzDcARDyf9mt+xCboRP3C/F4D3JItGfFkuhickmkdbhAjgnRhXMc97IIkmeDSZmr9J1lWN hPXjydc6/9XxLnUcwg2ZXGj0CvDuvsYi7HvemYGyZrBsAK+7fXJz7N9JMyrpObLffC+72q StPOxcMwH7ptYNQ4/hsCZwrqbG+iz/A0XKT+iANidf+/8d4xIrxwlwJz7DS5s0SP2VphBD G2y/XoBjInMkLHyfkX1hUTZ/coTIsf4j4lIQJyniPy6ATBrr6LNt9y83EEA3jDVddYQEpn SawkgU8xXX4vtK6unAtJrGJIA5t2+u0Au0RLLz3DfTFkMz62C7NtNFIf9J8pDQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1598351780; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=a6WdDwr7pWfjm7IsVLumrHh9ko/TrrrmcQVTz/8dLfE=; b=/6hQZtenFwzkcP7aAzWrdAKw8clTV11fxpNg7LDs3Hlu2H7rYWmvkBCKd/zZ3327BHlro+ DUU5ePG78ZGElZCQ== To: Wang Long Cc: john.stultz@linaro.org, sboyd@kernel.org, linux-kernel@vger.kernel.org, w@laoqinren.net Subject: Re: [PATCH] timer: use raw_spin_unlock_irqrestore and raw_spin_lock_irqsave instead of raw_spin_{lock|unlock} In-Reply-To: <1597892357-1349-1-git-send-email-w@laoqinren.net> References: <1597892357-1349-1-git-send-email-w@laoqinren.net> Date: Tue, 25 Aug 2020 12:36:20 +0200 Message-ID: <877dtn57x7.fsf@nanos.tec.linutronix.de> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Wang, On Thu, Aug 20 2020 at 10:59, Wang Long wrote: > The code in (1)(2) lock the base with raw_spin_lock_irqsave(&base->lock, flag), > if base != new_base, the code in (3) unlock the old base, the code in (4) lock the > new base. at the end of the function(5), use raw_spin_unlock_irqrestore(&base->lock, flags); > to unlock the new_base. > > Consider the following situation: > > CPU0 CPU1 > base = lock_timer_base(timer, &flags); (1)(2) > raw_spin_unlock(&base->lock); (3) > base = new_base; > raw_spin_lock(&base->lock); (4) > raw_spin_unlock_irqrestore(&base->lock, flags); (5) > > The flags save from CPU0, and restore to CPU1. Is this wrong? Completely wrong. This code switches the per CPU base pointer of the timer and does not migrate the task to a different CPU. The execution stays on the same CPU and keeps interrupts disabled accross the whole code sequence. > we encountered a kernel panic, and we suspect that it is the > problem. How about the following patch to fix. It does not fix anything. It just adds pointless overhead. Thanks, tglx