Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Call for testing: New kernel heartbeat(9) checks



> Date: Fri, 7 Jul 2023 17:56:42 +0200
> From: Manuel Bouyer <bouyer%antioche.eu.org@localhost>
> 
> On Fri, Jul 07, 2023 at 01:11:54PM +0000, Taylor R Campbell wrote:
> > - The magic numbers for debug.crashme.spl_spinout are for evbarm.
> >   On x86, use IPL_SCHED=7, IPL_VM=6, and IPL_SOFTCLOCK=1.

Correction: IPL_SOFTCLOCK=2.

> > 1.	cpuctl offline 0
> > 	sleep 20
> > 	cpuctl online 0
> 
> With this I get a panic on Xen:
> [ 225.4605386] panic: kernel diagnostic assertion "kpreempt_disabled()" failed: file "/dsk/l1/misc/bouyer/HEAD/clean/src/sys/kern/kern_heartbeat.c", line 158
> [...]
> [  53.5704682] panic: kernel diagnostic assertion "kpreempt_disabled()" failed: file "/dsk/l1/misc/bouyer/HEAD/clean/src/sys/kern/kern_heartbeat.c", line 158

This was a mistake that arose because I was testing on aarch64 where
kpreempt_disabled() is always true.  Update and try again, please!

sys/kern/kern_heartbeat.c 1.2
sys/kern/subr_xcall.c 1.36

> > 4.	sysctl -w debug.crashme_enable=1
> > 	sysctl -w debug.crashme.spl_spinout=1   # IPL_SOFTCLOCK
> > 	# verify system panics after 15sec
> 
> my sysctl command did hang, but the system didn't panic

Right -- I made a mistake in my call for testing.  On x86,
IPL_SOFTCLOCK is 2, not 1, which is IPL_PREEMPT, a special ipl that
doesn't apply here.  So use this instead on x86:

sysctl -w debug.crashme.spl_spinout=2

(Not sure if it's different on Xen -- if it is, use whatever
IPL_SOFTCLOCK is there.)

> > 5.	sysctl -w debug.crashme_enable=1
> > 	sysctl -w debug.crashme.spl_spinout=6   # IPL_SCHED
> > 	# verify system panics after 15sec
> 
> This one did panic

Great!

> > 6.	cpuctl offline 0
> > 	sysctl -w debug.crashme_enable=1
> > 	sysctl -w debug.crashme.spl_spinout=1   # IPL_SOFTCLOCK
> > 	# verify system panics after 15sec
> 
> my sysctl command did hang, but the system didn't panic

Same as with (4), use 2 instead of 1 here (or whatever is the right
value on Xen).

> > 7.	cpuctl offline 0
> > 	sysctl -w debug.crashme_enable=1
> > 	sysctl -w debug.crashme.spl_spinout=5   # IPL_VM
> > 	# verify system panics after 15sec
> 
> and this one did panic

Great, thanks!


Home | Main Index | Thread Index | Old Index