From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [Xen-users] (xen) Possible bug: Memory squeeze in netback driver. Date: Tue, 06 Jun 2006 16:43:42 -0500 Message-ID: <4485F70E.4020602@us.ibm.com> References: <200606062047.44746.erik@hensema.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <200606062047.44746.erik@hensema.net> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Erik Hensema Cc: xen-devel List-Id: xen-devel@lists.xenproject.org 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 " "driver.\n"); mod_timer(&net_timer, jiffies + HZ); skb_queue_head(&rx_queue, skb); break; } Does the rate limiting code cause increase_reservation to fail if you've exceeded your limit? Regards, 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: 2.6.16.13-4-xen > Xen version 3.0.2_09656-4 (abuild@suse.de) (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 > peth0 > vif1.0 > (all vifX.0) > xenbr1 8000.feffffffffff no vif0.1 > peth1 > vif1.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 > >