From: Philippe Gerum <rpm@xenomai.org>
To: Jan Kiszka <jan.kiszka@siemens.com>
Cc: Xenomai <xenomai@xenomai.org>
Subject: Re: [Xenomai] New domain migration process with ipipe-core and forge
Date: Wed, 27 Mar 2013 11:21:08 +0100 [thread overview]
Message-ID: <5152C814.5010109@xenomai.org> (raw)
In-Reply-To: <5151F44F.3050306@siemens.com>
On 03/26/2013 08:17 PM, Jan Kiszka wrote:
> Hi Philippe,
>
> I'm trying to understand how the new Linux-to-RT migration process works
> under forge and specifically I-pipe core. It currently looks to me like
> we are delaying this needlessly:
>
> - __ipipe_migrate_head() suspends the calling Linux thread and triggers
> a context switch
> - after the switch, __ipipe_switch_tail and then
> complete_domain_migration is invoked
> - complete_domain_migration stalls head and calls ipipe_migration_hook.
> We are still running over the root domain.
> - ipipe_migration_hook in forge wakes up the RT thread and calls
> xnpod_schedule
> - as we are in root, xnarch_escalate triggers and calls ipipe_raise_irq
> - as the head domain is stalled, dispatch_irq_head just marks the
> escalation VIRQ pending, not handler is called, no actual RT
> rescheduling can be performed on its return
> - we eventually return to complete_domain_migration and simply clear
> the stall flag. No pending IRQs are process, again no VIRQ is
> delivered
> - only when we receive the next IRQ or have some other reason for
> checking the head domain's IRQ log, the pending VIRQ will finally be
> processed
>
> Did I miss something or should we actually perform some
> __ipipe_sync_stage in complete_domain_migration to accelerate the switch?
>
Yep. The current code wrongly assumes that we are covered by a root
unstall from finish_task_switch -> finish_lock_switch, but we are not
since the pipeline won't consider the head domain log when deciding
whether irqs should be synced.
--
Philippe.
prev parent reply other threads:[~2013-03-27 10:21 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-26 19:17 [Xenomai] New domain migration process with ipipe-core and forge Jan Kiszka
2013-03-26 19:29 ` Jan Kiszka
2013-03-27 10:25 ` Philippe Gerum
2013-03-27 10:27 ` Jan Kiszka
2013-03-27 10:32 ` Philippe Gerum
2013-03-27 10:35 ` Jan Kiszka
2013-03-27 11:16 ` Philippe Gerum
2013-03-27 10:21 ` Philippe Gerum [this message]
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=5152C814.5010109@xenomai.org \
--to=rpm@xenomai.org \
--cc=jan.kiszka@siemens.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.