[pvrusb2] Driver status [was:CPU Run pvrusb2-context]
Mike Isely
isely at isely.net
Thu Oct 14 21:39:37 CDT 2010
On Thu, 14 Oct 2010, JE Geiger wrote:
>
> 2.6.34 is the version where I started having problems. I had to update the
> in kernel pvrusb2 driver to the isely.net version to get the problem to go
> away.
>
> The problem is that there is the driver that Mike keeps up to date, the v4l
> stuff, then the kernel itself. It appears that there is quite a time lag
> between the problem being fixed in Mike's tree and it migrating up to the
> real kernel at kernel.org that everyone pulls from. I am not sure all of
> the fixes ever made it to even the most current kernel 2.6.36....
The time lag is due to several factors. First, I have to make the fixes
available to be pulled upstream. If it's a critical thing, I usually do
this right away. Otherwise I may wait until I accumulate enough changes
to make it worthwhile. (The process in v4l-dvb for pulling changes has
seemingly gotten messier in the past year so it's more of a pain now to
get things pulled up, unfortunately.)
Second, the process for getting changes in the kernel in general can
introduce a lot of lag. Normally there is a 2 week "merge window" which
opens immediately after a point-release of the kernel, e.g. "2.6.34".
During that window all changes pending since the last merge window get
pulled in. Once the merge window closes, then one has to wait for the
next merge window - which does not occur until after the next
point-release, which can be 1-3 months of delay.
And there may be additional lag before a distro picks up the changes and
builds them into any kernels they release...
With that said, there is a speedier process for kernel changes which are
strictly considered to be bug fixes. If the change is just a fix and
not a feature addition, AND if it is simple enough that it can be
cherry-picked with low risk of (further) breakage, then such a fix can
be immediately queued for the next kernel bug-fix release, e.g.
"2.6.34.1". This can be as quick as a few days, depending on the
criticality of the fix and how wide the impact is.
A while back there was a point-release of the kernel issued which
completely wiped out the pvrusb2 driver - attempting to load the driver
not only failed but it jammed things up badly enough to require a
reboot. It technically wasn't my fault: a behavior had changed in the
USB stack which triggered the breakage and nobody noticed until the
kernel release had taken place. (The pvrusb2 driver wasn't the only
driver that got burned by it.) Within about 2 days I had a fix to deal
with the new behavior, and it got pulled up and released into the next
bug-fix release just a few days after that. I think this was back in
2.6.27, but my memory is foggy and I'm too lazy right now to go back
through old e-mail to find the sequence of events.
>
> Download the current version, make modules, make modules_install, reboot,
> then modprobe and rmmod several times in a row. It should fix the issues.
>
The current state of the various driver versions is this:
The in-kernel and in-V4L versions are perfectly in sync with each other
and everything I've made available upstream has been pulled (months
ago). I believe kernel 2.6.35 is in fine shape and the lastest bug-fix
releases of 2.6.34.x are also fine.
The latest standalone driver (from last July) technically has a few more
tweaks in it than what's been pulled upstream, but they are so minor /
trivial that I haven't bothered to get them pulled up.
I have been slowly accumulating some other changes since the last
snapshot that that fix up cropping support (thanks to another pvrusb2
user who knows far more about the cx25843 chip than I'll ever learn),
but there's nothing merged in there yet that's really worth releasing.
I know of some other pvrusb2 driver changes coming *down* to me from
other kernel developers; these are changes that adapt to other changes
within the kernel or that simplify some bits (by taking advantage of
some newer kernel facilities). Once these changes flow into the v4l-dvb
hg repository, I will integrate them with the standalone driver and
release another snapshot. Or, if it is discovered that the standalone
driver already breaks with the latest kernels due to these incoming
changes, then I will pull the changes myself and release a new snapshot
anyway. But right now I'm kind of in a lull (and working on other
things unrelated to this driver) at the moment.
There is an unresolved question involving suspected module hangs upon
removal - devsk has reported these to me. What he has described would
suggest that this problem is rampant - I should be getting flooded with
complaints. But nobody else is seeing this problem and I've so far been
unable to reproduce it. That's not to say the problem isn't there -
I've learned long ago that subtle latent bugs can lurk for a long time,
unnoticed. It's entirely possible that there is a problem here but at
the moment I've not been able to get any traction on it and I haven't
yet understood what devsk is doing to trigger it. If I do however
figure this out and have a fix, this will immediately trigger release of
another snapshot.
I guess this has sort of turned into a State of The Driver message ;-)
-Mike
--
Mike Isely
isely @ isely (dot) net
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8
More information about the pvrusb2
mailing list