All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Schnell <mschnell@lumino.de>
Cc: linux-embedded@vger.kernel.org
Subject: Re: AMP on an SMP system
Date: Fri, 02 Aug 2013 17:24:54 +0200	[thread overview]
Message-ID: <51FBCF46.4080700@lumino.de> (raw)
In-Reply-To: <51FBC7FE.4000403@gmail.com>

On 08/02/2013 04:53 PM, Marco Stornelli wrote:
>
>>   - how to assign an interrupt (e.g. a dedicated timer) to the 
>> subsystem ?
>
> Interrupt handler are kernel thread, so you can schedule your kernel 
> thread on your "normal" cpu.
Sorry. I don't understand.

The point I'd like to make is, that for really low latency stuff the ISR 
needs to take place immediately when the hardware fires an interrupt.

As the Linux kernel will (for the SMP CPUs it handles) need to disable 
interrupt in certain cases, it is essential that the "really low 
latency" interrupt is assigned to the AMP cpu (that the Kernel will 
never touch).

> AFAIC, no latency for cpu "under affinity".
That would be great but it need the stuff described above.
In fact the interrupt would need to be assigned to the AMP cpu by some 
hardware means (that I don't know anything about yet), and not be 
"forwarded" in any way from some other cpu (which is managed by the 
Kernel) and thus might be in a "interrupt disable state at some point in 
time.

>> (and how
>> many cpu cycles at max are needed to enter the ISR) ?
>
> It's difficult to answer to this question because the performance 
> depends on your system. From my last statistics I saw that with an rt 
> linux kernel you can stay below 50us for the interrupt latency.
Of course (sorry for unclear language). I tried to ask for a pointer to 
start developing an algorithm that allows to predict the max latency the 
system can offer.

Here we could try to do these calculations as well with a "really 
dedicated AMP" CPU and with a system using "preempt-rt" and "cpu 
affinity" appropriately. to see if a more "standard" way to do things 
might be good enough.

Thanks for your answers,
-Michael

  reply	other threads:[~2013-08-02 15:24 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-02  8:33 AMP on an SMP system Michael Schnell
2013-08-02 11:42 ` Robert Schwebel
2013-08-02 12:13   ` Michael Schnell
2013-08-02 14:53     ` Marco Stornelli
2013-08-02 15:24       ` Michael Schnell [this message]
2013-08-02 15:37         ` Marco Stornelli
2013-08-02 16:00           ` Michael Schnell
2013-08-02 15:58             ` Marco Stornelli
2013-08-03 19:11       ` Robert Schwebel
2013-08-05  7:25         ` Michael Schnell
2013-08-05  8:17           ` Robert Schwebel
2013-08-05  9:04             ` Michael Schnell
2013-08-04 21:28 ` Lambrecht Jürgen
2013-08-05  7:36   ` Michael Schnell
2013-08-05 10:00   ` Lambrecht Jürgen
2013-08-07  8:23     ` Michael Schnell
2013-08-07  8:29       ` Michael Schnell
2013-08-07  9:04       ` Michael Schnell
2013-08-08  7:41 ` Michael Schnell
  -- strict thread matches above, loose matches on Subject: below --
2013-08-02 16:16 Jon Sevy
2013-08-05  7:45 ` Michael Schnell
2013-08-05  8:21   ` Robert Schwebel
2013-08-05  8:42     ` Michael Schnell
2013-08-05  9:06 Guenter Ebermann
2013-08-05  9:34 ` Michael Schnell

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=51FBCF46.4080700@lumino.de \
    --to=mschnell@lumino.de \
    --cc=linux-embedded@vger.kernel.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.