Re: iio_buffer length

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

 



On 26/09/12 13:37, Denis Ciocca wrote:
Hi Jon and Ge,

I switched my driver code by using kfifo (using code on linux-next),
now what I see is:

using generic-buffer application, I catch every sample independently
by the value of buffer length, is that what you tell me by "Kfifo has
a more conventional poll and will fire off userspace whenever any data
is in the buffer."?
To catch data only when the buffer is full, I must catch a particular
signal event in /dev/iio:deviceX?

You never want the buffer to be full.  If it is you WILL loose data
due to unlucky timing sooner or later.

Only real option if you want to grab data in chunks from that buffer
is to deadreckon the timing using a userspace timer.


Thanks

Denis




2012/9/26 Jonathan Cameron <jic23@xxxxxxxxxxxxxxxxxxxxx>:
On 26/09/12 02:32, Ge Gao wrote:

To use KFIFO, you need Jonanthan's KFIFO poll patch,

That's in staging-next now and will merge into mainline in the
next merge window (about 1 to 2 weeks time).

you probably also
need a patch from me that fixed the industrial-buffer.c. But that buffer
is not well tested and is only used by me.

There are a lot of drivers using kfifo. It's hidden in many of them as they
use it via the industrialio-triggered-buffer helper functions that
deal with the most common use cases.

With that I count 9 in drivers/iio and 6 in drivers/staging/iio vs 10
in total for sw_ring most of which will go away once someone has a spare
couple of hours.

Basically any driver that has come along since we moved to kfifo is the
preferred choice and any that anyone has touched since then.


The original KFIFO does not
have poll functionality and has some other minor bug.

If I've missed any patches from you on this (or just forgotten them ;)
please do keep pestering me.


Ge


-----Original Message-----
From: linux-iio-owner@xxxxxxxxxxxxxxx
[mailto:linux-iio-owner@xxxxxxxxxxxxxxx] On Behalf Of Denis Ciocca
Sent: Tuesday, September 25, 2012 2:35 PM
To: jic23@xxxxxxxxxxxxxxxxxxxxx
Cc: linux-iio@xxxxxxxxxxxxxxx
Subject: iio_buffer length

Hi Jon,

Firstly please confirm you are using a kfifo buffer?


No, I use sw-ring.


Swring is deprecated but will do precisely what you are seeing I think.

It uses a half full watershead to decide to signal userspace.  If you wait
till the buffer is full, unless your sampling is very slow you will have
data coming in before userspace has read the whole buffer out. Hence you
will loose data.

You are right. I saw exatly what you said.


Kfifo has a more conventional poll and will fire off userspace
whenever

any data is in the buffer. Hence kfifo will work for your usecase.  I
would like to have a fill level capable buffer again in the future as they
are very useful in high speed uses where latency doesn't matter.

Ok, I will change my sw-ring buffer to kfifo!

Thanks,
Denis
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" 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-iio" 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-iio" 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-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux