From owner-freebsd-hackers@FreeBSD.ORG Fri Mar 18 15:17:48 2011 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1AA34106564A for ; Fri, 18 Mar 2011 15:17:48 +0000 (UTC) (envelope-from mats.w.lindberg@gmail.com) Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by mx1.freebsd.org (Postfix) with ESMTP id 9BF3F8FC0C for ; Fri, 18 Mar 2011 15:17:47 +0000 (UTC) Received: by fxm11 with SMTP id 11so4390698fxm.13 for ; Fri, 18 Mar 2011 08:17:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=YAqoPDxI7+lsKt3lPSZl3G0stD1iYbiSlYOXObafbEA=; b=JQhZXPQ26P1CsUgh+mscwmsZKhoTzToX10o7ZdhtJd9/KNmcVE0/o3JjGo+/j8D3hs RRDqx45zu5RCv+Raddv81jJQ3Xf02vEfNLmYkotobEa7ZqDNJiFZcmt5cNKfDxb7oHUN Xxps9UIqdfheJWkPwOoWta1A6SgLrZdvdY+JY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=vr9RojnZYR72gglVNMusIjM22ulGS0Z2DJCFf22cZ4BzH0QkVc4LNwEygmM4xEIztQ cTSQ6UVEDCC3SWQCJuraJaHiNiYeuuzkrSMtDkrwdQTaFTJFr6U+jDIgv0NlqNFY8K8H fnmWxenXOJanY3ZAtFMXgbnt41ZIqEFbuIFVs= MIME-Version: 1.0 Received: by 10.223.64.201 with SMTP id f9mr1381045fai.102.1300461457066; Fri, 18 Mar 2011 08:17:37 -0700 (PDT) Received: by 10.223.100.16 with HTTP; Fri, 18 Mar 2011 08:17:36 -0700 (PDT) In-Reply-To: References: <4D7DFC6F.80008@gmail.com> <4D7E0831.4060804@gmail.com> <4D834F35.5030806@gmail.com> Date: Fri, 18 Mar 2011 16:17:36 +0100 Message-ID: From: Mats Lindberg To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Fwd: FreeBSD 6 vs 8.1 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Mar 2011 15:17:48 -0000 ---------- Forwarded message ---------- From: Mats Lindberg Date: 2011/3/18 Subject: Re: FreeBSD 6 vs 8.1 To: Mark Tinguely 2011/3/18 Mark Tinguely > On 3/18/2011 3:35 AM, Mats Lindberg wrote: > >> So - after a while I've made some observations. >> My problem is actually connected to arp. >> >> My config is very static so basically I want to turn off arp requests. >> Somewhere in the startup scripts I did >> > sysctl -w net.link.ether.inet.max_age=2147483647 (max accepted value) >> Which on freebsd-6.x worked fine. >> In freebsd-8.1 this makes the kernel arp functionality go bezerk - >> probably an integer overflow somewhere. >> arp requests were sent countinously from my freebsd-8.1 node to others, >> flooding the network. >> I tried to lower this value and found that 500000000s works fine >> 1000000000s does not. 500000000s is OK to me so I won't try to narrow it >> down more. >> >> The reason I was suspecting swapping problems was that after a while with >> the flooding going on I got a kernel panic saying 'page fault', which I >> would guess is a another bug, but, with a sensible setting on the arp >> timeout the kernel panic does not show itself any longer. >> >> I've googled for my arp-setting problem but not found anything on it. So - >> maybe I'm the first to see this. >> Should I enter a bug report somewhere? >> I guess this forum is not the place. >> >> /Mats >> >> > Did your HZ (timer interrupts per second) increase from 100 on FreeBSD-6 to > 1000 on FreeBSD-8.1? This must be a 32 bit computer / OS because that > variable is multiplied to hz: > > canceled = callout_reset(&la->la_timer, > hz * V_arpt_keep, arptimer, la); > > and: > > #define callout_reset(c, on_tick, fn, arg) \ > callout_reset_on((c), (on_tick), (fn), (arg), (c)->c_cpu) > > where: > > int callout_reset_on(struct callout *, int , void (*ftn)(void *), void *, > int) > > I would guess that you are wrapping with 32 bit arithmetic to a small > value. Both the hz==100 and hz==1000 will wrap to about the same number (a > negative number). I did not look at the FreeBSD 6.x callout, but I think in > the FreeBSD 8 callout, negative on_tick will be immediately called on the > next tick.. > Yes I could imagine this is it. > > A page fault panic is a kernel access to a non-mapped VA (a bad pointer). > The panic message would have the VA and instruction address information. > > --Mark > Well, Both systems are i386 32bit On FreeBSD-6 I have: (GENERIC) kernel kern.clockrate: { hz = 1000, tick = 1000, profhz = 666, stathz = 133 } On FreeBSD-8 I have:(Excluded some drivers from GENERIC kernel) kern.clockrate: { hz = 1000, tick = 1000, profhz = 2000, stathz = 133 } kern.hz: 1000 So same HZ -- seems the callout is implemented differently 6.x->8.1 For the kernel panic I get fault virtual address: 0x8 instruction pointer: 0x20:0xc0679ed7 current process: 0, (em0 taskq) I don't know anything about these numbers, or if you even did want to know. To me I get the feeling that this is connected to my arp problem, seems to be something in the em driver that is not handled at this high load. I'm quite happy now - my system has been up and running for the whole day - so I'll leave it at this - thanks /Mats