All of lore.kernel.org
 help / color / mirror / Atom feed
From: Philippe Gerum <rpm@xenomai.org>
To: Drew <pythondrew@gmail.com>
Cc: "Xenomai@xenomai.org" <Xenomai@xenomai.org>
Subject: Re: [Xenomai] gdb / threads on beaglebone black
Date: Wed, 28 May 2014 16:24:16 +0200	[thread overview]
Message-ID: <5385F190.7050303@xenomai.org> (raw)
In-Reply-To: <CAO0fa7YGSCmPducStbh7sM=HJtPYq86iO1e2ZAaKyjUjzPMEUA@mail.gmail.com>

On 05/28/2014 04:08 PM, Drew wrote:
> Yes, my guess was correct.
> The do - while loop in trampoline is exiting with error -38 (-ENOSYS?)
> If I change line 110 of skins/native/task.c:
>
> - while(err == -EINTR)
> + while(err == -EINTR || err == -ENOSYS)
>
> then I'm able to single-step in gdb. :-)
>
> Is my change a hack, or is it the correct thing to do?

No Xenomai call should ever return ENOSYS. Something is definitely wrong 
with the current setup.

> It looks like rt_task_trampoline is only expecting EINTR to occur. Is
> some other bug causing ENOSYS?

This means that the 'barrier' syscall did not get to Xenomai core, but 
was rejected as undefined.

Could any of the hints mentioned here apply in your case?
http://www.xenomai.org/documentation/xenomai-2.6/html/TROUBLESHOOTING/#_any_xenomai_service_fails_with_code_38_enosys

  Or are there a few other valid errors
> that may be returned while waiting on the barrier? (the comment above
> the loop says "to process Linux signals" but the code only checks for
> one thing.) Should rt_task_trampoline somehow warn a user if the
> do-while encounters an error it doesn't expect? (or does it already,
> through another debug mechanism I'm not using?)

The loop only cares for non-restartable syscalls, which receive EINTR 
when interrupted by a signal handler.

>
> As an aside, another question is why rt_task_trampoline at all? Why fire
> up the new thread when it doesn't yet know what it will be executing?
> I'm guessing it is for speed, so that when rt_task_start actually does
> execute, it will execute immediately...
>

Correct, rt_task_create() does all the resource reservation, all the 
lengthy stuff. When successful, we know that we'll be able to start the 
task code upon rt_task_start(), provided the task descriptor is valid. 
rt_task_start() is only about unleashing a ready-to-run thread context.

-- 
Philippe.


  reply	other threads:[~2014-05-28 14:24 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-26  1:49 [Xenomai] gdb / threads on beaglebone black Drew
2014-05-26  7:09 ` Philippe Gerum
     [not found]   ` <CAO0fa7YQ0TxiAhbmFmt+41o+rugoLXKjXxtHygpthNOiu8gd9w@mail.gmail.com>
2014-05-26 13:23     ` Philippe Gerum
2014-05-27 12:05       ` Drew
2014-05-27 22:21         ` Drew
2014-05-28 14:08           ` Drew
2014-05-28 14:24             ` Philippe Gerum [this message]
2014-05-28 14:45               ` Michael Haberler
2014-05-28 17:54                 ` Gilles Chanteperdrix
2014-05-28 19:19                   ` Drew
2014-05-28 19:28                     ` Philippe Gerum
2014-05-28 20:06                     ` Gilles Chanteperdrix
2014-05-28 20:24                     ` Gilles Chanteperdrix
2014-05-28 20:31                   ` Michael Haberler
2014-05-28 20:36                     ` Philippe Gerum
2014-05-28 21:01                       ` Drew
2014-05-28 21:08                         ` Gilles Chanteperdrix
2014-05-28 22:27                           ` Gilles Chanteperdrix

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=5385F190.7050303@xenomai.org \
    --to=rpm@xenomai.org \
    --cc=Xenomai@xenomai.org \
    --cc=pythondrew@gmail.com \
    /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.