Something broke :-( Re: fwcontrol update

Dieter freebsd at sopwith.solgatos.com
Mon Aug 18 23:59:17 UTC 2008


> > I notice that it doesn't print every generation.
> > I notice that the node_id changes.
>
>
> This alarms me quite a bit.  I didn't think there was anyway for the 
> generation to change
> without the log message being spit out.  Interesting.

It also skips on dmesg, so it isn't a console problem:

fwohci1: node_id=0xc000ffc0, gen=86, CYCLEMASTER mode
firewire1: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire1: bus manager 0 (me)
got BUSRST packet!?
got BUSRST packet!?
got BUSRST packet!?
fwohci1: BUS reset
fwohci1: node_id=0xc000ffc1, gen=108, CYCLEMASTER mode
firewire1: 2 nodes, maxhop <= 1, cable IRM = 1 (me)
firewire1: bus manager 0 
fwohci1: BUS reset
fwohci1: node_id=0xc000ffc0, gen=112, CYCLEMASTER mode
fwohci1: invalid SID len = 0	<-----------------------<<< didn't notice this line before
fwohci1: BUS reset						only occurs twice in dmesg
fwohci1: node_id=0xc000ffc1, gen=130, CYCLEMASTER mode
firewire1: 2 nodes, maxhop <= 1, cable IRM = 1 (me)
firewire1: bus manager 1 (me)
fwohci1: BUS reset
fwohci1: node_id=0xc000ffc0, gen=135, CYCLEMASTER mode
firewire1: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire1: bus manager 0 (me)
got BUSRST packet!?
got BUSRST packet!?
fwohci1: BUS reset
fwohci1: node_id=0xc000ffc1, gen=154, CYCLEMASTER mode

Does "got BUSRST packet!?" mean that the camera is sending out
bus reset commands?  That doesn't seem right.  BTW, shouldn't that
line have a prefix telling where it comes from (e.g. fwohci1:
or firewire1:) ?

BTW there is just the FreeBSD box and the camera, no other nodes
on the firewire bus.

> I have been suspicious of a race condition for some time in the firewire 
> stack, I see it across multiple
> devices(sbp, sbp_targ) and now fwcontrol is acting weird.  Very interesting.

> Yes.  Try the attached patch.  Let me know.

I don't see a patch.

Note that fwcontrol is not running when the spew happens.
I press play on the camcorder, and the spewing starts.
I press stop and the spewing stops.

My only theories are that fwcontrol set something that
survives a reboot, or that the fw controller chip isn't
getting completely reset and properly initialized.  I'm
leaning towards the chip being the more likely explaination.


More information about the freebsd-firewire mailing list