From: ebiederm@xmission.com (Eric W. Biederman)
To: Chris Snook <csnook@redhat.com>
Cc: Krzysztof Oledzki <olel@ans.pl>,
Arjan van de Ven <arjan@infradead.org>,
linux-kernel@vger.kernel.org
Subject: Re: IRQ handling difference between i386 and x86_64
Date: Mon, 02 Jul 2007 09:16:55 -0600 [thread overview]
Message-ID: <m1hcomkf88.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <46882518.5050906@redhat.com> (Chris Snook's message of "Sun, 01 Jul 2007 18:05:12 -0400")
Chris Snook <csnook@redhat.com> writes:
> Krzysztof Oledzki wrote:
>>
>>
>> On Sat, 30 Jun 2007, Arjan van de Ven wrote:
>>
>>> On Sat, 2007-06-30 at 16:55 +0200, Krzysztof Oledzki wrote:
>>>> Hello,
>>>>
>>>> It seems that IRQ handling is somehow different between i386 and x86_64.
>>>>
>>>> In my Dell PowerEdge 1950 is it possible to enable interrupts spreading
>>>> over all CPUs. This a single CPU, four CORE system (Quad-Core E5335 Xeon)
>>>> so I think that interrupts migration may be useful. Unfortunately, it
>>>> works only with 32-bit kernel. Booting it with x86_64 leads to situation,
>>>> when all interrupts goes only to the first cpu matching a smp_affinity
>>>> mask.
>>>
>>> arguably that is the most efficient behavior... round robin of
>>> interrupts is the worst possible case in terms of performance
>>
>> Even on dual/quadro core CPUs with shared cache? So why it is possible to
>> enable such behaviuor in BIOS, which works only on i386 BTW. :(
>>
>>> are you using irqbalance ? (www.irqbalance.org)
>>
>> Yes, I'm aware about this useful tool, but in some situations (routing for
>> example) it cannot help much as it keeps three cpus idle. :(
>>
>> Best regards,
>>
>> Krzysztof Olędzki
>
> Interleaving interrupt delivery will completely break TCP header prediction, and
> cost you far more CPU time than it will save. In fact, because of the locking,
> it will probably scale negatively with the number of CPUs, if your workload is
> mostly TCP/IP processing. The way around this is to ensure that the packets for
> any given TCP socket are all delivered to the same processor. If you have
> multiple NICs and use 802.3ad bonding with layer3+4 hashing, header prediction
> will work fine, and you don't have to disable irqbalance, because it will do the
> right thing.
Regardless mostly this appears to be a case of running in a different
ioapic mode, or possibly the software irq balance logic (as arch/x86_64)
does not have irqbalance in the kernel.
Hardware does automatic balancing in lowest-priority logical delivery mode.
All balancing must be done in software in flat physical delivery mode.
I'm guessing do to compile options etc. You are using flat physical delivery
mode on x86_64.
If the BIOS has an option to mess with this you are probably playing with
as system that has known ioapic related hardware bugs and enabling it in
the BIOS likely is enabling hardware problems.
Eric
next prev parent reply other threads:[~2007-07-02 15:18 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-30 14:55 IRQ handling difference between i386 and x86_64 Krzysztof Oledzki
2007-06-30 15:40 ` Arjan van de Ven
2007-06-30 22:53 ` Krzysztof Oledzki
2007-07-01 22:05 ` Chris Snook
2007-07-02 15:16 ` Eric W. Biederman [this message]
2007-07-02 11:16 ` Vaidyanathan Srinivasan
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=m1hcomkf88.fsf@ebiederm.dsl.xmission.com \
--to=ebiederm@xmission.com \
--cc=arjan@infradead.org \
--cc=csnook@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=olel@ans.pl \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox