Date: Thu, 14 Dec 2006 12:59:49 -0500 From: Randall Stewart <rrs@cisco.com> To: freebsd-current@freebsd.org Subject: Re: curious results Message-ID: <45819115.9060702@cisco.com> In-Reply-To: <457EA7E3.2010302@cisco.com> References: <457EA7E3.2010302@cisco.com>
next in thread | previous in thread | raw e-mail | index | archive | help
All: Ok, the second problem I noted.. where the system freezes... I can reproduce pretty regularly... the problem is I can't seem to gain any information from it. If I hit ANY key it starts back up again... for example if I leave it on the screen running top.. if I strke Ctl- to do a Ctl-alt-esc to drop to ddb... bam the time updates (jumping an hour in the last instance)... So when I look at the core.. everything looks normal.. I am seeing at the same instance "Limiting closed port RST response from 257 to 200 packets/sec" and some "calcru: runtime went backwards... " messages as well.. Any suggestions on how I can gather any data from this event... Oh one other note.. the machine cannot be pinged when it reaches this state... so a network interupt will not revive it .. Very wierd.. R Randall Stewart wrote: > All: > > I have two machines I am testing with... a Intel Xeon > 2.8 Gig w/hyperthreading... and a Intel P4D dual core. > > Now I am testing SCTP and how it interacts with SMP.. or > that is my intention. I have a snapshot of the MPI code > that one of my friends at UBC has been working on > with Argonne Labs... This uses SCTP :-) > > He has written a serious of tests which all now pass > (after a LOT of bugs and LOR's.. all kinds of fun :D) > > Now a seperate test he has written is something called > mywaitall. Basically you setup a number of processes, > all of them get up and settled in. Then they coordinate > (near as I can tell) sharing SCTP port and address info > with each other via TCP. Then they switch over and > use the SCTP one-2-many model.. sending data to each other > setting up implicit connections. > > This means that running -np 10.. I have 10 endpoints with > 90 associations ... I am doing this only on the local > host side. > > I run this in a > while true > do > mpiexec -np 10 ./mywaitall > echo "-------" > done > > > Now on the xeon machine I see a very curious failure. After > about a day of running this. I get two endpoints stuck > one has data to be transmitted the other is waiting for > it.. (the way the program works is they all send/rcv some > info and then say goodbye to each other). > > Now I am seeing loss because the app version I have is > buggy... the author did not handle the sending in non-blocking > mode correctly. He thought he got a -1/EAGAIN.. instead of > a 0/0 back.. so he ends up in a tight loop doing > while (sent > -1) > ret = dothesend() > if(ret < 0) > break // error > sent += ret; > > > Which means we peg the CPU sending with full send windows.. He > has fixed this.. but I keep testing with the buggy version since > it finds somemany unique problems :-) > > But back to my scenario. Now I have, in the past, fixed many > bugs like this that were an SCTP problem :-) but this one > I don't think so anymore.. > > When I find and look at the assoc's in question the sender > has some outstanding chunks (4 in the last instance) and > its timer is running as far as it is concerned. Here is > the actual callout structure: > > $6 = {c_links = {sle = {sle_next = 0x0}, > tqe = {tqe_next = 0x0, > tqe_prev = 0xc6dd02a8}}, > c_time = 264796819, > c_arg = 0xc27201ec, > c_func = 0xc0748458 <sctp_timeout_handler>, > c_mtx = 0x0, > c_flags = 22} > > Now there is another part to the structure (the c_arg) and if > I look in there I see things like it being started 1 second > before (which one would excpect... I save the ticks of > when it was started). I also have a stopped_from field > that gets set any time someone does a stop of the timer > and when the callout is called it sets it to various > values. The time structure is opaque to the SCTP code so > it does not play with these values.. and when you look at > the ticks, its long past expiration.. > > Note that the 22 indicates NO_MTX | PENDING and ACTIVE. > And yet the linked lists in c_links is NOT set to anything > like I normally see these dudes.. > > Now I did put a extra global SCTP lock in before starting/stopping > the timer. This did make it take 2-3 days to hit this case.. but > it still happens.... > > Has anyone seen this ?? I have looked at the timer code and I > do see a mutex spin lock.. but I can't see how SCTP would be > causing this... I am stumped .. any suggestions would be welcome ;-) > > -------------------- > > My second problem is even more bizzare.. if thats possible...:-D > > The other p4d runs along fine for a day or so .. and then it will > just stop.. and I mean stop.. if you have a top window up (I have > x off.. to panic it when I want :-D) you see the time frozen. No > updates... it just freezes... > > If you type in anything.. the machine picks up again and starts > running as if nothing had happened. The last time I created > this the time had been frozen for at least 12 hours before > I got to it :-D > > I dropped directly into KDB and pulled a crash dump... > > Looking at all of the SCTP assoc's there was NOTHING > happening.. no data in flight.. nothing... > > Now in the past type any key, change to another set > of windows ... and ta-da.. off it runs.. > > I do see a few TCP timeout alarms in the app (remember > the app talks TCP to setup the SCTP stuff)... > > Very wierd... > > Any ideas or suggestions would be welcome. > > I just did an update in prep of doing a patch (currently > passed to gnn for approval).. so my cores are invalid.. but > I can recreate them pretty easily .. it just takes a > day or so :-) > > I can also let anyone that is interested in when the event > occurs of problem one to the machine... and let them > puruse the timers or whatever of the running kernel.. or > take a crash dump and let you look at that.. > > If anyone has heard of anything like this I would appreciate > some pointers.. it could be something SCTP is doing... at > least the timer one.. > > Thanks for any suggestions.. > > R > > -- Randall Stewart NSSTG - Cisco Systems Inc. 803-345-0369 <or> 803-317-4952 (cell)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45819115.9060702>