RE: iio_buffer length

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

 



I updated the latest the staging next and noticed that your patch is
already in the kfifo along with other fixes. One thing I don't understand
why in the "iio_store_to_kfifo", only 1 byte is stored vs.
bytes_per_datum is stored before. Isn't KFIFO using bytes_per_datum when
reading and writing?
I send a patch for industrial-buffer to you.
Thanks.

Best Regards,

Ge GAO


-----Original Message-----
From: J.I. Cameron [mailto:jic23@xxxxxxxxxxxxxxxx] On Behalf Of Jonathan
Cameron
Sent: Wednesday, September 26, 2012 7:23 AM
To: Denis Ciocca
Cc: Ge Gao; linux-iio@xxxxxxxxxxxxxxx
Subject: Re: iio_buffer length

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