Hi mav.

On Sun, 28 Feb 2010 13:31:45 +0900
Norikatsu Shigemura <n...@ninth-nine.com> wrote:
>       I didn't know what's happen.  So I'll report code trace and
>       cam related struct dump with ddb which I made.

        Code trace with printf debug:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
-
periphdriver_init() @sys/cam/cam_periph.c
        -> adainit() @sys/cam/ata/ata_da.c                      OK
        -> probe_periph_init() @sys/cam/scsi/scsi_xpt.c         OK
        -> pmpinit() @sys/cam/ata/ata_pmp.c                     FREEZE
                -> xpt_register_async() @sys/cam/cam_xpt.c
                        -> xpt_for_all_devices() @sys/cam/cam_xpt.c
                                -> xptbustraverse() @sys/cam/cam_xpt.c

        - - - - - in xptbustraverse() - - - - -
        for (bus = (start_bus ? start_bus : TAILQ_FIRST(&xsoftc.xpt_busses));
             bus != NULL;
             bus = next_bus) {
                 next_bus = TAILQ_NEXT(bus, links);

                 mtx_unlock(&xsoftc.xpt_topo_lock);
->               CAM_SIM_LOCK(bus->sim);
freeze at this point, because of not catch lock, in the first loop.
                 retval = tr_func(bus, arg);
                 CAM_SIM_UNLOCK(bus->sim);
                 if (retval == 0)
                          return(retval);
                 mtx_lock(&xsoftc.xpt_topo_lock);
        }
        - - - - - in xptbustraverse() - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
-

        So I dumped following mtx, cam_eb IN (0xc36c88c0, 0xc3770840,
        0xc35df5c0)->sim.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
-
db> show lock 0xc35e5974
 class: spin mutex
 name:
 flags: {SPIN}
 state: {OWNED, CONTESTED}
 owner: 0xc36c8d00 (tid 0, pid -1062090240, "")
db> show lock 0xc35e5774
 class: sleep mutex
 name: ATA state lock
 flags: {DEF}
 state: {UNOWNED}
db> show lock 0xc0be5204
 class: sleep mutex
 name: XPT lock
 flags: {DEF}
 state: {UNOWNED}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
-
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to