WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] irqbalance?

To: pak333@xxxxxxxxxxx,xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel] irqbalance?
From: Mats Petersson <mats@xxxxxxxxxxxxxxxxx>
Date: Tue, 17 Jul 2007 20:08:15 +0100
Delivery-date: Tue, 24 Jul 2007 08:54:24 -0700
Dkim-signature: a=rsa-sha1; c=relaxed/relaxed; d=googlemail.com; s=beta; h=domainkey-signature:received:received:x-mailer:date:to:from:subject:mime-version:content-type:sender:message-id; b=uaEd/4dkvEMpXs+MR3CVYqtJxRrTcSCEjTv2NPdR4hblph9GgvQ04QBlRljgsWLFC1ikSFWYuEMCclu2pEog5DZ2ZEE8xrl+Kw7KvFGk0RCRLrydRj0gLViUJkcVCTxVNYQi7RssOM5S0zAP18JZdKkd3vTXTe2vV7xGZzujIas=
Domainkey-signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=beta; h=received:x-mailer:date:to:from:subject:mime-version:content-type:sender:message-id; b=cbfla/Q0b/xb0gbhZpEUbpO/sd80ysEW4ESzEEpdjKKwbOl6sqgzyLCSespCxhkagUUxnKU4tCqg6NY3s3y3aei+MNXjYy+Cfttfh3jabfaY6CHPOUN46bXUWIaxrjATgHIH7VZcjGn9l7gQHzEF7Rn9tl00Y9HOqaDMOggkAA0=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
At 18:13 17/07/2007, pak333@xxxxxxxxxxx wrote:
resending as i did not receive a response. Anyone out there familiar with irq code

thanks
Prabha


Hi All,

If I turn off irqbalance xen/arch/x86/irq.c, does that actually stop XEN from balancing irqs across different physical cpus, or will that override the setting if there are too many interrupts and one of the cpus is overloaded.

I don't know this, but it makes little sense to have a feature to turn something off if it's not actually turning it off. How would you like it if your lightswitches in the house decided to turn on the lights because it was too dark?


Example: i have 4 cpus and i have configured irqbalance= off, so there is no irqbalancing done by xen.

That is what I'd expect.


Now if i have affintized all my physical interrupts to one cpu say cpu1 all the interrutps should be handled by the cpu1 and so should all the softirqs generated. Now what happens if one of the other cpus is lightly loaded, will some of the softirqs be queued against the other cpus or will cpu1 handle all interrupts and softirqs.

I'd like to point out that (at least in my understanding) softirq's and "real" irq's aren't strictly related, so you could well have a SOFTIRQ as a result of a hard IRQ on a different CPU - that's again a "my understanding", rather than something I've read in the code, but I believe my understanding is correct.

Also, to the best of my understanding, setting the IRQ affinity would essentially be the same as turning irq-balance off (for that interrupt).


Looks to me like there are two levels of interrupt redirection, one done by the hardware where each physical device interrupt is assigned to a particual processor dynamically and then on top of that is the irqbalancing done by Xen itself. Is that true? and irqbalance=off only affects the latter and interrupt affinitzation is for the former?

Affinity is a setting to restrict an interrupt (or other types of processing, e.g. threads, processes or VMs) to a certain processor - irq-balancing is "the opposite", e.g. that it attempts to move IRQ's around so that they are not all happening on a particular processor - this can be done in several different ways, either spreading one particular interrupt between the available processors, or by spreading several interrupts, so for example a Network interrupt happens always on one CPU, but another CPU takes disk interrupts, a third CPU takes all the timer interrupts, etc.

There's no firm and fast rule of which is better (obviously, if interrupts happen VERY frequently, then the cache would work better if they are all on one CPU). Also, if you have a NUMA architecture where the time to "get to" a certain device is dependant on which physical CPU the code is running on, then it would be better for the IRQ to be on the CPU "nearest" to the device.


All of these options have advantages and drawbacks.

I guess this is still related to your scheduler questions previously, but I'm not certain I understand what you're actually trying to achieve: preventing interrupts from being processed may give you better performance for the CPU-bound tasks, but in general it's better for OVERALL performance of the system if the I/O performance is improved - as it generally has very small impact on the CPU intensive performance, but I/O performance can easily be very badly affected by delays (latency) added to the path of the IO-request.

--
Mats



Thanks
Prabha

From: pak333@xxxxxxxxxxx
To: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] irqbalance?
Date: Mon, 16 Jul 2007 23:17:44 +0000
Content-Type: Multipart/mixed;
        boundary="NextPart_Webmail_9m3u9jl4l_581_1184692392_2"

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>