Index | Thread | Search

From:
Miod Vallat <miod@online.fr>
Subject:
dead code tells no tales, 5/16
To:
tech@openbsd.org
Date:
Sun, 20 Sep 2026 21:06:06 +0000

Download raw body.

Thread
  • Miod Vallat:

    dead code tells no tales, 5/16

This code isn't currently used. I would like to know if dlg@ has evil
plans to use it in the near future; it might be better to #ifdef notyet
that code rather than removing it, in this case.

Index: sys/kern/kern_lock.c
===================================================================
RCS file: /OpenBSD/src/sys/kern/kern_lock.c,v
diff -u -p -u -p -r1.87 kern_lock.c
--- sys/kern/kern_lock.c	30 Aug 2026 23:36:26 -0000	1.87
+++ sys/kern/kern_lock.c	20 Sep 2026 16:47:44 -0000
@@ -699,45 +699,6 @@ pc_sprod_leave(struct pc_lock *pcl, unsi
 	pcl->pcl_gen = ++gen;
 }
 
-#ifdef MULTIPROCESSOR
-unsigned int
-pc_mprod_enter(struct pc_lock *pcl)
-{
-	unsigned int gen, ngen, ogen;
-
-	gen = pcl->pcl_gen;
-	for (;;) {
-		while (gen & 1) {
-			CPU_BUSY_CYCLE();
-			gen = pcl->pcl_gen;
-		}
-
-		ngen = 1 + gen;
-		ogen = atomic_cas_uint(&pcl->pcl_gen, gen, ngen);
-		if (gen == ogen)
-			break;
-
-		CPU_BUSY_CYCLE();
-		gen = ogen;
-	}
-
-	membar_enter_after_atomic();
-	return (ngen);
-}
-
-void
-pc_mprod_leave(struct pc_lock *pcl, unsigned int gen)
-{
-	membar_exit();
-	pcl->pcl_gen = ++gen;
-}
-#else /* MULTIPROCESSOR */
-unsigned int	pc_mprod_enter(struct pc_lock *)
-		    __attribute__((alias("pc_sprod_enter")));
-void		pc_mprod_leave(struct pc_lock *, unsigned int)
-		    __attribute__((alias("pc_sprod_leave")));
-#endif /* MULTIPROCESSOR */
-
 void
 pc_cons_enter(struct pc_lock *pcl, unsigned int *genp)
 {
Index: sys/sys/pclock.h
===================================================================
RCS file: /OpenBSD/src/sys/sys/pclock.h,v
diff -u -p -u -p -r1.1 pclock.h
--- sys/sys/pclock.h	31 May 2025 10:24:50 -0000	1.1
+++ sys/sys/pclock.h	20 Sep 2026 16:47:44 -0000
@@ -35,10 +35,6 @@ void		pc_lock_init(struct pc_lock *);
 unsigned int	pc_sprod_enter(struct pc_lock *);
 void		pc_sprod_leave(struct pc_lock *, unsigned int);
 
-/* multiple (interlocking) producers */
-unsigned int	pc_mprod_enter(struct pc_lock *);
-void		pc_mprod_leave(struct pc_lock *, unsigned int);
-
 /* consumer */
 void		pc_cons_enter(struct pc_lock *, unsigned int *);
 __warn_unused_result int