Anything weird about size or layout of 'struct thread'?

David O'Brien obrien at freebsd.org
Tue Sep 18 09:44:19 PDT 2007


For a reason I haven't tracked down, this patch results in a panic on
6-STABLE when taking the GENERIC kernel and adding WITNESS, INVARIANTS,
INVARIANT_SUPPORT, MUTEX_DEBUG, KDB, KDB_TRACE, DDB.

Index: sys/proc.h
===================================================================
RCS file: /home/ncvs/src/sys/sys/proc.h,v
retrieving revision 1.432.2.11
diff -u -p -u -1 -r1.432.2.11 proc.h
--- sys/proc.h	4 Sep 2007 22:40:40 -0000	1.432.2.11
+++ sys/proc.h	18 Sep 2007 15:28:11 -0000
@@ -292,2 +292,3 @@ struct thread {
 	u_int64_t	td_sticks;	/* (k) Statclock hits in system mode. */
+	u_int		xx_one;
 	u_int		td_uuticks;	/* (k) Statclock hits (usr), for UTS. */


The Panic(tm) [both on i386 and amd64]:

  Timecounter "TSC" frequency 2192270208 Hz quality 800
  Timecounters tick every 1.000 msec
  panic: mutex sched lock not owned at ../../../kern/kern_fork.c:807
  KDB: stack backtrace:
  kdb_backtrace(c0a3d9d6,c0cd2f40,c0a3c5fc,e6fd2cd0,100,...) at 0xc07641de
  = kdb_backtrace+0x2e
  panic(c0a3c5fc,c0a3c715,c0a39de4,327,c83be4b3,...) at 0xc0744667 =
  panic+0xb7
  _mtx_assert(c0cd2c40,9,c0a39de4,327,ffffffff,...) at 0xc0738ec7 =
  _mtx_assert+0x87
  fork_exit(c07297f0,c84b5c30,e6fd2d38) at 0xc072804a = fork_exit+0x5a
  fork_trampoline() at 0xc099373c = fork_trampoline+0x8
  --- trap 0x1, eip = 0, esp = 0xe6fd2d6c, ebp = 0 ---

It should not be a dependancies or stale issue - as I rm the kernel
compile directory before config'ing the kernel and I still get the panic.

Ideas?

-- 
-- David  (obrien at FreeBSD.org)


More information about the freebsd-hackers mailing list