Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: stability problems + closing and re-opening the frontend
> You shouldn't be able to break the driver from userspace
> though; I'll take a
> look if the snapshot I just sent you doesn't help.
Nope, exactly the same behaviour: first iteration works as a charm, second iteration timeouts waiting for data. I've put the logs given by dvb_debug_frontend=1 at the end of this email. The only difference I've seen is a faster time for the first data acquisition. Before, I was waiting around 2 seconds before receiving the first packets. Good improvement!
I even discovered another weird behaviour. I run my test and let it finish the first iteration, then kill it while it sleeps. If I restart it before dvb_shutdown_timeout, then I get an "operation not permitted" when I call "select" on the demux. I think it's a problem introduced in the new version Andrew gave me (fresh CVS).
Regarding my first problem (in my full application, I cannot re-open the frontend at all, even right after the close), I found the source of my problem: I fork a few child process and the increases the "writers" counter on the frontend file descriptor. Therefore, when a close the frontend from the parent, it's not really closed because the child processes still have a reference on that file. Stupid me.
So I remain with three problems:
1) frontend lost (cannot tune) if I re-open it from the same process after dvb_shutdown_timeout.
2) frontend lost (operation not permitter on "select") if I re-open it from a another process before dvb_shutdown_timeout.
3) frontend lost (cannot tune) after around 1000 tune-read cycles ().
Doesn't anybody sees the same problems? At least for #3 I know I'm not alone...
Thanks.
---------------------- logs for a usual run of my test program
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_open <-- where I open the frontend
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_start
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_thread
Apr 7 13:39:54 pc0125 kernel: dvb_call_frontend_notifiers
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_ioctl
Apr 7 13:39:54 pc0125 kernel: DVB: initialising frontend 0:0 (STV0299/TSA5059/SL1935 based)...
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_ioctl
<...>
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_add_event
Apr 7 13:39:54 pc0125 kernel: dvb_call_frontend_notifiers
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_add_event
Apr 7 13:39:54 pc0125 kernel: dvb_call_frontend_notifiers
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_autotune: drift:0 bending:0 inversion:0 auto_step:0 auto_sub_step:0 started_auto_step:0
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_add_event
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:39:54 pc0125 kernel: dvb_call_frontend_notifiers
Apr 7 13:39:54 pc0125 kernel: update_delay
Apr 7 13:39:54 pc0125 kernel: dvb_frontend_release <-- where I close the frontend
Apr 7 13:39:55 pc0125 kernel: dvb_frontend_internal_ioctl
<...> <-- it goes like that for 6 seconds
Apr 7 13:39:59 pc0125 kernel: update_delay
Apr 7 13:40:00 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:40:04 pc0125 kernel: dvb_frontend_open <-- end of sleep and re-open
Apr 7 13:40:04 pc0125 kernel: dvb_frontend_start
Apr 7 13:40:04 pc0125 kernel: dvb_frontend_thread
Apr 7 13:40:04 pc0125 kernel: dvb_call_frontend_notifiers
Apr 7 13:40:04 pc0125 kernel: dvb_frontend_ioctl
Apr 7 13:40:04 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:40:04 pc0125 kernel: DVB: initialising frontend 0:0 (STV0299/TSA5059/SL1935 based)...
Apr 7 13:40:04 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:40:04 pc0125 kernel: dvb_frontend_ioctl
<...>
Apr 7 13:40:04 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:40:04 pc0125 kernel: dvb_frontend_add_event
Apr 7 13:40:04 pc0125 kernel: dvb_call_frontend_notifiers <-- where the FE looses its mind
Apr 7 13:40:04 pc0125 kernel: dvb_frontend_autotune: drift:0 bending:0 inversion:0 auto_step:0 auto_sub_step:0 started_auto_step:0
Apr 7 13:40:04 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:40:05 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:40:05 pc0125 kernel: dvb_frontend_autotune: drift:0 bending:0 inversion:1 auto_step:0 auto_sub_step:1 started_auto_step:0
Apr 7 13:40:05 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:40:05 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:40:05 pc0125 kernel: dvb_frontend_autotune: drift:1718 bending:0 inversion:1 auto_step:1 auto_sub_step:0 started_auto_step:0
Apr 7 13:40:05 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:40:05 pc0125 kernel: dvb_frontend_internal_ioctl
Apr 7 13:40:05 pc0125 kernel: dvb_frontend_autotune: drift:1718 bending:0 inversion:0 auto_step:1 auto_sub_step:1 started_auto_step:0
<... keep on going like that until kill+dvb_shutdown_timeout ...>
--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index