I've got some context questions. I'm on intel, measuring 
elapsed time using the tsc for various parts 
of my code running in a real-time thread.

I do have various interrupts enabled, both my
'real-time interrupt', and various interrupts
that are being handled via drivers in the linux
kernel. And I'm observing fairly infrequent 'hiccups'
in the elasped time that can't really be explained as
cacheline misses, bad branch prediction, or the like.
I know it's not my 'real-time' ISR, because I'm tracking
that internally.

So my question boils down to this: When a non-real
time interrupt hits while a real-time thread is running,
how much of the normal linux driver is able to preempt
the real time thread?

I am assuming that bh's and/or tasklets that might be 
kicked off as a result of interrupt activity would never 
run until the normal linux kernel context is restored. 

But what about the actual linux ISR (from the linux point 
of view - not the actual hardware ISR)?

Is this held off too until linux context is restored, and 
then invoked via a simulated interrupt, or is the linux ISR
actually allowed to run 'under' a real-time thread?

Suppose I'm in the linux level ISR code, and an interrupt
hits that I've got a real-time handler for - the linux ISR
is immediately preempted, right?

Just wondering, as answers will help me better understand the
timing I'm seeing for my real-time threads.

TIA,

-Dave i.



-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/

Reply via email to