All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johan Borkhuis <j.borkhuis@domain.hid>
To: Jan Kiszka <jan.kiszka@domain.hid>
Cc: Xenomai help <xenomai@xenomai.org>
Subject: Re: [Xenomai-help] Problem with semaphores in an RTDM driver
Date: Wed, 28 May 2008 14:16:30 +0200	[thread overview]
Message-ID: <483D4D1E.6030100@domain.hid> (raw)
In-Reply-To: <483D2177.7010909@domain.hid>

Jan Kiszka wrote:
> Johan Borkhuis wrote:
>   
>> Hello,
>>
>> I am trying to use semaphores inside my driver. It is a driver that can 
>> be used as standard Linux driver and RTDM driver.
>>
>> However, when I use rt_sem_p or rtdm_sem_timeddown in my read_nrt 
>>     
>
> Calling those blocking RT services over a non-RT RTDM handler is a
> strong indication that you are doing something fundamentally wrong.
>
> (BTW, for consistency reasons, you shouldn't use native API services in
> RTDM drivers. Technically, this can be OK, but it is at least very unclean.)
>   

This is true, but as the RTDM sem's did not work for me I moved to the 
rt_sem, which also did not work for the same reason.

>> function I get a -1 return value, indicating EPERM. When I look at the 
>> thread state I see a value of 0x00400080, which indicates a standard 
>> Linux thread. The rtdm-context is 0x00000001.
>> The userspace thread has a thread state of 00300380.
>>
>> What am I doing wrong here? How can I get a semaphore or other sync 
>> mechanism to work inside my RTDM driver?
>>     
>
> RT resources are for RT threads in _primary_ mode. Why do you want to
> pend on those resources while the threads are in secondary ("nrt") more?
>   

The main problem is is that part of the driver (especially the interrupt 
handler) is running in primary mode. The application itself is running 
partly in secondary mode. I need some mechanism to have the application 
waiting for a signal from the interrupt handler.
Do I need to implement this using rtdm_nrtsig, or are there other ways 
to send signals from primary to secondary mode?

Kind regards,
    Johan Borkhuis

-- 
Johan Borkhuis                                  Dutch Space BV
email:        j.borkhuis@domain.hid          Newtonweg 1
phone:        071-5245788                       Leiden
fax:          071-5245499                       The Netherlands



  reply	other threads:[~2008-05-28 12:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-28  8:53 [Xenomai-help] Problem with semaphores in an RTDM driver Johan Borkhuis
2008-05-28  9:03 ` Sebastian Smolorz
2008-05-28  9:10 ` Jan Kiszka
2008-05-28 12:16   ` Johan Borkhuis [this message]
2008-05-28 12:30     ` Jan Kiszka

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=483D4D1E.6030100@domain.hid \
    --to=j.borkhuis@domain.hid \
    --cc=jan.kiszka@domain.hid \
    --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.