tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: How to configure flushing klog by syslog
I am trying to use printf() in kernel module for debugging purposes and
I cannot find how to force flushing klog by syslogd.
I found syslogd option -S. Manual page says: "
-S Sync kernel messages to disk immediately.
After adding to rc.conf: syslogd_flags="-S" nothing changes.
Looks like a missing wakeup, so reading from /dev/klog just waits until some
_other_ function chances to wake up the sleeper by calling logwakeup().
Can you try the patch below? If it works, then you can file a PR (I've done
only 2 and the other functions which use the TOLOG flag might need the same
treatment).
---START PATCH---
--- src/sys/kern/subr_prf.c.orig 2023-08-29 21:23:14.000000000 +0000
+++ src/sys/kern/subr_prf.c 2025-01-13 08:37:45.789743655 +0000
@@ -1059,6 +1059,9 @@
va_start(ap, fmt);
vprintf_flags(TOLOG, fmt, ap);
va_end(ap);
+
+ if (!panicstr)
+ logwakeup();
}
/*
@@ -1104,6 +1107,9 @@
va_start(ap, fmt);
vprintf_flags(TOCONS | TOLOG, fmt, ap);
va_end(ap);
+
+ if (!panicstr)
+ logwakeup();
}
/*
---END PATCH---
-RVP
Home |
Main Index |
Thread Index |
Old Index