List Info

Thread: src/sys/dev/sbp_targ.c src/sys/cam/cam_ccb.h




src/sys/dev/sbp_targ.c src/sys/cam/cam_ccb.h
country flaguser name
United States
2007-12-06 17:22:37
Hidetoshi:

Here are some patches I came up with that update sbp_targ to
work with 
FreeBSD 6.  I added a new XPORT type for FireWire, added a
no op for 
XPT_SET_TRAN_SETTINGS and coded(stolen from sbp.c) to do
"stuff".  I've 
added a couple of printf's for my own logging, but they are
useful for 
others.

I wrote a small shell script that I'm using with my
testing(see attached 
start_firewire.sh). 

I've attached my kernel configuration for your review(see
attached file 
BRUNO).

I've also noted a witness error in sbp_targ that looks like
a Giant failure:

pci0: driver 
added                                                       
     
found-> vendor=0x8086, dev=0x27d8, 
revid=0x01                                  
        bus=0, slot=27, 
func=0                                                 
        class=04-03-00, hdrtype=0x00, 
mfdev=0                                  
        cmdreg=0x0006, statreg=0x0010, cachelnsz=16 
(dwords)                   
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns),
maxlat=0x00 (0 
ns)           
        intpin=a, 
irq=16                                                      

        powerspec 2  supports D0 D3  current 
D0                                
        MSI supports 1 message, 64 
bit                                         
pci0:27:0: reprobing on driver 
added                                           
found-> vendor=0x8086, dev=0x27da, 
revid=0x01                                  
        bus=0, slot=31, 
func=3                                                 
        class=0c-05-00, hdrtype=0x00, 
mfdev=0                                  
        cmdreg=0x0001, statreg=0x0280, cachelnsz=0 
(dwords)                    
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns),
maxlat=0x00 (0 
ns)           
        intpin=b, 
irq=19                                                      

pci0:31:3: reprobing on driver 
added                                           
pci1: driver 
added                                                       
     
found-> vendor=0x17cc, dev=0x2280, 
revid=0x01                                  
        bus=1, slot=9, 
func=0                                                  
        class=0c-03-fe, hdrtype=0x00, 
mfdev=0                                  
        cmdreg=0x0006, statreg=0x0200, cachelnsz=16 
(dwords)                   
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns),
maxlat=0x00 (0 
ns)           
        intpin=a, 
irq=17                                                      

pci1:9:0: reprobing on driver 
added                                            
found-> vendor=0x1106, dev=0x3044, 
revid=0xc0                                  
        bus=1, slot=10, 
func=0                                                 
        class=0c-00-10, hdrtype=0x00, 
mfdev=0                                  
        cmdreg=0x0007, statreg=0x0210, cachelnsz=16 
(dwords)                   
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns),
maxlat=0x20 (8000 
ns)        
        intpin=a, 
irq=18                                                      

        powerspec 2  supports D0 D2 D3  current 
D0                             
pci1:10:0: reprobing on driver 
added                                           
fwohci0: <VIA Fire II (VT6306)> port 0xef00-0xef7f mem

0xfdeff000-0xfdeff7ff ir1
fwohci0: Reserved 0x800 bytes for rid 0x10 type 3 at 
0xfdeff000                
fwohci0: 
[GIANT-LOCKED]                                              
         
fwohci0: OHCI version 1.0 
(ROM=1)                                              
fwohci0: No. of Isochronous channels is 
4.                                     
fwohci0: EUI64 
00:00:00:30:1b:44:b6:f5                                     
   
fwohci0: Phy 1394a available S400, 2 
ports.                                    
fwohci0: Link S400, max_rec 2048 
bytes.                                        
firewire0: <IEEE1394(FireWire) bus> on 
fwohci0                                 
fwohci0: Initiate bus 
reset                                                    
fwohci0: BUS 
reset                                                       
     
fwohci0: node_id=0x8800ffc0, gen=1, non CYCLEMASTER 
mode                       
firewire0: 2 nodes, maxhop <= 1, cable IRM = 
1                                 
sbp_targ0: <SBP-2/SCSI over FireWire target mode> on 
firewire0                 
Blackhole set due to target id == 
-1                                           
(targbh0:sbp_targ0:0:-1:-1): Lun now enabled for target 
mode                   
fwohci0: Initiate bus 
reset                                                    
fwohci0: BUS 
reset                                                       
     
fwohci0: node_id=0xc800ffc1, gen=2, CYCLEMASTER 
mode                           
firewire0: 2 nodes, maxhop <= 1, cable IRM = 1 
(me)                            
firewire0: bus manager 1 
(me)                                                  
lstate for lun is invalid, target(0), 
lun(0)                                   
lstate for lun is invalid, target(0), 
lun(0)                                   
lstate for lun is invalid, target(0), 
lun(0)                                   
lstate for lun is invalid, target(0), 
lun(0)                                   
lstate for lun is invalid, target(0), 
lun(0)                                   
lock order reversal: (sleepable after 
non-sleepable)                           
 1st 0xc08bd760 targ global (targ global)  
cam/scsi/scsi_target.c:418         
 2nd 0xc08c5ba0 kernel environment (kernel environment)  
kern/subr_hints.c:117
KDB: stack 
backtrace:                                                  
       
kdb_backtrace(0,ffffffff,c08d4b60,c08d5fb0,c089c28c,...) at

kdb_backtrace+0x29 
witness_checkorder(c08c5ba0,1,c08412ab,75) at 
witness_checkorder+0x578         
_sx_slock(c08c5ba0,0,c08412a2,75,0,...) at 
_sx_slock+0x56                      
res_find(d53189f4,d53189c8,c08192ca,0,0,0,0,0,d53189cc,0,0,0
) at 
res_find+0x193
resource_find(d53189f4,d53189c8,c08192ca,0,0,0,0,0,d53189cc,
0,0,0) at 
resource_b
resource_find_dev(d53189f4,c08192ca,d53189f8,0,0) at 
resource_find_dev+0x32    
camperiphunit(c086bac4,0,0,0,1,...) at 
camperiphunit+0xd3                      
cam_periph_alloc(c0464b10,0,c0464b2c,c0464dec,c08192ca,0,c33
567c0,c046569c,0,c31
targenable(c38a6c00,c33567c0,0,0,c38a6d40,0,c08192cf,100) at

targenable+0x122  
targioctl(c3aa6e00,80144305,c341cd20,3,c33df900,c08c75c0,0,c
083aa71,131) 
at tar5
giant_ioctl(c3aa6e00,80144305,c341cd20,3,c33df900,...) at 
giant_ioctl+0x33     
devfs_ioctl_f(c3836090,80144305,c341cd20,c3825b00,c33df900)
at 
devfs_ioctl_f+0xf
ioctl(c33df900,d5318d04) at 
ioctl+0x396                                        
syscall(3b,3b,3b,11,f,...) at 
syscall+0x22f                                    
Xint0x80_syscall() at 
Xint0x80_syscall+0x1f                                    
--- syscall (54, FreeBSD ELF32, ioctl), eip = 0x28150a23,
esp = 
0xbfbfd11c, ebp-
lstate for lun is invalid, target(0), 
lun(0)                                   
(noperiph:sbp_targ0:0:0:0): Lun now enabled for target 
mode                    
fwohci0: Initiate bus 
reset                                                    
fwohci0: BUS 
reset                                                       
     
sbp_targ_post_busreset: already 
freezed                                        
Unknown service addr 0xffff:0xf0000234 RREQQ(4) src=0xffc0 
data=b8ca5284       
fw_rcv: cannot respond(bus 
reset)!                                             
fwohci0: node_id=0xc800ffc1, gen=3, CYCLEMASTER 
mode                           
firewire0: 2 nodes, maxhop <= 1, cable IRM = 1 
(me)                            
firewire0: bus manager 1 
(me)                                                  
Unknown service addr 0xffff:0xf0000234 RREQQ(4) src=0xffc0 
data=8ed45284       
fwohci0: BUS 
reset                                                       
     
sbp_targ_post_busreset: already 
freezed                                        
fwohci0: node_id=0x8800ffc0, gen=4, non CYCLEMASTER 
mode                       
firewire0: 2 nodes, maxhop <= 1, cable IRM = 
1                                 
firewire0: bus manager 0 
(me)                                                  
Unknown service addr 0xffff:0xf0000234 RREQQ(4) src=0xffc1 
data=f2dc5284       
firewire0: New S400 device 
ID:0011060000004c2f                                 
Unknown service addr 0xffff:0xf0000210 WREQQ(0) src=0xffc1 
data=f              
panic: knlist not locked, but should 
be                                        
KDB: enter: 
panic                                                       
      
[thread pid 16 tid 100013 
]                                                    
Stopped at      kdb_enter+0x2b: 
nop                                            
db> 
trace                                                       
              
Tracing pid 16 tid 100013 td 
0xc32e3000                                        
kdb_enter(c083ef5a) at 
kdb_enter+0x2b                                          
panic(c083ba9a,c38a6c00,c3ae1d00,0,d3ff3c88,...) at 
panic+0xbb                 
knote(c38a6c38,0,1,c38a6c2c,4c,...) at 
knote+0x2e                              
notify_user(c38a6c00,c38a6d40,0,c08192cf,334) at 
notify_user+0x1f              
targdone(c3826500,c3ae1d00) at 
targdone+0xde                                   
camisr(c08bd678) at 
camisr+0x251                                               
ithread_execute_handlers(c32e1c90,c3364100) at 
ithread_execute_handlers+0xe6   
ithread_loop(c31f99d0,d3ff3d38,c31f99d0,c05b1adc,0,...) at 
ithread_loop+0x66   
fork_exit(c05b1adc,c31f99d0,d3ff3d38) at 
fork_exit+0xa0                        
fork_trampoline() at 
fork_trampoline+0x8                                       
--- trap 0x1, eip = 0, esp = 0xd3ff3d6c, ebp = 0 
---                           
db>


_______________________________________________
freebsd-scsifreebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-scsi

To unsubscribe, send any mail to
"freebsd-scsi-unsubscribefreebsd.org"

  
  
Re: src/sys/dev/sbp_targ.c src/sys/cam/cam_ccb.h
country flaguser name
United States
2007-12-06 17:27:03
Um...wow.  Sorry for that folks.  My mail reader tried to do
some very 
strange things with my text.  Here is the witness error in
an attachment:

Sean

_______________________________________________
freebsd-scsifreebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-scsi

To unsubscribe, send any mail to
"freebsd-scsi-unsubscribefreebsd.org"

  
[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )