Re: generating firewire traffic

Stefan Richter <[email protected]>
Newsgroups gmane.comp.video.kino.devel
Message-ID <[email protected]>
Carl Karsten wrote:
> I can cause a kernel panic:

It's only of peripheral interest to kino-dev then. :-)
([email protected] and [email protected] cover kernel
driver topics.)

> http://bugzilla.kernel.org/show_bug.cgi?id=13075
> by plugging in a dv cam and running the following for a few minutes:
> 
> dvgrab - | nc 192.168.1.216 2007 | nc 192.168.1.216 2008 > /dev/null
> 
> on 192.168.1.216 I am running my home made echo server:
> while /bin/true;do  nc -l -p 2007 -c cat; done &
> while /bin/true;do  nc -l -p 2008 -c cat; done &
> 
> To make it easier to debug, I would like to remove the need for the
> cam and the dvgrab command and just use something that stimulates the
> firewire hardware without anything plugged into the port.

You need the camera and a capture program; only then the controller
generates interrupts and utilizes its DMA units.  You cannot achieve
this locally.  Instead of the camera, there could be a second PC or the
same PC with a second card and a streamer program.

Well, you actually /can/ achieve something similar without camera or
second PC or second card --- by /transmitting/ video (which works even
if nothing is connected).  But different DMA units of the controller and
different DMA programming of the kernel drivers would be involved then,
so you may get same or different results --- more likely different results.

> Or if I need something plugged in, then not having to worry about what
> is plugged in (cam, drive, 2nd firewire port...)
> 
> and in case it is somehow dependent on the timing created by a dv cam,
> something like cat /dev/raw1394 so that "install dvgrab" isn't needed.

# cat /dev/dv1394/$n
But that would utilize different driver code paths, i.e. ohci1394 +
dv1394 instead of ohci1394 + ieee1394 + raw1394.

/dev/raw1394 isn't cat-friendly.  But you could try testdv on it or
something along the lines.

> Or convince me that the panic isn't dependent on firewire at all,
> which I have been told, but have not been able to reproduce.
> 
> Or buy me a pony and I'll stop worrying about this :)

Since the panic happens in the networking code, it is either a pure
networking bug, or it is an ieee1394 bug which corrupts the kernel in a
way that can only be seen by the networking driver (perhaps only the
forcedeth driver in particular) while network traffic is going on.

Can you capture to local disk without panic?

One other experiment which could possibly give some further information
is to repeat everything after replacing ohci1394 + ieee1394 + raw1394 by
firewire-ohci + firewire-core.  Requires libraw1394 v2.  (Latest is best.)
-- 
Stefan Richter
-=====-==--= -==- -=-=-
http://arcgraph.de/sr/

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.