All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: roderik.wildenburg@domain.hid
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-help] sem_wait increments fault counter
Date: Fri, 08 May 2009 17:24:30 +0200	[thread overview]
Message-ID: <4A044EAE.8070408@domain.hid> (raw)
In-Reply-To: <5D63919D95F87E4D9D34FF7748CE2C2A019C3523@domain.hid>

roderik.wildenburg@domain.hid wrote:
>>> I try to give some more information: In fact it is a library we are
>>> talking about (let´s call it shmlib). This library creates a shared
>>> memory and a (named) semaphore which should synchronise the 
>> access to
>>> the shared memory. This library (shmlib) is linked with Xenomai
>>> posix-library, so all posix-calls within shmlib should be handled by
>>> Xenomai.
>> Well, not quite. Linking is not enough. To actually use Xenomai posix
>> library calls, you have to pass the bunch of -Wl,--wrap 
>> options to gcc,
>> which you get when calling xeno-config --posix-ldflags. Is it what you
>> are doing.
> 
> Not exactly, I wrap all posix calls in my library (shmlib) by hand:
> shm_open -> __wrap_shm_open
> So, when linking shmlib with an application the wrap-options for gcc
> don´t need to be provided (I hope. And the linker does not complain).

If shmlib is a shared lib, then wrapping when compiling/linking the lib
is all that is needed. Flags do not need to be passed to the application
 using the lib. If it is a static lib, of course, things are different.

In any case, I still do not know if the calls to sem_open/sem_wait are
wrapped too ?

>>> Is trap 0 explicitly generated by Xenomay in some error 
>> case or is it
>>> "just" a CPU error when executing an illegal instruction (but where
>>> should this illegal instruction/code come from ?) ?
>>>
>>> By the way: this error also happens with Xenoami 2.4.6.
>> No, Xenomai has no particular reason to voluntarily generate 
>> a trap. And
>> this trap probably causes the calling thread to switch to secondary
>> mode, so this is bad news if it is a thread with actual real-time
>> activities. As Philippe told you, this trap may be due to 
>> some Power PC
>> specific behaviour.
> 
> No, it is not a real_time thread which causes the trap. It is just
> a Linux application which has been linked with my library and therefore
> becomes a Xenomai thread (but probably in secondary mode ?).

As indicated by Philippe, if the fault counter is incremented, the
Xenomai thread runs in primary mode at the time when the fault happens.

> Neverthelss, the problem(?) we are talking about is caused by
> sem_wait not by shared memory (as far as I can see).
> Is the problem worth to be further investigated (at the moment I
> don´t have any obvious drawbacks from trap 0). If so, do you have an idea what
I could do else to find out the reason for the trap 0 ?

Yes, of course, but if you use Xenomai's sem_wait, you could probably
switch to Linux' sem_wait. If you want to know why the fault happens,
then put a show_stack(NULL, NULL) at the point where the counter is
incremented.

-- 
					    Gilles.



  parent reply	other threads:[~2009-05-08 15:24 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-05 13:44 [Xenomai-help] sem_wait increments fault counter roderik.wildenburg
2009-05-07 13:02 ` Gilles Chanteperdrix
2009-05-07 13:47   ` roderik.wildenburg
2009-05-07 14:05     ` Gilles Chanteperdrix
2009-05-08  7:14       ` roderik.wildenburg
2009-05-08 10:36         ` Philippe Gerum
2009-05-08 12:11           ` roderik.wildenburg
2009-05-08 15:24         ` Gilles Chanteperdrix [this message]
2009-05-15  9:53           ` [Xenomai-help] sem_wait increments fault counter - solved roderik.wildenburg
2009-05-07 13:32 ` [Xenomai-help] sem_wait increments fault counter Philippe Gerum

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=4A044EAE.8070408@domain.hid \
    --to=gilles.chanteperdrix@xenomai.org \
    --cc=roderik.wildenburg@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.