NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

re: port-i386/53364: System crashes soon after X server is started with viadrm driver

> #7  0xc085141b in mutex_oncpu (owner=4294967280) at
> ../../../../kern/kern_mutex.c:551

i see why the fault occurs:

here owner = 0xfffffff0.  that seems bogus because it should
be a pointer.  and l_cpu is offset 12 in struct lwp:

    413 mutex_oncpu(uintptr_t owner)
    [ ... ]
    416         lwp_t *l;
    [ ... ]
    428         l = (lwp_t *)MUTEX_OWNER(owner);
    429         ci = l->l_cpu;

so that explains the 0xfffffffc fault address.

the real question is why is this invalid.  it should be valid.

> #8  mutex_vector_enter (mtx=0xc370edc4) at ../../../../kern/kern_mutex.c:560
> #9  0xc0722bee in via_dmablit_grab_slot (engine=1, blitq=0xc370ed78)
> at ../../../../external/bsd/drm/dist/bsd-core/via_dmablit.c:670
> #10 via_dmablit (xfer=0xdc161eac, dev=0xc3652400) at
> ../../../../external/bsd/drm/dist/bsd-core/via_dmablit.c:723
[ ... ]
> (gdb) print blitq->dev
> $26 = (struct drm_device *) 0xc3652400
> (gdb) print blitq->cur_blit_handle
> $27 = 0
> (gdb) print blitq->done_blit_handle

BTW, you could probably use "print *blitq" here, to view the whole
structure.  if you "set print pretty" first, it will be readable ;)

> Is there anything more I can provide? Thank you.

at this point, i suspect that we have a locking issue and the
first step here is normally to build a kernel with LOCKDEBUG
enabled and see what happens.  it hopefully will crash earlier
and with more information about what is wrong.



Home | Main Index | Thread Index | Old Index