All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai] New domain migration process with ipipe-core and forge
@ 2013-03-26 19:17 Jan Kiszka
  2013-03-26 19:29 ` Jan Kiszka
  2013-03-27 10:21 ` Philippe Gerum
  0 siblings, 2 replies; 8+ messages in thread
From: Jan Kiszka @ 2013-03-26 19:17 UTC (permalink / raw)
  To: Philippe Gerum; +Cc: Xenomai

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


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-03-27 11:16 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 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.