From: Jan Kiszka <jan.kiszka@siemens.com>
To: Philippe Gerum <rpm@xenomai.org>
Cc: Xenomai <xenomai@xenomai.org>
Subject: [Xenomai] New domain migration process with ipipe-core and forge
Date: Tue, 26 Mar 2013 20:17:35 +0100 [thread overview]
Message-ID: <5151F44F.3050306@siemens.com> (raw)
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?
Jan
--
Siemens AG, Corporate Technology, CT RTC ITP SDP-DE
Corporate Competence Center Embedded Linux
next reply other threads:[~2013-03-26 19:17 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-26 19:17 Jan Kiszka [this message]
2013-03-26 19:29 ` [Xenomai] New domain migration process with ipipe-core and forge 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
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=5151F44F.3050306@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=rpm@xenomai.org \
--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.