Re: [PATCH 1/3] vb2: fix VBI/poll regression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em Sat, 20 Sep 2014 11:14:16 +0200
Hans Verkuil <hverkuil@xxxxxxxxx> escreveu:

> On 09/20/2014 11:08 AM, James Harper wrote:
> >>
> >> The recent conversion of saa7134 to vb2 unconvered a poll() bug that
> >> broke the teletext applications alevt and mtt. These applications
> >> expect that calling poll() without having called VIDIOC_STREAMON will
> >> cause poll() to return POLLERR. That did not happen in vb2.
> >>
> >> This patch fixes that behavior. It also fixes what should happen when
> >> poll() is called when STREAMON is called but no buffers have been
> >> queued. In that case poll() will also return POLLERR, but only for
> >> capture queues since output queues will always return POLLOUT
> >> anyway in that situation.
> >>
> >> This brings the vb2 behavior in line with the old videobuf behavior.
> >>
> > 
> > What (mis)behaviour would this cause in userspace application?
> 
> If an app would rely on poll to return POLLERR to do the initial STREAMON
> (seen in e.g. alevt) or to do the initial QBUF (I'm not aware of any apps
> that do that, but they may exist), then that will currently fail with vb2
> because poll() will just wait indefinitely in those cases.

You forgot to mention (also at the patch series) that the removal of
list_empty() check solves the buffer underrun condition.

With this fix, if a multi-threaded application goes into an underrun
condition (e. g. if it de-queues faster than queues), a POLLERR would be
received. The poll fixup patch series also fixes it.

Regards,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux