All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jean-Baptiste Maneyrol <JManeyrol@invensense.com>
To: Martin Kelly <mkelly@xevo.com>, Jonathan Cameron <jic23@kernel.org>
Cc: "linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>
Subject: Re: How to handle missing timestamps? (was Re: [PATCH] iio: imu: inv_mpu6050: improve missing timestamp handling)
Date: Tue, 27 Mar 2018 08:47:37 +0000	[thread overview]
Message-ID: <CY4PR1201MB0184826F66D8C1439D2FA6D1C4AC0@CY4PR1201MB0184.namprd12.prod.outlook.com> (raw)
In-Reply-To: <cc66bed2-ef59-ea75-d26d-f5ed55b55a65@xevo.com>

Hello,

this raises a good question of which interrupts we are missing (the oldest =
ones or the newest ones).

My bet would be that we are loosing interrupts from the newest data (the ir=
q thread can take too much time and we loose interrupt). In this case manua=
l timestamping would rather be:

sample 0 (oldest timestamp): interrupt timestamp
sample 1: interrupt timestamp + 0.1 seconds
sample 2: interrupt timestamp + 0.2 seconds
sample 3 (newest timestamp): interrupt timestamp + 0.3 seconds

Can you check with your setup that this is really what is happening?

Thanks for your feedback.

Best regards,
JB


From: Martin Kelly <mkelly@xevo.com>
Sent: Monday, March 26, 2018 19:43
To: Jean-Baptiste Maneyrol; Jonathan Cameron
Cc: linux-iio@vger.kernel.org
Subject: Re: How to handle missing timestamps? (was Re: [PATCH] iio: imu: i=
nv_mpu6050: improve missing timestamp handling)
=A0=20

On 03/26/2018 07:20 AM, Jean-Baptiste Maneyrol wrote:
> Hello,
>=20
> we should have 1 interrupt every time a sensor data has been acquired. So=
 in theory this is not something that should happen. But real world is alwa=
ys a different story.
>=20

Agreed.

> Do you have a case where you saw that happen?
>=20

Yes, I'm seeing this on a board I'm working with. I'm also seeing I2C=20
bus lockups at high frequencies, so my best guess (though speculation)=20
is that the interrupts are being generated by the bus is dropping some=20
of the messages. I'm seeing that, when the data ready interrupt fires,=20
there are multiple messages in the FIFO, so all but the first get filled=20
in with 0 timestamps. I plan to investigate why I'm getting bus lockups,=20
but since this is exposed a bug, I wanted to first work on improving the=20
resilience to such conditions.

> The best way if this happens would be to create the timestamp based on th=
e sampling rate since we know it (last timestamp + sampling interval). That=
 would be very similar to the real value since the only difference is=A0 th=
e clock drift between the chip and  the system.
>=20

That sounds reasonable. Let me make sure I understand what you're=20
proposing. Let's say we have set the sample rate to 10 Hz. Every time we=20
get an interrupt, we already take a timestamp, which should be the=20
correct timestamp for the most recent sample. Imagine that after an=20
interrupt, we see there are 4 samples in the FIFO instead of just 1. In=20
that case, we mark the samples with timestamps:

sample 0 (oldest timestamp): interrupt timestamp - 0.3 seconds
sample 1: interrupt timestamp - 0.2 seconds
sample 2: interrupt timestamp - 0.1 seconds
sample 3 (newest timestamp): interrupt timestamp

Does that sound right to you? If so, I will revise my patch to do it.
    =

  reply	other threads:[~2018-03-27  8:47 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-24  0:02 [PATCH] iio: imu: inv_mpu6050: improve missing timestamp handling Martin Kelly
2018-03-24 12:35 ` How to handle missing timestamps? (was Re: [PATCH] iio: imu: inv_mpu6050: improve missing timestamp handling) Jonathan Cameron
2018-03-26 14:17   ` Jean-Baptiste Maneyrol
     [not found]   ` <7c1718f2fc324eb6b959257a80e136cdCY4PR1201MB0184E4503B2B1EEA7F24C41DC4AD0@CY4PR1201MB0184.namprd12.prod.outlook.com>
2018-03-26 17:43     ` Martin Kelly
2018-03-27  8:47       ` Jean-Baptiste Maneyrol [this message]
2018-03-28  0:34         ` Martin Kelly
2018-03-28 15:13           ` Jean-Baptiste Maneyrol
2018-03-28 16:40             ` Martin Kelly

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=CY4PR1201MB0184826F66D8C1439D2FA6D1C4AC0@CY4PR1201MB0184.namprd12.prod.outlook.com \
    --to=jmaneyrol@invensense.com \
    --cc=jic23@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=mkelly@xevo.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.