From owner-freebsd-current Wed Nov 15 16:48:59 2000 Delivered-To: freebsd-current@freebsd.org Received: from pike.osd.bsdi.com (pike.osd.bsdi.com [204.216.28.222]) by hub.freebsd.org (Postfix) with ESMTP id 3408537B4C5; Wed, 15 Nov 2000 16:48:55 -0800 (PST) Received: from laptop.baldwin.cx (john@jhb-laptop.osd.bsdi.com [204.216.28.241]) by pike.osd.bsdi.com (8.11.0/8.9.3) with ESMTP id eAG0mlB39691; Wed, 15 Nov 2000 16:48:47 -0800 (PST) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 Date: Wed, 15 Nov 2000 16:49:26 -0800 (PST) From: John Baldwin To: smp@FreeBSD.org Subject: Patches to make witness work.. Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG [ 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 -- 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