sbp_targ difficulties

Protius protius at teryx.bobdbob.com
Wed Nov 10 15:32:12 PST 2004


I am attempting to use scsi_target to make a BSD box look like an
external firewire drive, and it /almost/ works, but not quite...
:-P

The machines are running 5.3-STABLE, cvsupped on November 7.  They have
in their kernel config files: (among other things)

device          firewire        # FireWire bus code
device          sbp             # SCSI over FireWireRequires scbus and da)
device          sbp_targ
device          fwe             # Ethernet over FireWirenon-standard!)
device          targ
options		VFS_AIO

On the server machine, I run:
scsi_target 1:0:0 /dev/stripe/mm    

There are no errors from scsi_target.  

But, on the console appears:

Unknown service addr 0xffff:0xf0000210 WREQ0) src=0xffc0 data=200000f

I googled around for that message, and there was a suggestion to change
the line
OWRITsc, OHCI_PREQHI, 0x7fffffff);
in fwohci.c to 
OWRITsc, OHCI_PREQHI, 0xffffffff);

That didn't change anything...

On the client machine console appears:

fwohci0: BUS reset
fwohci0: node_id=0x8800ffc0, gen=2, non CYCLEMASTER mode
firewire0: 2 nodes, maxhop <= 1, cable IRM = 1
firewire0: bus manager 1 
da4 at sbp0 bus 0 target 0 lun 0
da4: <FreeBSD TargetMode 0001> Fixed Direct Access SCSI-3 device 
da4: 50.000MB/s transfers
da4: 34992MB71664928 512 byte sectors: 255H 63S/T 4460C)

Which is definately a good sign...

I then mount the disk read only, and everything is happy.  On umounting
the disk, scsi_target coredumps... The core dump is actualy unusual,
it has only happened once in the five or ten times I've done this entire
sequence.

So I restart scsi_target, and mount the disk read-write.

The mount succeeds with no errors.  However the moment I attempt to
write something in the filesystem (IE: cat > foo), scsi_target on
the server machine goes nuts, and consumes all the CPU.

The client machine hangs, I assume waiting for IO.  Then typicaly they
both crash.

Is the unknown service address caused by something which FreeBSD as a
client does?  It definately only happens when one trys to write.

Any ideas?  
What additional information would be useful?

I'm off to read firewire documentation now.  :-)

-Tommy
tjohnson at bobdbob.com



More information about the freebsd-firewire mailing list