* [Xenomai] What is the Xenomai time limit?
@ 2012-05-29 12:38 ali hagigat
2012-05-29 14:43 ` Philippe Gerum
0 siblings, 1 reply; 6+ messages in thread
From: ali hagigat @ 2012-05-29 12:38 UTC (permalink / raw)
To: xenomai
We know that Xenomai can create hard real time tasks and it means that
the real time tasks will be executed up to a specific time. My
question is about that time. How much is that time?(100 micro seconds,
150 usec, or...)
I know that it may depend on the architecture and the software platform.
I want to know how can i determine that time for my x86 32-bit PC
system? and besides what major factors are effecting the time?
Any answer will be much appreciated.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai] What is the Xenomai time limit?
[not found] <CAKKWdtfO26_v+gQnMnu9_dkWMMQ3D7WCB_PxXa6tsSYNFEnBdQ@mail.gmail.com>
@ 2012-05-29 13:14 ` Gilles Chanteperdrix
0 siblings, 0 replies; 6+ messages in thread
From: Gilles Chanteperdrix @ 2012-05-29 13:14 UTC (permalink / raw)
To: ali hagigat; +Cc: xenoma
On 05/29/2012 02:54 PM, ali hagigat wrote:
> We know that Xenomai can create hard real time tasks and it means that
> the real time tasks will be executed up to a specific time. My
> question is about that time. How much is that time?(100 micro seconds,
> 150 usec, or...)
> I know that it may depend on the architecture and the software platform.
> I want to know how can i determine that time for my x86 32-bit PC
> system? and besides what major factors are effecting the time?
> Any answer will be much appreciated.
> Is it OK to ask such general questions in this mailing list or i
> should use the other mailing list, xenomai@xenomai.org?
> Thank you Mr. Chanteperdrix to answer my previous question.
There is no such time limit. A task is executed as long as it does not
suspend or yield and there is no other task with higher priority.
Please note: the mailing list address changed, it is now xenomai@xenomai.org
--
Gilles.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai] What is the Xenomai time limit?
2012-05-29 12:38 ali hagigat
@ 2012-05-29 14:43 ` Philippe Gerum
2012-05-30 13:39 ` ali hagigat
0 siblings, 1 reply; 6+ messages in thread
From: Philippe Gerum @ 2012-05-29 14:43 UTC (permalink / raw)
To: ali hagigat; +Cc: xenomai
On 05/29/2012 02:38 PM, ali hagigat wrote:
> We know that Xenomai can create hard real time tasks and it means that
> the real time tasks will be executed up to a specific time. My
> question is about that time. How much is that time?(100 micro seconds,
> 150 usec, or...)
Do you mean maximum latency? If so, you only have to run the "latency"
test program on your board (/usr/xenomai/bin/latency for a default install).
With modern hardware, 100 us on x86 is considered a bug.
> I know that it may depend on the architecture and the software platform.
> I want to know how can i determine that time for my x86 32-bit PC
> system? and besides what major factors are effecting the time?
Assuming time == latency, major arch-independent factors include bus
locking, MMU handling (e.g. see issues with VIVT caches on ARM), cache
artifacts caused by concurrent linux activity in general (which may
cause real-time code to be evicted during idle phases by non-rt code).
x86-wise, there is some more issues to keep an eye on:
- Hyperthreading (not nice to -rt requirements)
- SMI sources (causing IRQ-disabling BIOS code to be invoked directly by
special interrupts not going through the programmable interrupt
controller, so we can't block them, and don't know when they happen).
- Some graphic card adapters (causing hw stalls to favor their own
throughput)
- Some graphic card drivers, most often proprietary, disabling
interrupts for too long.
- Some cycle-hungry x86 cache invalidation instructions (wbinv).
- The legacy x86 PIT (i8254) when used, which goes through a legacy ISA
bus, as expensive as ~1.5-2.5 us for each I/O access (you need at least
two of them to program the next clock tick). Fortunately, you won't need
it on a modern x86 platform, unless really unlucky.
Oh well, other that that, x86 is almost fine for -rt stuff.
> Any answer will be much appreciated.
>
> _______________________________________________
> Xenomai mailing list
> Xenomai@xenomai.org
> http://www.xenomai.org/mailman/listinfo/xenomai
>
--
Philippe.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai] What is the Xenomai time limit?
[not found] ` <4FC528F0.2070307@xenomai.org>
@ 2012-05-29 20:00 ` xenophile
0 siblings, 0 replies; 6+ messages in thread
From: xenophile @ 2012-05-29 20:00 UTC (permalink / raw)
To: Gilles Chanteperdrix; +Cc: xenomai
On 05/29/12 21:52, Gilles Chanteperdrix wrote:
> On 05/29/2012 09:50 PM, xenophile wrote:
>> On 05/29/12 21:41, xenomai-owner@xenomai.org wrote:
>>>
>>> On 05/29/12 16:43, Philippe Gerum wrote:
>>>>
>>>> x86-wise, there is some more issues to keep an eye on:
>>>>
>>>> - Hyperthreading (not nice to -rt requirements)
>>>> - SMI sources (causing IRQ-disabling BIOS code to be invoked directly by
>>>> special interrupts not going through the programmable interrupt
>>>> controller, so we can't block them, and don't know when they happen).
>>>> - Some graphic card adapters (causing hw stalls to favor their own
>>>> throughput)
>>>> - Some graphic card drivers, most often proprietary, disabling
>>>> interrupts for too long.
>>>> - Some cycle-hungry x86 cache invalidation instructions (wbinv).
>>>> - The legacy x86 PIT (i8254) when used, which goes through a legacy ISA
>>>> bus, as expensive as ~1.5-2.5 us for each I/O access (you need at least
>>>> two of them to program the next clock tick). Fortunately, you won't need
>>>> it on a modern x86 platform, unless really unlucky.
>>>>
>>>> Oh well, other that that, x86 is almost fine for -rt stuff.
>>>>
>>>
>>
>> So what would be the best kind of x86 hardware to use for RT?
>>
>> Hyperthreading comes with multicore processors I think.
>>
>> What systems least SMI code ?
>>
>> My guess is that fast 32 bit x86 hardware like top of range AMD Athlon
>> processors would be good (better than multicore 64 bit ) but I'm only
>> guessing.
>>
>> Are fast graphics cards better, so long as they can be run without
>> proprietary drivers ?
>>
>> I'm sure there's no hard and fast answer but can you offer any guide
>> lines?
>>
>> Thx.
>
> The address of the mailing list is xenomai@xenomai.org, not
> xenomai-owner@xenomai.org
>
Sorry, I got a bounce because I originally sent the msg from the wrong
email account my end (that bounce came from "owner").
I replied to the bounce with the correct sender, thinking it would go
to the list , I did not notice that it was from xenomai-owner.
So hopefully both sender and recipient are now correct and this will
appear on the list.
Phew.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai] What is the Xenomai time limit?
2012-05-29 14:43 ` Philippe Gerum
@ 2012-05-30 13:39 ` ali hagigat
2012-05-30 14:49 ` Philippe Gerum
0 siblings, 1 reply; 6+ messages in thread
From: ali hagigat @ 2012-05-30 13:39 UTC (permalink / raw)
To: xenomai
Dear Philippe,
Much appreciate for the reply.
Latency test seems to give some statistics about the system at the
time of the test.
I was looking for an exact maximum time so that scheduling latency is
always below that time.
I figured it out that even adding a new hardware may effect the
maximum scheduling latency. Is that true? If I add a new hardware and
its driver, it can mask the interrupts for example. Can it make the
xenomai system non real-time?
Regards
> On 05/29/2012 02:38 PM, ali hagigat wrote:
>>
>> We know that Xenomai can create hard real time tasks and it means that
>> the real time tasks will be executed up to a specific time. My
>> question is about that time. How much is that time?(100 micro seconds,
>> 150 usec, or...)
>
>
> Do you mean maximum latency? If so, you only have to run the "latency" test
> program on your board (/usr/xenomai/bin/latency for a default install).
>
> With modern hardware, 100 us on x86 is considered a bug.
>
>
>> I know that it may depend on the architecture and the software platform.
>> I want to know how can i determine that time for my x86 32-bit PC
>> system? and besides what major factors are effecting the time?
>
>
> Assuming time == latency, major arch-independent factors include bus
> locking, MMU handling (e.g. see issues with VIVT caches on ARM), cache
> artifacts caused by concurrent linux activity in general (which may cause
> real-time code to be evicted during idle phases by non-rt code).
>
> x86-wise, there is some more issues to keep an eye on:
>
> - Hyperthreading (not nice to -rt requirements)
> - SMI sources (causing IRQ-disabling BIOS code to be invoked directly by
> special interrupts not going through the programmable interrupt controller,
> so we can't block them, and don't know when they happen).
> - Some graphic card adapters (causing hw stalls to favor their own
> throughput)
> - Some graphic card drivers, most often proprietary, disabling interrupts
> for too long.
> - Some cycle-hungry x86 cache invalidation instructions (wbinv).
> - The legacy x86 PIT (i8254) when used, which goes through a legacy ISA bus,
> as expensive as ~1.5-2.5 us for each I/O access (you need at least two of
> them to program the next clock tick). Fortunately, you won't need it on a
> modern x86 platform, unless really unlucky.
>
> Oh well, other that that, x86 is almost fine for -rt stuff.
>
>> Any answer will be much appreciated.
>>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai] What is the Xenomai time limit?
2012-05-30 13:39 ` ali hagigat
@ 2012-05-30 14:49 ` Philippe Gerum
0 siblings, 0 replies; 6+ messages in thread
From: Philippe Gerum @ 2012-05-30 14:49 UTC (permalink / raw)
To: ali hagigat; +Cc: xenomai
On 05/30/2012 03:39 PM, ali hagigat wrote:
> Dear Philippe,
>
> Much appreciate for the reply.
>
> Latency test seems to give some statistics about the system at the
> time of the test.
>
> I was looking for an exact maximum time so that scheduling latency is
> always below that time.
See "lat worst" column of that test, after a significant run time under
meaningful load. This system offers experimental values, nothing more.
>
> I figured it out that even adding a new hardware may effect the
> maximum scheduling latency. Is that true? If I add a new hardware and
> its driver, it can mask the interrupts for example. Can it make the
> xenomai system non real-time?
It's unlikely that a driver by itself would introduce latency unless it
deliberately attempts to bypass the interrupt virtualization mechanism
implemented by Xenomai, and does it wrongly.
Generally speaking, a real-time system is in essence a specific
combination of hw and sw which happen to cope well together with respect
to meeting deadlines, so I don't believe there is a definite answer to
your question. In theory, that answer would be yes. In practice, this
happens rarely.
>
> Regards
>
>> On 05/29/2012 02:38 PM, ali hagigat wrote:
>>>
>>> We know that Xenomai can create hard real time tasks and it means that
>>> the real time tasks will be executed up to a specific time. My
>>> question is about that time. How much is that time?(100 micro seconds,
>>> 150 usec, or...)
>>
>>
>> Do you mean maximum latency? If so, you only have to run the "latency" test
>> program on your board (/usr/xenomai/bin/latency for a default install).
>>
>> With modern hardware, 100 us on x86 is considered a bug.
>>
>>
>>> I know that it may depend on the architecture and the software platform.
>>> I want to know how can i determine that time for my x86 32-bit PC
>>> system? and besides what major factors are effecting the time?
>>
>>
>> Assuming time == latency, major arch-independent factors include bus
>> locking, MMU handling (e.g. see issues with VIVT caches on ARM), cache
>> artifacts caused by concurrent linux activity in general (which may cause
>> real-time code to be evicted during idle phases by non-rt code).
>>
>> x86-wise, there is some more issues to keep an eye on:
>>
>> - Hyperthreading (not nice to -rt requirements)
>> - SMI sources (causing IRQ-disabling BIOS code to be invoked directly by
>> special interrupts not going through the programmable interrupt controller,
>> so we can't block them, and don't know when they happen).
>> - Some graphic card adapters (causing hw stalls to favor their own
>> throughput)
>> - Some graphic card drivers, most often proprietary, disabling interrupts
>> for too long.
>> - Some cycle-hungry x86 cache invalidation instructions (wbinv).
>> - The legacy x86 PIT (i8254) when used, which goes through a legacy ISA bus,
>> as expensive as ~1.5-2.5 us for each I/O access (you need at least two of
>> them to program the next clock tick). Fortunately, you won't need it on a
>> modern x86 platform, unless really unlucky.
>>
>> Oh well, other that that, x86 is almost fine for -rt stuff.
>>
>>> Any answer will be much appreciated.
>>>
>
--
Philippe.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-05-30 14:49 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <mailman.0.1338320469.1537.xenomai@xenomai.org>
[not found] ` <4FC52889.8050002@piments.com>
[not found] ` <4FC528F0.2070307@xenomai.org>
2012-05-29 20:00 ` [Xenomai] What is the Xenomai time limit? xenophile
[not found] <CAKKWdtfO26_v+gQnMnu9_dkWMMQ3D7WCB_PxXa6tsSYNFEnBdQ@mail.gmail.com>
2012-05-29 13:14 ` Gilles Chanteperdrix
2012-05-29 12:38 ali hagigat
2012-05-29 14:43 ` Philippe Gerum
2012-05-30 13:39 ` ali hagigat
2012-05-30 14:49 ` 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.