Date: Fri, 30 Mar 2012 22:37:51 -0400 From: David Cross <dcrosstech@gmail.com> To: freebsd-sparc64@freebsd.org Subject: Re: 9.0-RELEASE, SPARC64, Ultra10, dummynet hard hang Message-ID: <CAM9edeOMGwp-Kx3k5kfPB0w6eB-APKAvEE-ERq%2BaL1ggDW5D-w@mail.gmail.com> In-Reply-To: <CAM9edePAidH4Mp24MraBKQZ7S=j7d4qs=P=k_q3v5L4KR8CA-A@mail.gmail.com> References: <CAM9edePAidH4Mp24MraBKQZ7S=j7d4qs=P=k_q3v5L4KR8CA-A@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Ok.. to follow up on my own question, I have tracked it down! So, the problem is an unalligned memory access in the "burst" parameter of dn_link. A printf of it on my system gives: &(p->burst)=0x0xfffff80002c48f7c burst is an uint64_t.. that isn't 64bit aligned. This raises a few questions: 1) Why isn't it being autoaligned, doesn't gcc do this (I am almost positive it does (or it should) (I have no /etc/make.conf, completely stock options) 2) Why is this causing a _deadlock_? (note kernel debugger _does_ work.. which was a boon in getting to "close" to where the problem was in the first place) 3) Since it does cause a deadlock, it means that a bus-fault handler is being called that _doesn't_ panic.. and doesn't return correctly? 4) since its not tripping a RED error, its not looping the handler. and 5) given all of the above.. what's the fix? I am modifying dn_link to be 64 bit aligned (manually).. but this feels like the wrong approach (though it will hopefully get me what I want for 'now'. -- David E. Cross On Tue, Mar 20, 2012 at 10:38 AM, David Cross <dcrosstech@gmail.com> wrote: > I will provide my kernel config in a second updated message, but I don't > believe it will be needed; I am reasonably sure this affects all builds. > > In short I have a SPARC Ultra10 running 9.0-RELEASE (with the > ofw_printf/ofw_panic patches obviously) running a custom kernel that has > dummynet, ipfw, and ipsec compiled into it. It has been running month+ > with no issues. Last night I did: > > ipfw pipe 1 config bw 200KByte/sec > > and then it hard hung, no response to ping, no response to console, didn't > even get it to bind to a ruleset. > > I reset it and did the same command again, same result. > > Any ideas on this? > > -- > David E. Cross
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAM9edeOMGwp-Kx3k5kfPB0w6eB-APKAvEE-ERq%2BaL1ggDW5D-w>