All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@siemens.com>
To: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
Cc: Xenomai <Xenomai@xenomai.org>
Subject: Re: [Xenomai] IO-APIC latencies
Date: Mon, 17 Sep 2012 14:27:36 +0200	[thread overview]
Message-ID: <50571738.9060204@siemens.com> (raw)
In-Reply-To: <505715E4.4080404@xenomai.org>

On 2012-09-17 14:21, Gilles Chanteperdrix wrote:
> On 09/17/2012 10:18 AM, Jan Kiszka wrote:
>> On 2012-09-17 10:07, Gilles Chanteperdrix wrote:
>>> On 09/17/2012 09:43 AM, Jan Kiszka wrote:
>>>> On 2012-09-17 08:30, Gilles Chanteperdrix wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> looking at x86 latencies, I found that what was taking long on my atom
>>>>> was masking the fasteoi interrupts at IO-APIC level. So, I experimented
>>>>> an idea: masking at LAPIC level instead of IO-APIC, by using the "task
>>>>> priority" register. This seems to improve latencies on my atom:
>>>>>
>>>>> http://sisyphus.hd.free.fr/~gilles/core-3.4-latencies/atom.png
>>>>>
>>>>> This implies splitting the LAPIC vectors in a high priority and low
>>>>> priority sets, the final implementation would use ipipe_enable_irqdesc
>>>>> to detect a high priority domain, and change the vector at that time.
>>>>>
>>>>> This also improves the latencies on my old PIII with a VIA chipset, but
>>>>> it generates spurious interrupts (I do not know if it really is a
>>>>> matter, as handling a spurious interrupt is still faster than masking an
>>>>> IO-APIC interrupt), the spurious interrupts in that case are a
>>>>> documented behaviour of the LAPIC.
>>>>>
>>>>> Is there any interest in pursuing this idea, or are x86 with slow
>>>>> IO-APIC the exception more than the rule, or having to split the vector
>>>>> space appears too great a restriction?
>>>>
>>>> Line-based interrupts are legacy, of decreasing relevance for PCI
>>>> devices - likely what we are primarily interesting in here - due to MSI.
>>>
>>> Even if I enable MSI, the kernel still uses these irqs for the 
>>> peripherals integrated to the chipset, such as the USB HCI, or ATA 
>>> driver (IOW, non PCI devices). 
>>
>> Those are all PCI as well. And modern chipsets include variants of them
>> with MSI(-X) support.
> 
> Here is what I get on my workstation:
> $ grep fasteoi /proc/interrupts 
>   9:          0          0          0          0   IO-APIC-fasteoi   acpi
>  19:          0          0          0          0   IO-APIC-fasteoi   ahci
>  23:  280150305          0          0          0   IO-APIC-fasteoi   ehci_hcd:usb5, ehci_hcd:usb6
> 
> It is an sandy bridge processor, it has less than 2 years. 
> What exactly do you mean by "modern" ?

Mine is more than 2 years old and has an MSI-capable AHCI e.g.

Also interesting is the IO-APIC access delay you see on this platform.
We'll try to measure here as well.

Jan

-- 
Siemens AG, Corporate Technology, CT RTC ITP SDP-DE
Corporate Competence Center Embedded Linux


      reply	other threads:[~2012-09-17 12:27 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-17  6:30 [Xenomai] IO-APIC latencies Gilles Chanteperdrix
2012-09-17  7:43 ` Jan Kiszka
2012-09-17  8:07   ` Gilles Chanteperdrix
2012-09-17  8:18     ` Jan Kiszka
2012-09-17  8:32       ` Gilles Chanteperdrix
2012-09-17  9:07         ` Jan Kiszka
2012-09-17  9:29           ` Gilles Chanteperdrix
2012-09-17  9:42             ` Jan Kiszka
2012-09-17 10:00               ` Gilles Chanteperdrix
2012-09-17 10:39                 ` Henri Roosen
2012-09-17 11:14                   ` Gilles Chanteperdrix
2012-09-17 12:15                     ` Henri Roosen
2012-09-17 12:27                       ` Jan Kiszka
2012-09-17 13:46                         ` Gilles Chanteperdrix
2012-09-17 13:54                           ` Jan Kiszka
2012-09-17 14:02                             ` Gilles Chanteperdrix
2012-09-17 14:35                               ` Jan Kiszka
2012-09-17 17:46                                 ` Gilles Chanteperdrix
2012-09-17 18:05                                   ` Jan Kiszka
2012-09-17 18:08                                     ` Gilles Chanteperdrix
2012-09-17 18:12                                       ` Jan Kiszka
2012-09-17 18:13                                         ` Gilles Chanteperdrix
2012-09-17 18:15                                         ` Jan Kiszka
2012-09-17 18:16                                           ` Gilles Chanteperdrix
2012-09-17 18:18                                             ` Jan Kiszka
2012-09-17 18:18                                           ` Gilles Chanteperdrix
2012-09-17 18:22                                             ` Gilles Chanteperdrix
2012-09-17 18:29                                             ` Jan Kiszka
2012-09-17 18:37                                               ` Gilles Chanteperdrix
2012-09-17 18:54                                                 ` Jan Kiszka
2012-09-17 21:50                                                   ` Gilles Chanteperdrix
2012-09-18  8:48                                                     ` Jan Kiszka
2012-09-18  9:06                                                       ` Gilles Chanteperdrix
2012-09-18  9:12                                                         ` Gilles Chanteperdrix
2012-09-18  9:30                                                         ` Jan Kiszka
2012-09-18  9:36                                                           ` Gilles Chanteperdrix
2012-09-17 18:15                                         ` Gilles Chanteperdrix
2012-09-17 12:12                 ` Richard Cochran
2012-09-17 12:21       ` Gilles Chanteperdrix
2012-09-17 12:27         ` Jan Kiszka [this message]

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=50571738.9060204@siemens.com \
    --to=jan.kiszka@siemens.com \
    --cc=Xenomai@xenomai.org \
    --cc=gilles.chanteperdrix@xenomai.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.