Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] Re: ARM crashed while cutting, VDR watchdog timer failed.
- To: vdr@linuxtv.org
- Subject: [vdr] Re: ARM crashed while cutting, VDR watchdog timer failed.
- From: Carsten Koch <Carsten.Koch@icem.de>
- Date: Wed, 02 Jan 2002 00:42:05 +0100
- Content-Transfer-Encoding: 7bit
- Content-Type: text/plain; charset=us-ascii
- Delivered-To: mhonarc@limes.convergence.de
- Organization: ICEM Technologies GmbH
- References: <3C2E73EA.F7269974@icem.de> <3C30C1B0.62746350@icem.de>
- Reply-to: vdr@linuxtv.org
- Sender: Carsten.Koch@icem.de
- Sender: vdr-bounce@linuxtv.org
Carsten Koch wrote:
...
> I tried various things both in vdr and in the driver, but so far I
> found no workaround for the ARM crash. Help and ideas appreciated.
All of that is still true, but here is additional information:
I changed VDR, so ALL ioctl calls were logged.
I noticed that all ARM crashes occured after the
ioctl(videoDev, OSD_SEND_CMD, &dc);
in DvbOsd::Cmd, so I inserted a move verbose
dsyslog(LOG_INFO, "at dvbosd.c 352, %d, %d, %d, %d, %d, %d.\n", cmd, color, x0, y0, x1, y1);
before that ioctl. That statement showed, that the
ARM always crashed when processing a OSD_SetBlock
command (command code number 13):
Jan 1 23:42:36 vdr vdr[18690]: at dvbosd.c 352, 13, 636, 64, 60, 79, 75.
Jan 1 23:42:38 vdr kernel: dvb0: ARM crashed!
Jan 1 23:42:51 vdr vdr[18690]: PANIC: watchdog timer expired - exiting!
...
Jan 1 23:45:51 vdr vdr[19067]: at dvbosd.c 352, 13, 636, 616, 60, 631, 75.
Jan 1 23:45:55 vdr kernel: dvb0: ARM crashed!
Jan 1 23:46:06 vdr vdr[19067]: PANIC: watchdog timer expired - exiting!
Also interesting is the big delay between
Jan 2 00:01:21 vdr vdr[19481]: at dvbosd.c 352, 20, 0, 1, 0, 0, 0.
Jan 2 00:01:21 vdr vdr[19481]: at dvbosd.c 352, 13, 636, 64, 60, 79, 75.
and
Jan 2 00:01:23 vdr kernel: dvb0: ARM crashed!
as you can see, before the crash, the ARM was processing 19 commands per
second.
Just to make 100% sure the ARM always crashes when processing a OSD_SetBlock,
I inserted a
dsyslog(LOG_INFO, "at dvbosd.c 362.\n");
AFTER the ioctl.
I was not surprised to see
Jan 2 00:18:36 vdr vdr[20103]: at dvbosd.c 362.
Jan 2 00:18:36 vdr vdr[20103]: at dvbosd.c 352, 20, 0, 1, 0, 0, 0.
Jan 2 00:18:36 vdr vdr[20103]: at dvbosd.c 362.
Jan 2 00:18:36 vdr vdr[20103]: at dvbosd.c 352, 13, 636, 123, 27, 130, 54.
Jan 2 00:18:38 vdr kernel: dvb0: ARM crashed!
Maybe some of you, who are also experiencing ARM crashes may want to do
the same thing (insert a dsyslog call before and after the ioctl), so we
can find out wether there is just one single cause for all ARM crashes.
All of this seems to support my initial theory that the firmware is writing
into ARM RAM randomly due to firmware or driver bugs. When it hits something
harmless, we see the well-known glitches, when it hits something more serious,
we see an ARM crash.
Here is the test case that I use to easily reproduce a crash:
* I have a recording that already has cut markers near the
beginning an near the end.
* I bring up that recording and press "2".
VDR displays "Editing process started.".
* I wait for that display to disappear and press "back".
* In the recording list that appears now, I scroll back to
the %same-name recording and press OK.
* I press OK again to bring up the progress bar.
The end time in the progress bar is changing while VDR
writes the new file.
* I press "Up" to start "fast forward" mode.
VDR fast forwards - sometimes up to 0:0:40, sometimes up to
a few minutes, then the ARM crashes without requiring further
input.
Klaus, can you reproduce this?
As a workaround, I inserted a VIDEO_FREEZE ioctl before the OSD_SEND_CMD
and a VIDEO_CONTINUE after the OSD_SEND_CMD. That did not help, either.
ARM still crashes.
Carsten.
Home |
Main Index |
Thread Index