Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Jun 2025 02:42:53 GMT
From:      Olivier Certner <olce@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 3e5aeb20645f - main - runq: Fix printing status word bits
Message-ID:  <202506200242.55K2gr8d093626@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by olce:

URL: https://cgit.FreeBSD.org/src/commit/?id=3e5aeb20645fa0a67ce50d96c5136de14067a944

commit 3e5aeb20645fa0a67ce50d96c5136de14067a944
Author:     Olivier Certner <olce@FreeBSD.org>
AuthorDate: 2025-06-20 02:26:28 +0000
Commit:     Olivier Certner <olce@FreeBSD.org>
CommitDate: 2025-06-20 02:42:11 +0000

    runq: Fix printing status word bits
    
    'rqsw_t' is 'unsigned long', strictly longer than integers on 64-bit
    platforms.
    
    While here, factor out the print format for a status word.
    
    Fixes:          d2ac231616f0 ("Make the run queue parameters machine dependent...")
    MFC after:      1 month
    Event:          Kitchener-Waterloo Hackathon 202506
    Sponsored by:   The FreeBSD Foundation
---
 sys/kern/kern_switch.c | 11 ++++++++---
 sys/sys/runq.h         |  1 +
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/sys/kern/kern_switch.c b/sys/kern/kern_switch.c
index bd0d987594ea..917f73682564 100644
--- a/sys/kern/kern_switch.c
+++ b/sys/kern/kern_switch.c
@@ -326,7 +326,9 @@ runq_sw_set_not_empty_op(int idx, int sw_idx, rqsw_t sw_bit, rqsw_t *swp)
 	rqsw_t old_sw __unused = *swp;
 
 	*swp |= sw_bit;
-	CTR4(KTR_RUNQ, "runq_sw_set_not_empty: idx=%d sw_idx=%d bits=%#x->%#x",
+	CTR4(KTR_RUNQ,
+	    "runq_sw_set_not_empty: idx=%d sw_idx=%d "
+	    "bits=" RQSW_PRI "->" RQSW_PRI,
 	    idx, sw_idx, old_sw, *swp);
 	return (0);
 }
@@ -349,7 +351,9 @@ runq_sw_set_empty_op(int idx, int sw_idx, rqsw_t sw_bit, rqsw_t *swp)
 	rqsw_t old_sw __unused = *swp;
 
 	*swp &= ~sw_bit;
-	CTR4(KTR_RUNQ, "runq_sw_set_empty: idx=%d sw_idx=%d bits=%#x->%#x",
+	CTR4(KTR_RUNQ,
+	    "runq_sw_set_empty: idx=%d sw_idx=%d "
+	    "bits=" RQSW_PRI "->" RQSW_PRI,
 	    idx, sw_idx, old_sw, *swp);
 	return (0);
 }
@@ -525,7 +529,8 @@ last_mask:
 		goto return_idx;
 	return (-1);
 return_idx:
-	CTR4(KTR_RUNQ, "runq_findq: bits=%#x->%#x i=%d idx=%d",
+	CTR4(KTR_RUNQ,
+	    "runq_findq: bits=" RQSW_PRI "->" RQSW_PRI " i=%d idx=%d",
 	    (*rqsw)[i], w, i, idx);
 	return (idx);
 }
diff --git a/sys/sys/runq.h b/sys/sys/runq.h
index fb9b9908fe57..997c131b24b1 100644
--- a/sys/sys/runq.h
+++ b/sys/sys/runq.h
@@ -60,6 +60,7 @@ struct thread;
 
 typedef unsigned long	rqsw_t;		/* runq's status words type. */
 #define	RQSW_BPW	(sizeof(rqsw_t) * NBBY) /* Bits per runq word. */
+#define RQSW_PRI	"%#lx"		/* printf() directive. */
 
 /* Number of status words to cover RQ_NQS queues. */
 #define	RQSW_NB			(howmany(RQ_NQS, RQSW_BPW))



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202506200242.55K2gr8d093626>