From: Sakari Ailus <sakari.ailus@iki.fi>
To: Mauro Carvalho Chehab <mchehab@redhat.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
linux-media@vger.kernel.org,
Antoine Reversat <a.reversat@gmail.com>
Subject: Re: [PATCH v2] omap3isp: Use monotonic timestamps for statistics buffers
Date: Thu, 27 Sep 2012 22:49:34 +0300 [thread overview]
Message-ID: <5064ADCE.3000708@iki.fi> (raw)
In-Reply-To: <20120927135233.3acd00a5@redhat.com>
Hi Mauro,
Mauro Carvalho Chehab wrote:
> Em Fri, 14 Sep 2012 23:57:48 +0200
> Laurent Pinchart <laurent.pinchart@ideasonboard.com> escreveu:
>
>> V4L2 buffers use the monotonic clock, while statistics buffers use wall
>> time. This makes it difficult to correlate video frames and statistics.
>>
>> Switch statistics buffers to the monotonic clock to fix this, and
>> replace struct timeval with struct timespec.
>>
>> Reported-by: Antoine Reversat <a.reversat@gmail.com>
>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>> ---
>> drivers/media/platform/omap3isp/ispstat.c | 2 +-
>> drivers/media/platform/omap3isp/ispstat.h | 2 +-
>> include/linux/omap3isp.h | 7 ++++++-
>> 3 files changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/media/platform/omap3isp/ispstat.c b/drivers/media/platform/omap3isp/ispstat.c
>> index b8640be..bb21c4e 100644
>> --- a/drivers/media/platform/omap3isp/ispstat.c
>> +++ b/drivers/media/platform/omap3isp/ispstat.c
>> @@ -256,7 +256,7 @@ static int isp_stat_buf_queue(struct ispstat *stat)
>> if (!stat->active_buf)
>> return STAT_NO_BUF;
>>
>> - do_gettimeofday(&stat->active_buf->ts);
>> + ktime_get_ts(&stat->active_buf->ts);
>>
>> stat->active_buf->buf_size = stat->buf_size;
>> if (isp_stat_buf_check_magic(stat, stat->active_buf)) {
>> diff --git a/drivers/media/platform/omap3isp/ispstat.h b/drivers/media/platform/omap3isp/ispstat.h
>> index 9b7c865..8221d0c 100644
>> --- a/drivers/media/platform/omap3isp/ispstat.h
>> +++ b/drivers/media/platform/omap3isp/ispstat.h
>> @@ -50,7 +50,7 @@ struct ispstat_buffer {
>> struct iovm_struct *iovm;
>> void *virt_addr;
>> dma_addr_t dma_addr;
>> - struct timeval ts;
>> + struct timespec ts;
>> u32 buf_size;
>> u32 frame_number;
>> u16 config_counter;
>> diff --git a/include/linux/omap3isp.h b/include/linux/omap3isp.h
>> index c090cf9..263a0c0 100644
>> --- a/include/linux/omap3isp.h
>> +++ b/include/linux/omap3isp.h
>> @@ -27,6 +27,11 @@
>> #ifndef OMAP3_ISP_USER_H
>> #define OMAP3_ISP_USER_H
>>
>> +#ifdef __KERNEL__
>> +#include <linux/time.h> /* need struct timespec */
>> +#else
>> +#include <sys/time.h>
>> +#endif
>> #include <linux/types.h>
>> #include <linux/videodev2.h>
>>
>> @@ -164,7 +169,7 @@ struct omap3isp_h3a_aewb_config {
>> * @config_counter: Number of the configuration associated with the data.
>> */
>> struct omap3isp_stat_data {
>> - struct timeval ts;
>> + struct timespec ts;
>
> NACK. That breaks userspace API, as this structure is part of an ioctl.
>
> It is too late to touch here. Please keep timeval. It is ok to fill it with
> a mononotic time, but replacing it is an API breakage.
I beg to present a differing opinion.
The timestamp that has been taken from a realtime clock has NOT been
useful to begin with in this context: the OMAP3ISP driver has used
monotonic time on video buffers since the very beginning of its
existence in mainline kernel. As no-one has complained about this ---
except Antoine very recently --- I'm pretty certain we wouldn't be
breaking any application by changing this. The statistics timestamp is
only useful when it's comparable to other timestamps (from video buffers
and events), which this patch achieves.
Kind regards,
--
Sakari Ailus
sakari.ailus@iki.fi
next prev parent reply other threads:[~2012-09-27 19:49 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-14 21:57 [PATCH v2] omap3isp: Use monotonic timestamps for statistics buffers Laurent Pinchart
2012-09-15 6:32 ` Sakari Ailus
[not found] ` <20120927135233.3acd00a5@redhat.com>
2012-09-27 19:49 ` Sakari Ailus [this message]
2012-09-27 23:26 ` Laurent Pinchart
2012-10-01 12:00 ` Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5064ADCE.3000708@iki.fi \
--to=sakari.ailus@iki.fi \
--cc=a.reversat@gmail.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).