Module Name:    src
Committed By:   riastradh
Date:           Sun Jul 16 10:18:19 UTC 2023

Modified Files:
        src/sys/kern: kern_heartbeat.c

Log Message:
heartbeat(9): For now, use time_uptime without atomic_load_relaxed.

A later commit will change time_uptime to a macro so it is atomic,
using atomc_load_relaxed if possible or seqlock if not.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/kern/kern_heartbeat.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/kern_heartbeat.c
diff -u src/sys/kern/kern_heartbeat.c:1.4 src/sys/kern/kern_heartbeat.c:1.5
--- src/sys/kern/kern_heartbeat.c:1.4	Sun Jul 16 10:18:07 2023
+++ src/sys/kern/kern_heartbeat.c	Sun Jul 16 10:18:19 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_heartbeat.c,v 1.4 2023/07/16 10:18:07 riastradh Exp $	*/
+/*	$NetBSD: kern_heartbeat.c,v 1.5 2023/07/16 10:18:19 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2023 The NetBSD Foundation, Inc.
@@ -78,7 +78,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_heartbeat.c,v 1.4 2023/07/16 10:18:07 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_heartbeat.c,v 1.5 2023/07/16 10:18:19 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ddb.h"
@@ -157,7 +157,7 @@ heartbeat_resume_cpu(struct cpu_info *ci
 	KASSERT(__predict_false(cold) || ci == curcpu());
 
 	ci->ci_heartbeat_count = 0;
-	ci->ci_heartbeat_uptime_cache = atomic_load_relaxed(&time_uptime);
+	ci->ci_heartbeat_uptime_cache = time_uptime;
 	ci->ci_heartbeat_uptime_stamp = 0;
 }
 
@@ -352,7 +352,7 @@ static void
 heartbeat_intr(void *cookie)
 {
 	unsigned count = atomic_load_relaxed(&curcpu()->ci_heartbeat_count);
-	unsigned uptime = atomic_load_relaxed(&time_uptime);
+	unsigned uptime = time_uptime;
 
 	atomic_store_relaxed(&curcpu()->ci_heartbeat_uptime_stamp, count);
 	atomic_store_relaxed(&curcpu()->ci_heartbeat_uptime_cache, uptime);
@@ -579,7 +579,7 @@ heartbeat(void)
 	 * changed, and stop here -- we only do the cross-CPU work once
 	 * per second.
 	 */
-	uptime = atomic_load_relaxed(&time_uptime);
+	uptime = time_uptime;
 	cache = atomic_load_relaxed(&curcpu()->ci_heartbeat_uptime_cache);
 	if (__predict_true(cache == uptime)) {
 		/*

Reply via email to