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 07:08:08 -0300
Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx> escreveu:

> 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.

Actually, no need to comment it there, as I'll be removing the revert
patch from topic/devel.

If James is using master (likely the case), then the list_empty issue is not
affecting him, as the revert is just at topic/devel.

> 
> 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
--
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