Stop scheduler on panic

Andriy Gapon avg at FreeBSD.org
Mon Nov 14 09:58:06 UTC 2011


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Kostik,

thanks a lot!
I am not really sorry for taking part in tricking you into doing this :)
I guess I now own that cognac back :)

on 13/11/2011 10:32 Kostik Belousov said the following:
> I was tricked into finishing the work by Andrey Gapon, who developed the 
> patch to reliably stop other processors on panic.  The patch greatly 
> improves the chances of getting dump on panic on SMP host. Several people 
> already saw the patchset, and I remember that Andrey posted it to some 
> lists.
> 
> The change stops other (*) processors early upon the panic.  This way, no 
> parallel manipulation of the kernel memory is performed by CPUs. In 
> particular, the kernel memory map is static.  Patch prevents the panic 
> thread from blocking and switching out.
> 
> * - in the context of the description, other means not current.
> 
> Since other threads are not run anymore, lock owner cannot release a lock 
> which is required by panic thread.  Due to this, we need to fake a lock 
> acquisition after the panic, which adds minimal overhead to the locking 
> cost. The patch tries to not add any overhead on the fast path of the lock 
> acquire.  The check for the after-panic condition was reduced to single 
> memory access, done only when the quick cas lock attempt failed, and
> braced with __unlikely compiler hint.
> 
> For now, the new mode of operation is disabled by default, since some 
> further USB changes are needed to make USB keyboard usable in that 
> environment.
> 
> With the patch, getting a dump from the machine without debugger compiled 
> in is much more realistic.  Please comment, I will commit the change in 2 
> weeks unless strong reasons not to are given.
> 
> http://people.freebsd.org/~kib/misc/stop_cpus_on_panic.1.patch
> 


- -- 
Andriy Gapon
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJOwOYqAAoJEHSlLSemUf4v8VYH/13H/MXhxOc6Vz6r+M6x4yDn
03/TwS+QO7+689KEWvr5NQjPcV7cI3Ku3UIS3QlSUQIZYhhepJjK1UgQHM7ra5yr
qzXwpEEealJc7GKSjMTIAsjpfcPgRdT66nwymPZWS3ojZJVXYPiGmc4p3uDVrAgv
MnuKOdOVUaeI4tOqYa4wWoCSz++tTpbqIGQrlLTWn8yzhGDvNdj2YTEPoETbrTWO
E/t8r+BPqeE5pkJjEoDMOpdZqzBB/45x5krocVVCWZL8gt5hp7c5CutGe6lsJ3on
Agv5CGyCQb50AmyapDhc/miECtf4qEekFxO3wiqNBTgHxoN2uxvkIMvUhNlxqGg=
=yxdc
-----END PGP SIGNATURE-----


More information about the freebsd-current mailing list