comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: Re: longest path through a task
Date: Thu, 28 May 2015 17:37:26 +0100
Date: 2015-05-28T17:37:26+01:00	[thread overview]
Message-ID: <lymw0o1wvt.fsf@pushface.org> (raw)
In-Reply-To: 7d56e720-5e91-4950-b4ae-29d7ddbdc11a@googlegroups.com

jan.de.kruyf@gmail.com writes:

> I dumped the multithread stuff and made a single-thread / multitask
> runtime (slow in Ada unfortunately, but not as slow as multi-threading
> and interrupts. The Ravenscar runtime tries to be everything for
> everybody).

Just did some measurements (clumsily) using the Cortex-M4 counter as in
[1], and from entering the Ada handler to the triggered task starting to
execute averaged at 1200 cycles (6.7 us) with -Og, 1070 cycles (5.9 us)
with -O2. There is some code in the C handler to redirect to the Ada
handler: see [2], starting at line 236.

I wrote the C handling using weak symbols, so there's no reason (that I
can see) why an interrupt that needed better performance shouldn't hook
in directly, avoiding the Ada RTS; not so obvious how it would then
communicate with the rest of the code.

[1] http://stackoverflow.com/a/19124472
[2]
https://sourceforge.net/p/stm32f4-gnat-rts/code/ci/default/tree/stm32f429i-disco-rtos/src/stm32f4xx_it.c

  parent reply	other threads:[~2015-05-28 16:37 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-27 19:38 longest path through a task jan.de.kruyf
2015-05-27 20:09 ` Niklas Holsti
2015-05-28  6:54   ` jan.de.kruyf
2015-05-28  9:04     ` Niklas Holsti
2015-05-28 12:27       ` brbarkstrom
2015-05-28 14:01         ` jan.de.kruyf
2015-05-28 13:04       ` jan.de.kruyf
2015-05-29  4:38         ` Niklas Holsti
2015-05-28 16:37     ` Simon Wright [this message]
2015-05-28 17:43       ` jan.de.kruyf
2015-05-28 17:52         ` Simon Wright
2015-05-28 18:12           ` jan.de.kruyf
2015-05-29 16:31       ` Simon Wright
2015-05-30 10:50         ` jan.de.kruyf
2015-06-01 13:32         ` Patrick Noffke
2015-06-01 19:09           ` Simon Wright
2015-06-02 22:15           ` Stephen Leake
2015-06-01  4:27   ` Windows Text_IO.Get_Line issue tornenvi
2015-06-01  5:01     ` tornenvi
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox