[Bug 204178] stress2 on arm64 thr1 hangs after printing pthread_join error

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sat Nov 28 11:41:17 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204178

--- Comment #5 from Andrew Turner <Andrew at FreeBSD.org> ---
I have some code that inspects the state when the issue show up. Below is a
dump of the registers of the only thread in the process.

  x0 = 000000004048fd50
  x1 = 0000000000000011
  x2 = 0000000000000000
  x3 = 0000000000000000
  x4 = 0000000000000000
  x5 = 0000000000000001
  x6 = 0000000000000001
  x7 = 000000000000007f
  x8 = 00000000000001c6
  x9 = 0000000080000000
 x10 = 00000000000187dd
 x11 = 00000000000187dd
 x12 = 0000000000000001
 x13 = 000000004048fcd8
 x14 = 00000000000187dd
 x15 = 0000000000000000
 x16 = 0000000040485df8
 x17 = 00000000404fe8dc
 x18 = 0000000040801530
 x19 = 000000004048fd50
 x20 = 00000000000187dd
 x21 = 0000000040490000
 x22 = 000000004048fd50
 x23 = 0000000000412000
 x24 = 0000000000000000
 x25 = 00000000004014f0
 x26 = 0000000000000000
 x27 = 0000000000000000
 x28 = 0000000000000000
 x29 = 0000007fffffee50
  lr = 0000000040466eb0
  sp = 0000007fffffee40
 elr = 00000000404fe8e0
spsr = 90000000

I looked at the data passed to the kernel in x0 and found the owner of the lock
to be the current thread. I also looked at a stack trace and found we entered
the lock by the following calls:

_pthread_create -> _thr_alloc -> __thr_umutex_lock -> _umtx_op

The lock in _thr_alloc is, as far as I can tell, the only place within this
function we acquire this lock, and is protecting _tcb_ctor.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the freebsd-threads mailing list