[Prev][Next][Index][Thread]

Re: OSKit profiling problems



> From: Britt Bolen <bolen@eecs.harvard.edu>
> Subject: OSKit profiling problems
> 
> We're trying to profile a kernel built against oskit-19991124.  We've
> built a profiled version of all the libraries etc, and have been able to
> link in oskit-gprof and got past all the voodoo in the library order in
> the Makefiles to get it to work, but now when we boot up the kernel it
> immediately assertion fails
> 
> dev/x86/pic.c:35 irq!= IRQ_RTC,

Sorry for the delay. I guess all of us thought someone else was going to
take care of it. Anyway, try applying this patch. Cd into your oskit source
directory and do "patch < thisdiff", where the diff is appended below.
Then rebuild and install your oskit.

Lbs

---

Index: dev/x86/irq.c
===================================================================
RCS file: /usr/lsrc/flux/CVS/oskit/dev/x86/irq.c,v
retrieving revision 1.31
diff -c -r1.31 irq.c
*** irq.c	1999/11/09 23:38:20	1.31
--- irq.c	2000/01/13 17:43:20
***************
*** 19,24 ****
--- 19,25 ----
  #include <oskit/x86/proc_reg.h>
  #include <oskit/x86/eflags.h>
  #include <oskit/x86/pc/base_irq.h>
+ #include <oskit/x86/pc/irq_list.h>
  #include <stdio.h>
  
  /* linked list of functions for an IRQ */
***************
*** 88,94 ****
  
  	if (irq < 0 || irq >= BASE_IRQ_COUNT)
  		return OSKIT_EINVAL;
! 
  	/*
  	 * This is a blocking operation,
  	 * so to avoid races we need to do it
--- 89,99 ----
  
  	if (irq < 0 || irq >= BASE_IRQ_COUNT)
  		return OSKIT_EINVAL;
! #ifdef GPROF
! 	/* Profiling steals the RTC, so do not let someone have it. */
! 	if (irq == IRQ_RTC)
! 		return OSKIT_EBUSY;
! #endif
  	/*
  	 * This is a blocking operation,
  	 * so to avoid races we need to do it