No network connectivity for new domU's (No available IRQ to bind to: increase NR_DYNIRQS)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
xen-3.2 (Fedora) |
Fix Released
|
High
|
|||
xen-3.2 (Ubuntu) |
New
|
Undecided
|
Unassigned | ||
xen-meta (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
I have a Ubuntu 8.04 server running with Xen 3.2
Linux vps-pool-
DISTRIB_ID=Ubuntu
DISTRIB_
DISTRIB_
DISTRIB_
The machine is pretty powerfull:
* Dual CPU Quad Core Xeon
* 64GB FB-Dimm DDR2
* Dual Intel Corporation 80003ES2LAN Gbit Ethernet
On the machine are 78 domU's running and they run fine, but when starting domU number 79 it boots fine, but the network does not come up.
The network looks like:
* eth0: untagged VLAN connected to private LAN
* eth0.711: tagged VLAN for management
* eth0.710 <> vlanbr710, connectivity for domU's
A snippet of "brctl show"
bridge name bridge id STP enabled interfaces
vlanbr710 8000.feffffffffff no eth0.710
What caught my attention is that the bridge of the newest domU drops all the traffic:
vps78 Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:31755 overruns:0 carrier:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
When i do a tcpdump in the domU i see no traffic coming into the domU and as you can see, the RX/TX bytes stays at 0.0B
All the new domU's i create don't have network access, but the running domU's are working fine.
I found a post on the Xen mailinglist: http://
On that post the bug seemed fixed in the upstream code.
Since this machine is in production at the moment i can't reboot it or build some new kernels.
Does anyone know how to fix this?
Changed in xen-3.2: | |
status: | Unknown → Fix Released |
Changed in xen-3.2 (Fedora): | |
importance: | Unknown → High |
Description of problem:
The number of Xen domains that can be started is determined in part by the
number of available dynamic IRQs and the number of IRQs used by each guest. This
is limited by the compile time constant NR_DYNIRQS:
#define NR_DYNIRQS 256
When this number is exceeded, find_unbound_irq() will fail and panic the system:
+static int find_unbound_ irq(void)
+{
+ int irq;
+
+ /* Only allocate from dynirq range */
+ for (irq = DYNIRQ_BASE; irq < NR_IRQS; irq++)
+ if (irq_bindcount[irq] == 0)
+ break;
+
+ if (irq == NR_IRQS)
+ panic("No available IRQ to bind to: increase NR_IRQS!n");
+
+ return irq;
+}
With typical guests needing a minimum of two interrupts this places an upper
bound on the number of guests that can be created.
Version-Release number of selected component (if applicable):
2.6.18-86.el5xen
How reproducible:
100%
Steps to Reproduce:
1. Boot a xen dom0
2. Configure a large number of guests
3. Start booting guests one at a time
Actual results:
Eventually (assuming sufficient memory / I/O resources are available) the Dom0
guest will panic:
Kernel panic - not syncing: No available IRQ to bind to: increase NR_IRQS!
(XEN) Domain 0 crashed: 'noreboot' set - not rebooting.
Expected results:
No panic.
Additional info: