[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: [Xen-users] (xen) Possible bug: Memory squeeze in netback driver.

This is a rather curious path in the code involving rate limiting that I'm not all that familiar with. Does it help is you create the domains with a large maxmem than memory? For instance:

maxmem = 512
memory = 256

Perhaps someone with more experience in the rate limiting code can explain why this message is only printed when it's enabled? To save some work, here's the relevant bits from netback.c:net_rx_action():

       if (!xen_feature(XENFEAT_auto_translated_physmap)) {
           /* Memory squeeze? Back off for an arbitrary while. */
           if ((new_mfn = alloc_mfn()) == 0) {
               if ( net_ratelimit() )
                   WPRINTK("Memory squeeze in netback "
               mod_timer(&net_timer, jiffies + HZ);
               skb_queue_head(&rx_queue, skb);

Does the rate limiting code cause increase_reservation to fail if you've exceeded your limit?


Anthony Liguori

Erik Hensema wrote:
Hi everybody,

When I start more than about 3 domU's the following messages are logged in dom0:

Jun  6 18:30:03 thebe kernel: printk: 18 messages suppressed.
Jun 6 18:30:03 thebe kernel: xen_net: Memory squeeze in netback driver.
Jun  6 18:30:03 thebe last message repeated 9 times

This progressively gets worse when I start more and more domU's, up until the point some or all domU's lose their network connectivety.

When I google on the error message, a few pages turn up, but no real sollutions.

I'll try to describe my setup in detail:

the hardware:

AMD Opteron 144
4 GB ram
Dual Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet controllers

It's Aplus hardware from supermicro.

the software:

Suse Linux 10.1, default kernel:
Xen version 3.0.2_09656-4 (abuild@xxxxxxx) (gcc version 4.1.0 (SUSE Linux)) Tue May 2 01:39:27 UTC 2006

I've got two bridges: xenbr0 and xenbr1:
bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.feffffffffff       no              vif0.0
(all vifX.0)
xenbr1          8000.feffffffffff       no              vif0.1
(all vifX.1)

So basically I've got two seperate lans, available to all domains. No NAT. One lan is an internal vlan, the other lan is the public internet. Each domain runs an iptables firewall, including domain0. The firewall is your basic run-of-the-mill iptables firewall, rules are matching eth0 and eth1, no special modules are used.

domain0's got plenty of free ram when the memory squeeze happens:
thebe:~ # free -m
             total       used       free     shared    buffers  cached
Mem:          1506        646        859          0        290  101
-/+ buffers/cache:        255       1250
Swap:         4102          0       4102

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.