|
From: Jeremy F. <je...@go...> - 2004-01-03 22:40:16
|
On Sat, 2004-01-03 at 06:15, Eyal Lebedinsky wrote: > There is a problem with spawn. 2.0.0 is OK but later it went south > (2.1.0 and current). I set --trace-children=no for now (this works OK). > > Basically, I get a "child got sig 11" type message. I am moving up > to current cvs. > > > I also notice that the old way where my servers (which launch many > threads) were running with 98% idle CPU now run with 0% idle, but > the whole run seems to take at lease the same amount of time. This > suggests busy waiting. I will check the new timing options and > see which gives better performance. > > I am running on an AMD Athlon 1200 (pre-XP). Any suggestions for > which values to try? Um. It would be nice if you could give us a lot more detail - like the actual error message it generated, and other debugging stuff it probably printed. And what do you mean by "spawn"? There's no library function or syscall called that. Do you mean system? execve? Also, what does your server actually do? If you expect threads to be blocking in syscalls, which syscalls are they blocking in? The old pre-2.1 code had a tendency to wait up to a 100ms before doing anything, so if your code is syscall-heavy, it might have been using 2% CPU because the rest of the time Valgrind was just sleeping and doing nothing useful. If you run without Valgrind, what CPU usage do you get? If you're using 2.6 kernel, then there aren't really any tuneables which matter. It really depends on what your program is doing - if you have some CPU-bound threads and some IO-bound threads, then --lowlat-syscalls=yes might help, but I'd be surprised. J |