From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: Wojciech Domski <wojciech.domski@gmail.com>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai] Sensoray 626 analogy driver
Date: Mon, 24 Mar 2014 13:19:03 +0100 [thread overview]
Message-ID: <533022B7.9000405@xenomai.org> (raw)
In-Reply-To: <53302093.9090503@gmail.com>
On 03/24/2014 01:09 PM, Wojciech Domski wrote:
> W dniu 22.03.2014 17:36, Gilles Chanteperdrix pisze:
>> First, the coding style. You use mixed-case identifiers, whereas the
>> tradition is to use lower case with underscores, and you do not seem to
>> indent with tabs, which is also the rule for kernel code. Your code also
>> contains some code in commentaries, which makes it uselessly hard to read.
> Yes, this needs my attention. However, it is not critical.
Not critical, but mandatory.
>>
>> Second, I see a lot of busy wait loops, for instance for things such as
>> I2C transfers, but I2C transfers are usually slow, so busy waiting for
>> the end of an I2C transfer in a critical section (as the comments say),
>> will create large masking sections for the rest of the system, which is
>> unacceptable for Xenomai, as we try hard to guarantee low latencies.
> Yes, you have right. Could you elaborate on this a bit more?
> Inside the kernel module there are plenty of while loops. Could you tell
> me if I
> could use rtdm_task_busy_sleep() function inside those loops?
>
> Would such solution be acceptable inside Xenomai kernel module?
The solution which would be acceptable is not to have busy waits, except
for very short durations. But for instance transferring a byte on I2C
takes around 20us at 400 kHz, a 20us masking section is unacceptable.
rtdm_task_busy_sleep, as the name suggests is a busy wait loop, so, no,
it is not acceptable either.
Use a thread or a timer to reschedule while you wait for the end of the
transfer, instead of busy waiting.
--
Gilles.
next prev parent reply other threads:[~2014-03-24 12:19 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-28 14:12 [Xenomai] Sensoray 626 analogy driver Wojciech Domski
2014-03-04 20:14 ` Wojciech Domski
2014-03-22 16:36 ` Gilles Chanteperdrix
2014-03-24 12:09 ` Wojciech Domski
2014-03-24 12:19 ` Gilles Chanteperdrix [this message]
2014-03-25 10:26 ` Wojciech Domski
2014-03-25 11:16 ` Gilles Chanteperdrix
2014-03-25 11:28 ` Wojciech Domski
2014-03-25 11:36 ` Gilles Chanteperdrix
2014-03-25 11:54 ` Wojciech Domski
2014-03-25 11:58 ` Gilles Chanteperdrix
2014-03-25 12:14 ` Wojciech Domski
2014-03-25 12:33 ` Gilles Chanteperdrix
2014-04-10 12:25 ` Wojciech Domski
2014-04-10 22:01 ` Gilles Chanteperdrix
2014-07-07 10:38 ` Wojciech Domski
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=533022B7.9000405@xenomai.org \
--to=gilles.chanteperdrix@xenomai.org \
--cc=wojciech.domski@gmail.com \
--cc=xenomai@xenomai.org \
/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.