From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8BC493FC5A1 for ; Wed, 3 Jun 2026 09:27:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780478860; cv=none; b=Ghm9Owr5SKQNRwGClcRyeUfAQDtDzYhFuWiKI2WS+t6cUnknS1K+igS3+L2d1UfQS28oJhgBzaZibesKlq0ZI6IBEqQ1RbEtvNCM70WuiIhrKHI35w83932LjiaxNj49aiZsgzcGdaALwjY/rUSwPB1/6U/P6wCcUe68ggeJivE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780478860; c=relaxed/simple; bh=n40STx2j2Y1aKPVPb59f4HhqkzmKpuhc/tHMS+wRIHc=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=EoaC0IDaemG4dFCtFVfkDCFtmeqk3v2KU3MNqSAhQi9530xvDU+xUWNGUdYyW8QsK529+NGOuVSFljJfl3MHZuekL5AKZ8chGmB5kdDTSGPA+j+Mmavp+XrckGiNT0885LNRJVhD+jCkjLbKl2Kt9luM1sY6OgmlPIBV3gp0snY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=RF6EXAkq; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=I+KeDDSs; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="RF6EXAkq"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="I+KeDDSs" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780478856; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kg201aB2g0CfhdRUzjaTrOExYQbt1OldzNxV8zTL04g=; b=RF6EXAkqhQYTsEUR9ZgF7exQm9hHmkjA8lcUVhIj4HpRSivuRSzU7Yhjk2mSt+LLioqBiS H5oOSxEuCOiG2DwQb502VC+MsNRUN4Hq/35Q5xqj5WcogFUYkCI5a5b3e8WvPNs9Vy3dLl 3RaeBoNPEyYfoLS2hm+/XnwFfLj5cws= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-126-w3gkXuV0M1m-_3VbUesLPw-1; Wed, 03 Jun 2026 05:27:35 -0400 X-MC-Unique: w3gkXuV0M1m-_3VbUesLPw-1 X-Mimecast-MFC-AGG-ID: w3gkXuV0M1m-_3VbUesLPw_1780478854 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-4908af8d7f9so55555815e9.1 for ; Wed, 03 Jun 2026 02:27:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1780478854; x=1781083654; darn=vger.kernel.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=kg201aB2g0CfhdRUzjaTrOExYQbt1OldzNxV8zTL04g=; b=I+KeDDSsNTBXMKbwjjrwGqWYf0T50qx1dnxxNPc6vPEhdjLxRTKTh8K/TchIrVRxAY XImWt84R1l2hl2djkq70um+RcbX7IlzphDoAdaa9+pC2o3Q4sKdPt5ZXik66YmOSaGW5 qPUbpw5TGptUcGR4lj0OGZA56GzEVFeGTFkYFpcVwNoNq+nTZuRSyn30pXijAH3Pmij1 zZz3Q++3VoOhx7kT7/kfa2htUFeRSThEJaA+SGF/oGitr8UTItKfKZRQDf62XPzfVyd8 vLn0ELTFxgQ6+40VexrWxQoUZgo5fMCKOJXN4574hbo8+pTRRdqfWj94aounF2e9WQQw noiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780478854; x=1781083654; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kg201aB2g0CfhdRUzjaTrOExYQbt1OldzNxV8zTL04g=; b=npR1Gm0Pa/PM3cndK2frPhxFr9iwC2am/g1rOqkPSVUtv5WoFHb6oWmFGKlquJ0IDQ 6I7yAaV1Me1eOxyqLq22RWp2sBiW1iVmtHwphiOD8IveSbnyAQxajYJ0FKYn211rxL96 GymNnCiH4/yMwE7oy44TaewQu3PiIFrLSAwxC0m/CmhAX/tKVe5wCn71jHghHY8xUq0X aOPiJPLz7FgX2IFNSVcfnGo2NQwaVOCSlUmudYNxZl5uI4OvGKw27TK+t5NoZPlOFWVP Qcvfi3UtXs1azs1aBwB6Scaar9zvuzoiNMtpAhCo9Bbp3Ec+wzbdLQQBltXF7cVIwdZf U9HQ== X-Forwarded-Encrypted: i=1; AFNElJ89V1a4rcBaffEH6YpOKrMkBu/5nyoceqKjQs5+mAjl1/tPBRK/l5tXJIaIgeo/CCe5n+8ZFzRZoKl1cu0=@vger.kernel.org X-Gm-Message-State: AOJu0YzHL/U9uYA1FxAFzwWNIp+J5sPwFeMb8xNk9d8YhfQ5poil6mvb tFQJgDp5iQ6mohCAq5kw3SWnOtLHuHxNM1qRfOsx/wZUeiXHfoc1GY8P3kSa++0jJO3O5bi5gC0 ZicW8sKRNVhLYqOFHV+6o6OcZiTULIodOOlujXXAKx5wYMTlf3xRz8Ie/W10/wOkMgA== X-Gm-Gg: Acq92OHXlkfV8FnMZl7nOrid70IIb/pjmNRIX4VVGfltCwltbeJYDPr5g1YSz6sKBRS WEaxOJttrV0CjWKS8Ibh7ZDXo432udoAwX7/suMnB29UYyBcmeHD7gSNHnUrpDDGMj1HySVEX22 g6ve+iQ/wHRWI/pEVnyaQzOkoeZ1a8kOc/ZP8DKlmnAjrKYuDhwBTnDMdiRmz415U1/fMuXMaMP HWQcBjNx4FH5g86ApgMf52kzSoZukiK7ss8mCCFpvW3nFa42o6EqGxRDRyyHwX0X6a2IdZuWSAb PdPcsVt8amR50hhibd+hQlnBBEI+E/Jqe5uFB2BVyB+dJsNmf+mUf8H1gvXNx/edWBTey56uSfF bdns7eDNv75/btyTyJCpbEBb+jKEPcLMo6KkR X-Received: by 2002:a05:600c:1551:b0:490:9d1b:2022 with SMTP id 5b1f17b1804b1-490b5e805aemr44440995e9.13.1780478854063; Wed, 03 Jun 2026 02:27:34 -0700 (PDT) X-Received: by 2002:a05:600c:1551:b0:490:9d1b:2022 with SMTP id 5b1f17b1804b1-490b5e805aemr44440455e9.13.1780478853676; Wed, 03 Jun 2026 02:27:33 -0700 (PDT) Received: from [192.168.1.167] ([185.168.96.228]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-490b79d64e8sm35546855e9.0.2026.06.03.02.27.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Jun 2026 02:27:33 -0700 (PDT) Message-ID: Subject: Re: [PATCH v2 07/13] rv: Simply hybrid automata monitors's clock variables From: Gabriele Monaco To: Nam Cao Cc: Wander Lairson Costa , Steven Rostedt , linux-trace-kernel@vger.kernel.org, linux-kernel@vger.kernel.org Date: Wed, 03 Jun 2026 11:27:32 +0200 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.60.1 (3.60.1-1.fc44) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 s/Simply/Simplify/ from the patch title. On Thu, 2026-05-28 at 10:27 +0200, Nam Cao wrote: > =C2=A0/* > @@ -389,14 +357,14 @@ static inline void ha_setup_timer(struct > ha_monitor *ha_mon) > =C2=A0static inline void ha_start_timer_jiffy(struct ha_monitor *ha_mon, > enum envs env, > =C2=A0 u64 expire, u64 time_ns) > =C2=A0{ > - u64 passed =3D ha_invariant_passed_jiffy(ha_mon, env, expire, > time_ns); > + u64 passed =3D ha_invariant_passed_jiffy(ha_mon, env, > time_ns); > =C2=A0 > =C2=A0 mod_timer(&ha_mon->timer, get_jiffies_64() + expire - > passed); > =C2=A0} > =C2=A0static inline void ha_start_timer_ns(struct ha_monitor *ha_mon, enu= m > envs env, > =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0 u64 expire, u64 time_ns) > =C2=A0{ > - u64 passed =3D ha_invariant_passed_ns(ha_mon, env, expire, > time_ns); > + u64 passed =3D ha_invariant_passed_ns(ha_mon, env, time_ns); > =C2=A0 > =C2=A0 ha_start_timer_jiffy(ha_mon, ENV_MAX_STORED, > =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0 nsecs_to_jiffies(expire - passed + > TICK_NSEC - 1), time_ns); > @@ -438,7 +406,7 @@ static inline void ha_start_timer_ns(struct > ha_monitor *ha_mon, enum envs env, > =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0 u64 expire, u64 time_ns) > =C2=A0{ > =C2=A0 int mode =3D HRTIMER_MODE_REL_HARD; > - u64 passed =3D ha_invariant_passed_ns(ha_mon, env, expire, > time_ns); > + u64 passed =3D ha_invariant_passed_ns(ha_mon, env, time_ns); > =C2=A0 You need to remove expire also for ha_invariant_passed_jiffy in the hrtimer flavour (just set HA_TIMER_HRTIMER in stall and you see it won't compile). Jiffy granularity monitors with hrtimers are an unlikely usecase but still supported. Other than that it looks good. Reviewed-by: Gabriele Monaco Thanks, Gabriele > =C2=A0 if (RV_MON_TYPE =3D=3D RV_MON_PER_CPU) > =C2=A0 mode |=3D HRTIMER_MODE_PINNED; > diff --git a/kernel/trace/rv/monitors/nomiss/nomiss.c > b/kernel/trace/rv/monitors/nomiss/nomiss.c > index a0b5641a1858..19d0e9aa4d58 100644 > --- a/kernel/trace/rv/monitors/nomiss/nomiss.c > +++ b/kernel/trace/rv/monitors/nomiss/nomiss.c > @@ -57,24 +57,12 @@ static inline bool ha_verify_invariants(struct > ha_monitor *ha_mon, > =C2=A0 enum states next_state, u64 > time_ns) > =C2=A0{ > =C2=A0 if (curr_state =3D=3D ready_nomiss) > - return ha_check_invariant_ns(ha_mon, clk_nomiss, > time_ns); > + return ha_check_invariant_ns(ha_mon, clk_nomiss, > time_ns, DEADLINE_NS(ha_mon)); > =C2=A0 else if (curr_state =3D=3D running_nomiss) > - return ha_check_invariant_ns(ha_mon, clk_nomiss, > time_ns); > + return ha_check_invariant_ns(ha_mon, clk_nomiss, > time_ns, DEADLINE_NS(ha_mon)); > =C2=A0 return true; > =C2=A0} > =C2=A0 > -static inline void ha_convert_inv_guard(struct ha_monitor *ha_mon, > - enum states curr_state, enum > events event, > - enum states next_state, u64 > time_ns) > -{ > - if (curr_state =3D=3D next_state) > - return; > - if (curr_state =3D=3D ready_nomiss) > - ha_inv_to_guard(ha_mon, clk_nomiss, > DEADLINE_NS(ha_mon), time_ns); > - else if (curr_state =3D=3D running_nomiss) > - ha_inv_to_guard(ha_mon, clk_nomiss, > DEADLINE_NS(ha_mon), time_ns); > -} > - > =C2=A0static inline bool ha_verify_guards(struct ha_monitor *ha_mon, > =C2=A0 =C2=A0=C2=A0=C2=A0 enum states curr_state, enum > events event, > =C2=A0 =C2=A0=C2=A0=C2=A0 enum states next_state, u64 > time_ns) > @@ -122,8 +110,6 @@ static bool ha_verify_constraint(struct > ha_monitor *ha_mon, > =C2=A0 if (!ha_verify_invariants(ha_mon, curr_state, event, > next_state, time_ns)) > =C2=A0 return false; > =C2=A0 > - ha_convert_inv_guard(ha_mon, curr_state, event, next_state, > time_ns); > - > =C2=A0 if (!ha_verify_guards(ha_mon, curr_state, event, next_state, > time_ns)) > =C2=A0 return false; > =C2=A0 > diff --git a/kernel/trace/rv/monitors/stall/stall.c > b/kernel/trace/rv/monitors/stall/stall.c > index 9ccfda6b0e73..1aa65d7e690d 100644 > --- a/kernel/trace/rv/monitors/stall/stall.c > +++ b/kernel/trace/rv/monitors/stall/stall.c > @@ -38,7 +38,7 @@ static inline bool ha_verify_invariants(struct > ha_monitor *ha_mon, > =C2=A0 enum states next_state, u64 > time_ns) > =C2=A0{ > =C2=A0 if (curr_state =3D=3D enqueued_stall) > - return ha_check_invariant_jiffy(ha_mon, clk_stall, > time_ns); > + return ha_check_invariant_jiffy(ha_mon, clk_stall, > time_ns, threshold_jiffies); > =C2=A0 return true; > =C2=A0} > =C2=A0