On Wednesday 25 July 2007 17:43:01 Mark Bryars wrote:
> Mark Bryars wrote:
> > Doing a bit of research into this, the last lockup I had was after
> > a 0x1C000 byte size DMA transfer, thats pretty big compared to the
> > usual ones
> >
> > After a bit of sampling I see DMA size distribution to be mainly in
> > the 0x2800 to 0x8000 region, a few crashes i provoked by setting
> > the latency down to 1, had transfers set up just beforehand that
> > were bigger than this: 0x8800, 0x12000, 0xE000, 0xA000
> >
> > I was looking at the code to see if it would be possible to
> > fallback to a PIO mode transfer for larger than 0x8000 sized
> > transfers. Would this be possible to do easily? Or how about
> > multiple smaller DMA transfers?
>
> Further to this, I added a very simple size cap on dma transfers, to
> only get the first 32k of data, and although, of course, the stream
> was corrupted (not as much as you might expect), even setting the pci
> latency to 1, I did not provoke any DMA TIMEOUT crashes (although its
> a currently brief test). I upped the limit to 128k as this would get
> apparently everything, and 5 cards locked up in about a minute. I
> really feel the dropping to PIO(or multiple smaller DMA) for >32k
> transfers could be the solution we are waiting for.
Have you tried changing this:
itv->stream_buf_size[IVTV_ENC_STREAM_TYPE_MPG] = 0x08000;
to this:
itv->stream_buf_size[IVTV_ENC_STREAM_TYPE_MPG] = 0x10000;
in ivtv-driver.c? Does this also trigger lockups?
This change prevents scatter-gather DMA, just in case that is the cause.
If you capture raw YUV from /dev/video32, do you also get DMA timeouts?
> I have also seen some really large dma transfers try to take place,
> (>1Meg) the logging is lost so I do not know if they were successful.
> If this is important I can reproduce.
1 MB? That's dubious. The largest transfer should be of an I-Frame,
which you can compare to a jpeg of a single PAL frame. Should
definitely be less than 1 MB. Could be a knock-on effect of a DMA
engine breakdown.
If you see that in a regular capture, then I'd like to see some logging,
if possible.
Regards,
Hans
_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel