Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Jan 2020 16:19:59 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 243711] dtrace immediately panics the system if compiled without SMP
Message-ID:  <bug-243711-227-Z3Gmn7bC3k@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-243711-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-243711-227@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D243711

--- Comment #3 from Mark Johnston <markj@FreeBSD.org> ---
(In reply to alex_y_xu from comment #2)
Ah, I think the snapshots have invariants-checking disabled, which would
explain why you're not seeing the problem during boot.

> I want to use a non-SMP kernel because I am on a single-CPU VM and I assu=
me that no-SMP kernels are more efficient.

Fair enough.  Indeed, mtx_lock_spin() does nothing but disable interrupts in
non-SMP FreeBSD kernels (and nothing if they are already disabled).  Non-SMP
kernels definitely aren't as well tested though.  It looks like DTrace has =
been
broken there basically forever: MAXCPU is 256 in kernel modules even when
compiled without SMP:

#if defined(SMP) || defined(KLD_MODULE)=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20
#ifndef MAXCPU=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20
#define MAXCPU          256=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20
#endif=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20
#else=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20
#define MAXCPU          1=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20
#endif=20

... and smp_rendezvous() and other kernel APIs use pass-by-value for cpuset=
_t's
for a reason that is not clear to me.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-243711-227-Z3Gmn7bC3k>