Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Oct 2000 14:16:03 -0400 (EDT)
From:      Andrew Gallatin <gallatin@cs.duke.edu>
To:        mjacob@feral.com
Cc:        John Baldwin <jhb@FreeBSD.org>, cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org
Subject:   Re: cvs commit: src/sys/alpha/alpha ipl_funcs.c
Message-ID:  <14819.23491.459420.440408@grasshopper.cs.duke.edu>
In-Reply-To: <Pine.LNX.4.21.0010101103250.739-100000@zeppo.feral.com>
References:  <20001010200606.A8244@freebie.demon.nl> <Pine.LNX.4.21.0010101103250.739-100000@zeppo.feral.com>

next in thread | previous in thread | raw e-mail | index | archive | help




Matthew Jacob writes:
 > 
 > YMMV mucho...I just had done a clean rebuild/reboot, and my PC164 doesn't come
 > up but instead I get (below)- slowly getting up. This is fascinating. It's
 > almost as if the ithread scheduler is really broken and only occasionally
 > let's a thread run:

To me, it sounds like what might happen if there was an unmasked
interrupt firing all the time.  Have you tried John's verbose ktr
patch and associated goop?  To repost what he said on Friday:

jhb> I had this same hang when the PCI interrupts weren't be properly turned off
jhb> when we schedule an ithread to run.  One easy way to configure is to grab
jhb> http://www.FreeBSD.org/~jhb/patches/ktr_verbose.patch and apply it.  Then,
jhb> disable the CTR0() for the clock interrupt in sys/alpha/alpha/interrupt.c
jhb> (it's far too noisy), and add this hack to sys/cam/cam_xpt.c:
jhb> 
jhb> Index: cam_xpt.c
jhb> ===================================================================
jhb> RCS file: /usr/cvs/src/sys/cam/cam_xpt.c,v
jhb> retrieving revision 1.93
jhb> diff -u -r1.93 cam_xpt.c
jhb> --- cam_xpt.c   2000/10/05 23:09:50     1.93
jhb> +++ cam_xpt.c   2000/10/06 19:10:59
jhb> @@ -40,6 +40,7 @@
jhb>  #include <sys/md5.h>
jhb>  #include <sys/devicestat.h>
jhb>  #include <sys/interrupt.h>
jhb> +#include <sys/ktr.h>
jhb> 
jhb>  #ifdef PC98
jhb>  #include <pc98/pc98/pc98_machdep.h>    /* geometry translation */
jhb> @@ -6119,6 +6120,7 @@
jhb>                         printf("Waiting %d seconds for SCSI "
jhb>                                "devices to settle\n", SCSI_DELAY/1000);
jhb>                 }
jhb> +               ktr_verbose = 1;
jhb>                 xpt_for_all_busses(xptconfigfunc, NULL);
jhb>         }
jhb>  }
jhb> 
jhb> This will basically dump the ktr output to the console, and should show
jhb> an endless loop of PCI interrupts being scheduled.  You will also need
jhb> to add the following options to your kernel:
jhb> 
jhb> options         KTR
jhb> options         KTR_ENTRIES=1024
jhb> options         KTR_MASK=KTR_INTR
jhb> options         KTR_COMPILE=0x3fffff
jhb> options         KTR_EXTEND



Drew


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?14819.23491.459420.440408>