Date: Wed, 15 Nov 2000 16:49:26 -0800 (PST) From: John Baldwin <jhb@FreeBSD.org> To: smp@FreeBSD.org Subject: Patches to make witness work.. Message-ID: <XFMail.001115164926.jhb@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
[ Bcc'd to -current, send followups to -smp ] I've been spending my time recently trying to get the kernel to boot with witnees turned on. The witness code itself was not broken (with a tiny exception), but our kernel code did have some bugs. However, while fixing the problems witness pointed out, I ended up with a kernel that is not stable on SMP systems (go figure). Part of this may be due to a broken atkbd driver, whose interrupt thread seems to chew up a lot more CPU time than it should be. I've tried to commit as many of the safe changes as I could w/o actually breaking SMP systems. The rest of the patches that are needed are at http://www.FreeBSD.org/~jhb/patches/giant.patch. This patchset does two primary things: 1) It fixes msleep() and mawait() to release the sched_lock before calling CURSIG() and to pick the lock back up again afterwards. 2) It moves the dropping/reacquiring of Giant out of mi_switch() and out into the code that calls mi_switch(). This is needed because Giant needs to be released/reacquired when it is not under the sched_lock Any feedback, etc. is welcome. At the very least, UP systems (both x86 and alpha) appear to be fine with this patch, and can run kernels with witness enabled without any problems. Thus this patch can be used to debug deadlocks, etc. on UP systems at least. -- John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.001115164926.jhb>