Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp8518931rwb; Thu, 24 Nov 2022 00:08:16 -0800 (PST) X-Google-Smtp-Source: AA0mqf46XuhNxnTDw53Yhct2WzTJsKQewVnttI5RLGjjfAQ71gEJDTiSyLEM44aH6QDfh9MhMibv X-Received: by 2002:a17:906:dfef:b0:7ae:db2:f10a with SMTP id lc15-20020a170906dfef00b007ae0db2f10amr12076637ejc.709.1669277296134; Thu, 24 Nov 2022 00:08:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669277296; cv=none; d=google.com; s=arc-20160816; b=OZ/BRJrrSZIR0EXPeMxDzjGDa9NX3IjrYVkT+PnWW0VMH5HW8r2sx+2Y9ZBQxaawst Ads3xVCllxDv5TPjQ7lgWi9UMvqBc8Ia63AcxRsfU48ZRh6FwW695CkCX4q33wNG4/UO 0lHktTM3GpeoFV2AGesQaJloNkRA77ISTmnjOMteVjpKUGBtuSP0gK7rXznGPFdvXkz9 aAqiwFGCkPrdA8rScX8miwPEh/o4H72v830JP31JFFGop/R17X6nmcIFjO7xkBWTEk8I nri0bYoLBVWLQEP2DVFdAx0pFKWaH5uxOPIiKaiE8reZcZAeRMXQHMHGcL6jFmbXiszx x+8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:message-id:in-reply-to :subject:cc:to:from:dkim-signature:dkim-signature:date; bh=H8MkVKqMFPY7RVtK+U9IsLl419c2sAFoJ/y3MjxQSoQ=; b=JdjvgGUsCilEiRTzPPU6W3Y7ODp1fnJhJa5PsUeCA9WnUcraQlq3uXN9g3x3FKIr7H RJ+WYwIBxJLXZ6FKMgY2PExpfihDp33P1d5RAevoVg829ndS3eDJSaRN2iIsKMdlwuPx oFdFjTLj6kRfgc2vFPb8Ltl7SgnmOUCniCU7IpQkcs4i4saCGnECMUUr77WASwYG7BeH kj7UpS1iLg3tmDX8vNwHb2It/ttrfyLpRXgBsuK82MfyNHwf1G5zqalj6gdGn3PAV23s iKaYSSGD0DnCDwqZVwgUXmfQw0lQWkYYjp272pW43gJkRi1lFY1hV9nD93pVJFnn29Qe Zqhg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=KhL5m+1q; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e header.b=dm1HTwTz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s27-20020a50ab1b000000b00461c9edc3a5si555696edc.77.2022.11.24.00.07.52; Thu, 24 Nov 2022 00:08:16 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=KhL5m+1q; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e header.b=dm1HTwTz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S229671AbiKXHsK (ORCPT + 88 others); Thu, 24 Nov 2022 02:48:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39516 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229630AbiKXHsI (ORCPT ); Thu, 24 Nov 2022 02:48:08 -0500 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 95F8825C62 for ; Wed, 23 Nov 2022 23:47:59 -0800 (PST) Date: Thu, 24 Nov 2022 08:47:56 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1669276077; 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=H8MkVKqMFPY7RVtK+U9IsLl419c2sAFoJ/y3MjxQSoQ=; b=KhL5m+1qGMnIkw8GjP8ewX0gISSmUyVAsbmCuMEUb3IPn9NjBvgT7N3Z4Q/dBB4LdzGnO6 6A5kFXLqXGsuoU2cWJKos/zqdnLgT5Isuu/kROKIYqgVqUpZ9bLknGY8S+a1wWsoEYprzc 8V9XouzbKBN37oBM1Po7dbE+jBKHgss3TlKtq3/zAeg/zl0TIK8s1RIK1vg2/t9HbgFIlF Xx1zBAtEoxb2th0xwpER+wM5KHlQwIwDrP1ev1QRHj/kveO+Zgh0Q+/9jDt3TyPpDtzhgc kWl/0v9MzCM2T1kZ5ohlAwT1HA4kLXdiSox3Oi5LPii/T+/vgB+tc9YKwyjJoA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1669276077; 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=H8MkVKqMFPY7RVtK+U9IsLl419c2sAFoJ/y3MjxQSoQ=; b=dm1HTwTzfb14QhOpvzna5A+QlMZCATo5SjpzrHiVdvrmBDfMiRk+VG4Xt63Q19hmvvibZW EWq6mQqjOW/OZyDw== From: Anna-Maria Behnsen To: Frederic Weisbecker cc: linux-kernel@vger.kernel.org, Peter Zijlstra , John Stultz , Thomas Gleixner , Eric Dumazet , "Rafael J . Wysocki" , Arjan van de Ven , "Paul E . McKenney" , Frederic Weisbecker , Rik van Riel Subject: Re: [PATCH v4 14/16] timer: Implement the hierarchical pull model In-Reply-To: <20221115113152.GH590078@lothringen> Message-ID: References: <20221104145737.71236-1-anna-maria@linutronix.de> <20221104145737.71236-15-anna-maria@linutronix.de> <20221115113152.GH590078@lothringen> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 15 Nov 2022, Frederic Weisbecker wrote: > On Fri, Nov 04, 2022 at 03:57:35PM +0100, Anna-Maria Behnsen wrote: > > +static int tmigr_cpu_offline(unsigned int cpu) > > +{ > > + struct tmigr_cpu *tmc = this_cpu_ptr(&tmigr_cpu); > > + > > + raw_spin_lock_irq(&tmc->lock); > > + tmc->online = 0; > > + __tmigr_cpu_deactivate(tmc, KTIME_MAX); > > This means that if the CPU is going idle for some time during > the hotplug process (ie: at some point between CPUHP_AP_TMIGR_ONLINE > and CPUHP_TEARDOWN_CPU), then a global timer may be delayed for that long. > > I guess it shouldn't be too bad but worth mentioning... > > Although if it happens to be a problem it could be solved with simply allowing > tmigr_cpu_deactivate() when !tmc->online. The plan was (and I broke it) to let the CPU handle global timers by itself as long as timer migration hierarchy is not completely initialized and as long as CPU is marked offline in timer migration hierarchy. Otherwise global timers might be delayed during this period. The proper way would be that tmigr_cpu_deactivate(nextexp) directly returns nextexp if !tmc->online and tmigr hierarchy is not in place yet. I will have a deeper look if there was a reason why I changed the return to KTIME_MAX... Thanks, Anna-Maria