Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Jun 2003 15:48:51 +0900
From:      Alexander Nedotsukov <bland@mail.ru>
To:        "Matthew N. Dodd" <mdodd@FreeBSD.ORG>
Cc:        threads@FreeBSD.ORG
Subject:   Re: nvidia OpenGL and lib{thr,kse} related crash
Message-ID:  <3EE6D0D3.3020601@mail.ru>
In-Reply-To: <20030610181950.Y67454@sasami.jurai.net>
References:  <3EE5C981.2030408@mail.ru> <20030610181950.Y67454@sasami.jurai.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Matthew N. Dodd wrote:

>Check http://www.minion.de/nvidia.html.
>
Looks like this patches mostly present in ports tree. For my 
undestanding the missed two should prevent memory access after free() 
inside kernel and memory allocation for DMA push buffers. Anyway I'll 
check it later evening when can get closer to my pc.

>
>Also, try 'setenv __GL_SINGLE_THREADED'
>
This just changes backtrace a bit:
(gdb) where
#0  0x28229753 in pthread_main_np () from /usr/lib/libkse.so.1
#1  0x282224a2 in pthread_rwlock_wrlock () from /usr/lib/libkse.so.1
#2  0x28055f16 in rlock_acquire () from /usr/libexec/ld-elf.so.1
#3  0x28052d4a in _rtld_bind () from /usr/libexec/ld-elf.so.1
#4  0x28052791 in _rtld_bind_start () from /usr/libexec/ld-elf.so.1
#5  0x28052b16 in _rtld () from /usr/libexec/ld-elf.so.1

>
>On Tue, 10 Jun 2003, Alexander Nedotsukov wrote:
>  
>
>>I get 100% reproduceable crash in all opengl programs wich seems to be
>>similar to both threading libraries while libc_r works just fine. Here
>>is an info plus more on demand.
>>
>>uname -a
>>FreeBSD bbnest.dyndns.org 5.1-CURRENT FreeBSD 5.1-CURRENT #6: Sun Jun  8
>>21:33:08 JST 2003     bland@bbnest.dyndns.org:/usr/obj/usr/src/sys/SU  i386
>>
>>ports/x11/nvidia-driver installed (w/o LINUX support, with nvagp)
>>
>>backtraces for glxinfo after signal 10, Bus error
>>
>>(gdb) where
>>#0  0x281aa7b3 in pthread_main_np () from /usr/lib/libkse.so.1
>>(gdb) where
>>#0  0x281aa7b3 in pthread_main_np () from /usr/lib/libkse.so.1
>>#1  0x2819fcb9 in pthread_key_create () from /usr/lib/libkse.so.1
>>#2  0x280a3b58 in __nvsym15249 () from /usr/X11R6/lib/libGL.so.1
>>#3  0x2804eb16 in _rtld () from /usr/libexec/ld-elf.so.1
>>
>>(gdb) where
>>#0  0x28221fcd in _pthread_setspecific (key=0, value=0xdeaddeed)
>>    at /usr/src/lib/libthr/thread/thr_spec.c:174
>>#1  0x28122b6d in __nvsym15249 () from /usr/X11R6/lib/libGL.so.1
>>#2  0x28052b16 in _rtld () from /usr/libexec/ld-elf.so.1
>>(gdb) print *pthread
>>$1 = {magic = 134558400, name = 0x0, uniqueid = 0, thr_id = 0x0,
>>savedsig = {__bits = {0, 0, 0, 0}},
>>  crit_ref = 0, lock = {access_lock = 0, lock_owner = 0, fname = 0x0,
>>lineno = 0}, tle = {tqe_next = 0x8051000,
>>    tqe_prev = 0x1592}, dle = {tqe_next = 0xd0d0d0d0, tqe_prev =
>>0xd0d0d0d0}, start_routine = 0xd0d0d0d0,
>>  arg = 0xd0d0d0d0, stack = 0xd0d0d0d0, attr = {sched_policy =
>>-791621424, sched_inherit = -791621424,
>>    sched_interval = -791621424, prio = -791621424, suspend =
>>-791621424, flags = -791621424,
>>    arg_attr = 0xd0d0d0d0, cleanup_attr = 0xd0d0d0d0, stackaddr_attr =
>>0xd0d0d0d0, stacksize_attr = 3503345872,
>>    guardsize_attr = 3503345872}, ctx = {uc_sigmask = {__bits =
>>{3503345872, 3503345872, 3503345872,
>>        3503345872}}, uc_mcontext = {mc_onstack = -791621424, mc_gs =
>>-791621424, mc_fs = -791621424,
>>      mc_es = -791621424, mc_ds = -791621424, mc_edi = -791621424,
>>mc_esi = -791621424, mc_ebp = -791621424,
>>      mc_isp = -791621424, mc_ebx = -791621424, mc_edx = -791621424,
>>mc_ecx = -791621424, mc_eax = -791621424,
>>      mc_trapno = -791621424, mc_err = -791621424, mc_eip = -791621424,
>>mc_cs = -791621424,
>>      mc_eflags = -791621424, mc_esp = -791621424, mc_ss = -791621424,
>>mc_len = -791621424,
>>      mc_fpformat = -791621424, mc_ownedfp = -791621424, mc_spare1 =
>>{-791621424}, mc_fpstate = {
>>        -791621424 <repeats 128 times>}, mc_spare2 = {-791621424,
>>-791621424, -791621424, -791621424,
>>        -791621424, -791621424, -791621424, -791621424}}, uc_link =
>>0xd0d0d0d0, uc_stack = {
>>      ss_sp = 0xd0d0d0d0 <Address 0xd0d0d0d0 out of bounds>, ss_size =
>>3503345872, ss_flags = -791621424},
>>    uc_flags = -791621424, __spare__ = {-791621424, -791621424,
>>-791621424, -791621424}},
>>  cancelflags = -791621424, state = 3503345872, error = -791621424,
>>joiner = 0xd0d0d0d0, join_status = {
>>    thread = 0xd0d0d0d0, ret = 0xd0d0d0d0, error = -791621424}, sqe =
>>{tqe_next = 0xd0d0d0d0,
>>    tqe_prev = 0xd0d0d0d0}, data = {mutex = 0xd0d0d0d0, cond =
>>0xd0d0d0d0, spinlock = 0xd0d0d0d0,
>>    thread = 0xd0d0d0d0}, flags = -791621424, base_priority = -48 '?',
>>inherited_priority = -48 '?',
>>  active_priority = -48 '?', priority_mutex_count = -791621424, mutexq =
>>{tqh_first = 0xd0d0d0d0,
>>    tqh_last = 0xd0d0d0d0}, ret = 0xd0d0d0d0, specific = 0xd0d0d0d0,
>>specific_data_count = -791621424,
>>  arch_id = 0xd0d0d0d0, cleanup = 0xd0d0d0d0, fname = 0xd0d0d0d0
>><Address 0xd0d0d0d0 out of bounds>,
>>  lineno = -791621424}
>>
>>Plus truss output files attached.
>>
>>Hope this will be usefull.
>>
>>All the best,
>>Alexander.
>>
>>ps. please cc me, I not subscribed to this mail list.
>>
>>
>>
>>    
>>
>
>  
>




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