From: Alan W. I. <ir...@be...> - 2010-05-27 19:00:41
|
On 2010-05-27 12:03-0400 Hazen Babcock wrote: > Following your suggestion I simplified the test to the following: > > #!/bin/sh > > LIMIT=2000 > > for((a=1; a<= LIMIT; a++)) > do > examples/c/x10c -dev pngqt -o test.png > # examples/c/x26c -dev pngqt -o test.png -fam > echo -n "$a" > done For what it is worth, I just ran the above test. It took roughly 3 minutes to finish 2000 iterations without issues. I looked at top during the latter part of the test and could see nothing unusual. > > > This pretty consistently locks up before a reachs 1000. > > By sprinkling printf statements through the code I've determined that the > lock up occurs here: > new QApplication( argc, argv, isGUI ); > in the file qt.cpp. I have looked up the documentation for that function in http://doc.qt.nokia.com/4.6/qapplication.html#QApplication-2. It appears it does not have any checks for error conditions that we should be trying. Also, it appears that isGUI Boolean sets up a whole bunch of stuff related to X which should only be necessary for qtwidgets. It appears from the in-source question marks, that Alban Rochel (the original developer) was unsure about this point so he always set isGUI to true even for the noninteractive devices. I have just (revision 11027) changed that so isGUI is false for the noninteractive qt devices. That change works fine for me (using the test_all_qt target). I also repeated the above test with LIMIT=2000, with the same good results. Note, it finished roughly twice as fast as the original test which indicates that the overhead from QApplication is much less after revision 11027. Now, the key question. Hazen, does revision 11027 work around the issue that you are seeing? > > I also tried with DYN_DRIVERS=OFF, but the same thing happens. > > Note that when it locks up I can see (using top) that x-session-manager is > running at 75% and gdm at 25%. Once this happens I cannot start any other > programs and I have to restart my computer. Hmm. That is one difference between us. I am running KDE4 while it appears (from your use of gdm) that you are using GNOME. I wonder if there is some incompatibility between QT4 and GNOME that does not exist for the KDE4 case. For example, QT4 could be contending for some desktop resource with GNOME so that eliminating that contention (as above for noninteractive qt devices) would work around the issue. Of course, all this speculation crashes in flames if revision 11027 does nothing for you. :-) Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |