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>