Received: by 2002:a05:6a10:9afc:0:0:0:0 with SMTP id t28csp4154066pxm; Tue, 1 Mar 2022 12:25:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJz3JE1La1rkBvf5xHNHggtdnUR33RwCJAdXdApoxXxgydTFluWOrUT3VZ3YI4Qd6smB34s6 X-Received: by 2002:a17:902:b289:b0:14f:ebc2:8b85 with SMTP id u9-20020a170902b28900b0014febc28b85mr26694834plr.39.1646166359088; Tue, 01 Mar 2022 12:25:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646166359; cv=none; d=google.com; s=arc-20160816; b=Z9mEjbvrq81AnQoKYU4uM/9joRi/f0pyPz7vJcLD9HQpML3YklMKdRfgIK2VsrKk8p GslQPN+A8BugLm492EknWC6oWbpltYp1bASOI5s0DWD4b+vf4kRQagpdV8nGi4n7wyo9 VXnw4zIePvYVXQVcw/0gOvLUeOwu7LEZn6oH/EFoIrxcuxYtl/jZ7mNt41Tk5FYMhvla oS7aWBIANA27kLxDObAOlUuZ1nsYxaSfPIF11Qvnv0D+cDGhKWP7prySvb5Omj+93Hvv QSJNVZHUtEEMJhvukkgod6hk9gOsT5WcRCfIoIJvguklOQ2f3ew3yt6xoRvFsQKM4AsH Wn0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=Tpxjx+cLGwnpZuGWWsd8bq3SqDMuXWkjLsPdvaVdeCI=; b=ghZeeG856STKJSpS5ReA0ypJATjGnyFpFtsJRa0/GngLPMmck1hPSVb3mPR/gHuV13 4X+hE03aU0iPnCvcj1LIKk0LeIFhMB6jhFyUNmkB+ULCUOoUeA8L6DoIPJHQ3hyYIbxY xUr4VEZ4PEYlsi5fWUCPpT7M4TESwpUIK9E+KDdGJO8VXCM+5YKSdoikxsjiGkC32vDm 1BZg6PCLxRBjuCgKD5jnFsmgy9oVIo6aqmCgRzSb8RRJuhBH8WAvbaesTYGfYSiTthKN s0KgvQi1G6jJV7B812ghHgOggnARqaygW3VhZNgGO6paAXjL5QK6m9FYdt4xWcsVcZn4 7WBg== ARC-Authentication-Results: i=1; mx.google.com; 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=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u36-20020a056a0009a400b004e67f338fa2si14595045pfg.15.2022.03.01.12.25.43; Tue, 01 Mar 2022 12:25:59 -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; 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=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237054AbiCASqd (ORCPT + 99 others); Tue, 1 Mar 2022 13:46:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56952 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237205AbiCASpw (ORCPT ); Tue, 1 Mar 2022 13:45:52 -0500 Received: from gateway34.websitewelcome.com (gateway34.websitewelcome.com [192.185.148.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4AECB6A06F for ; Tue, 1 Mar 2022 10:44:43 -0800 (PST) Received: from cm14.websitewelcome.com (cm14.websitewelcome.com [100.42.49.7]) by gateway34.websitewelcome.com (Postfix) with ESMTP id B25D211B400 for ; Tue, 1 Mar 2022 12:44:42 -0600 (CST) Received: from gator4132.hostgator.com ([192.185.4.144]) by cmsmtp with SMTP id P7UIn3tVVHnotP7UInejSJ; Tue, 01 Mar 2022 12:44:42 -0600 X-Authority-Reason: nr=8 Received: from host-95-232-30-176.retail.telecomitalia.it ([95.232.30.176]:40042 helo=[10.0.0.45]) by gator4132.hostgator.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1nP7UI-004D9R-1S; Tue, 01 Mar 2022 12:44:42 -0600 Message-ID: Date: Tue, 1 Mar 2022 19:44:38 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH] tracing/osnoise: Force quiescent states while tracing Content-Language: en-US To: paulmck@kernel.org, Nicolas Saenz Julienne Cc: rostedt@goodmis.org, mingo@redhat.com, linux-kernel@vger.kernel.org, mtosatti@redhat.com References: <20220228141423.259691-1-nsaenzju@redhat.com> <137d3573-051f-5374-70d6-cc99b44d00da@kernel.org> <69e92bc6-0917-17e9-1b61-d884d30ba42c@kernel.org> <20220301180509.GQ4285@paulmck-ThinkPad-P17-Gen-1> From: Daniel Bristot de Oliveira In-Reply-To: <20220301180509.GQ4285@paulmck-ThinkPad-P17-Gen-1> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator4132.hostgator.com X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - kernel.org X-BWhitelist: no X-Source-IP: 95.232.30.176 X-Source-L: No X-Exim-ID: 1nP7UI-004D9R-1S X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: host-95-232-30-176.retail.telecomitalia.it ([10.0.0.45]) [95.232.30.176]:40042 X-Source-Auth: kernel@bristot.me X-Email-Count: 2 X-Source-Cap: YnJpc3RvdG1lO2JyaXN0b3RtZTtnYXRvcjQxMzIuaG9zdGdhdG9yLmNvbQ== X-Local-Domain: no X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_SOFTFAIL, T_SCC_BODY_TEXT_LINE autolearn=no 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 3/1/22 19:05, Paul E. McKenney wrote: >> I see, as long as it costs < 1 us, I am ok. If it gets > 1us in a reasonably >> fast machine, we start see HW noise where it does not exist, and that would >> reduce the resolution of osnoise. AFAICS, it is not causing that problem, but we >> need to make it as lightweight as possible. > In the common case, it is atomically incrementing a local per-CPU counter > and doing a store. This should be quite cheap. > > The uncommon case is when the osnoise process was preempted or otherwise > interfered with during a recent RCU read-side critical section and > preemption was disabled around that critical section's outermost > rcu_read_unlock(). This can be quite expensive. But I would expect > you to just not do this. ;-) Getting the expensive call after a preemption is not a problem, it is a side effect of the most costly preemption. It this case, we should "ping rcu" before reading the time to account the overhead for the previous preemption which caused it. like (using the current code as example): ------------------------- %< ------------------------------- static u64 set_int_safe_time(struct osnoise_variables *osn_var, u64 *time) { u64 int_counter; do { int_counter = local_read(&osn_var->int_counter); ------------> HERE <------------------------------------- /* synchronize with interrupts */ barrier(); *time = time_get(); /* synchronize with interrupts */ barrier(); } while (int_counter != local_read(&osn_var->int_counter)); return int_counter; } ------------------------- >% ------------------------------- In this way anything that happens before this *time is accounted before it is get. If anything happens while this loop is running, it will run again, so it is safe to point to the previous case. We would have to make a copy of this function, and only use the copy for the run_osnoise() case. A good name would be something in the lines of set_int_safe_time_rcu(). (Unless the expensive is < than 1us.) -- Daniel