shithub: front

Download patch

ref: 96bf1d3ebd2f9a1051a60e880fb158ea4341b0bc
parent: 40177b86bf5108016fc3a275096e44dc4ada5e9c
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sun Oct 6 12:02:13 EDT 2024

kernel: remove unused lockstats and make lock() return type void

remove the global statistics counters from taslock.c
as they'r not particularily usefull nor precise
and just cause unneccessary cache traffic.

if we want them back, we should place them into
the Mach structure.

also change the lock() function prototype to return void.

--- a/sys/src/9/port/portfns.h
+++ b/sys/src/9/port/portfns.h
@@ -166,7 +166,7 @@
 void		ksetenv(char*, char*, int);
 void		kstrcpy(char*, char*, int);
 void		kstrdup(char**, char*);
-int		lock(Lock*);
+void		lock(Lock*);
 void		logopen(Log*);
 void		logclose(Log*);
 char*		logctl(Log*, int, char**, Logflag*);
--- a/sys/src/9/port/taslock.c
+++ b/sys/src/9/port/taslock.c
@@ -16,13 +16,6 @@
 uintptr ilockpcs[0x100] = { [0xff] = 1 };
 #endif
 
-struct
-{
-	ulong	locks;
-	ulong	glare;
-	ulong	inglare;
-} lockstats;
-
 void
 lockloop(Lock *l, uintptr pc)
 {
@@ -39,7 +32,7 @@
 		dumpaproc(p);
 }
 
-int
+void
 lock(Lock *l)
 {
 	int i;
@@ -47,7 +40,6 @@
 
 	pc = getcallerpc(&l);
 
-	lockstats.locks++;
 	if(up)
 		up->nlocks++;	/* prevent being scheded */
 	if(tas(&l->key) == 0){
@@ -60,14 +52,12 @@
 #ifdef LOCKCYCLES
 		l->lockcycles = -lcycles();
 #endif
-		return 0;
+		return;
 	}
 	if(up)
 		up->nlocks--;
 
-	lockstats.glare++;
 	for(;;){
-		lockstats.inglare++;
 		i = 0;
 		while(l->key){
 			if(conf.nmach < 2 && up && up->edf && (up->edf->flags & Admitted)){
@@ -96,7 +86,7 @@
 #ifdef LOCKCYCLES
 			l->lockcycles = -lcycles();
 #endif
-			return 1;
+			return;
 		}
 		if(up)
 			up->nlocks--;
@@ -110,11 +100,9 @@
 	uintptr pc;
 
 	pc = getcallerpc(&l);
-	lockstats.locks++;
 
 	x = splhi();
 	if(tas(&l->key) != 0){
-		lockstats.glare++;
 		/*
 		 * Cannot also check l->pc, l->m, or l->isilock here
 		 * because they might just not be set yet, or
@@ -121,7 +109,6 @@
 		 * (for pc and m) the lock might have just been unlocked.
 		 */
 		for(;;){
-			lockstats.inglare++;
 			splx(x);
 			while(l->key)
 				;
--