Download raw body.
sysctl(2): unlock KERN_BOOTTIME
On Mon, Aug 05, 2024 at 08:04:56PM +0300, Vitaliy Makkoveev wrote:
> microboottime() and following binboottime() are mp-safe and `mb' is
> local data.
OK bluhm@
> Index: sys/kern/kern_sysctl.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/kern_sysctl.c,v
> diff -u -p -r1.432 kern_sysctl.c
> --- sys/kern/kern_sysctl.c 5 Aug 2024 15:43:58 -0000 1.432
> +++ sys/kern/kern_sysctl.c 5 Aug 2024 17:00:11 -0000
> @@ -507,6 +507,12 @@ kern_sysctl(int *name, u_int namelen, vo
> return (sysctl_rdstring(oldp, oldlenp, newp, version));
> case KERN_NUMVNODES: /* XXX numvnodes is a long */
> return (sysctl_rdint(oldp, oldlenp, newp, numvnodes));
> + case KERN_BOOTTIME: {
> + struct timeval bt;
> + memset(&bt, 0, sizeof bt);
> + microboottime(&bt);
> + return (sysctl_rdstruct(oldp, oldlenp, newp, &bt, sizeof bt));
> + }
> case KERN_MBSTAT: {
> extern struct cpumem *mbstat;
> uint64_t counters[MBSTAT_COUNT];
> @@ -610,12 +616,6 @@ kern_sysctl_locked(int *name, u_int name
> return (error);
> case KERN_CLOCKRATE:
> return (sysctl_clockrate(oldp, oldlenp, newp));
> - case KERN_BOOTTIME: {
> - struct timeval bt;
> - memset(&bt, 0, sizeof bt);
> - microboottime(&bt);
> - return (sysctl_rdstruct(oldp, oldlenp, newp, &bt, sizeof bt));
> - }
> case KERN_MSGBUFSIZE:
> case KERN_CONSBUFSIZE: {
> struct msgbuf *mp;
sysctl(2): unlock KERN_BOOTTIME