Re: DualCores and Current Cygwin problems
I think the following sad story should shed a little light on this issue. I'm attempting to use cygwin to provide the UNIX-like build environment to build Java SE on a DualCore system. Relevant configuration details: AMD X2 5200+ Asus M2NPV-VM 2 Gb ECC memory (std. clocks) I'm working to improve the documentation for the Java SE build, so I know *exactly* what's on the system. The installations are: 1) Windows XP, fully updated 2) Visual Studio .NET Professional (2003) 3) Microsoft Platform SDK (2004 - *not* R2) 4) Microsoft DirectX SDK (Summer 2004) 5) Sun Java 6 SDK (1.6.0_01) 6) Cygwin (current) That's it. No additional software components. None. With this configuration, I get random "can not fork: Resource temporarily unavailable" errors when trying to perform the fairly large and complex product build. I also get "dup_proc_pipe" failures, which are fairly random, but tend to be understandably associated with long pipes in the build process. If I add /ONECPU to boot.ini, neatly turning my DualCore system into a single core system, the failures all magically disappear. This would tend to indicate that there is a multi-threading issue either in cygwin or in the underlying Windows XP operating environment. It hopefully also provides a work-around (abet a somewhat painful one). It's probably worth trying by all who have been reporting this failure. If it doesn't eliminate the failure for you, its an indication that there may be multiple failures involved. - cheers and good luck (these are hard problems to track down), - Joseph Kowalski -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/
Re: DualCores and Current Cygwin problems
Rene Berber wrote: > My problem, I think, is a bad network driver... or at least it takes too long for it to "start up". The network card is surely completely different from what you use (an Intel PRO/1000 MT with driver from Intel. Don't be too sure. The configuration I described also has an Intel PRO/1000 MT with driver from Intel (via Microsoft). Another experiment I didn't mention is I loaded the same software stack on to another machine with a single core processor (Shuttle FX41). It also has an Intel PRO/1000 MT. It showed no problems. However, I suspect this is just coincidence. My build is "network silent". The network adapter shouldn't be involved. - Joseph Kowalski -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/
Re: DualCores and Current Cygwin problems
Linda Walsh wrote: Hi, I don't claim to know what is going on, but I'm using a dual-core system and haven't noticed the problems you are having, but my processors are Intel Dual Core. That shouldn't make a difference I wouldn't think. Joseph Kowalski wrote: 1) Windows XP, fully updated; 2) Visual Studio .NET Professional (2003) 3) Microsoft Platform SDK (2004 - *not* R2) 4) Microsoft DirectX SDK (Summer 2004); 5) Sun Java 6 SDK (1.6.0_01) 6) Cygwin (current). That's it. No additional software components. None. What do you mean by "components"? Do you mean if you go into the "Add/Remove Programs", the only items I would see would be the MS SDK, XP "Patches", DirectX SDK, and Sun Java? If you tell it to hide "updates", I'd guess you only have 3 items on your Software list? the MS-Platform SDK, the DirectX SDK and the Sun Java SDK? (Cygwin wouldn't be listed). That's a pretty short list, but I assume it is a test machine that's off the main net and is only for testing? Well, it depends upon how you look at it. Its probably best viewed as a build machine for building the Sun Java SDK, with emphasis on OpenJDK. Its a test machine in the sense that I'm starting with a bare machine to "test" the instructions for setting up a build environment for the JavaSDK. That's why its a short list. The goal is for it to be the minimal list to build with. I'm 2500 miles from this machine at the moment, so I'm not exactly sure what you would see in add/remove programs. I suspect your list is correct, but you'ld also see Virtual Studio (which you probably missed due to the missing above). With this configuration, I get random "can not fork: Resource temporarily unavailable" errors ... [and] "dup_proc_pipe" failures, which are fairly random, but tend to be understandably associated with long pipes in the build process. If I add /ONECPU to boot.ini, neatly turning my DualCore system into a single core system, the failures all magically disappear. - Using "Process Explorer" from sysinternals.com (now owned by MS), one can set "affinities" for processes that should limit your processes to 1 cpu. Children from a processor-limited process inherit the "affinities". I'm wondering -- just as a data point, if you tried building on a dual-core, but setting all of your cygwin processes to run on one core? No, I haven't tried this, and I'm not sure exactly how I would do this. I start with make (from cmake, for cygwin, because the cygwim make currently has some nasty bugs related to the ol' spaces in file names situation). Make mostly calls either cygwin programs *or* the Virtual Studio compilation system. I'm not sure how I'd set one group with a processor affinity and not the other. If this experment is worth doing, give me a bit more info on what you expect and I can do it when I get back to where the machine is (next week). This would tend to indicate that there is a multi-threading issue either in cygwin or in the underlying Windows XP operating environment. --- Sounds plausible -- all of your drivers are one's included in XP? Yes. Maybe, perversely, you could try drivers from your hardware manufacturers and see if they work better? On a previous machine, I installed drivers for my motherboard from Intel site. The drivers are basically the same. Its a most nVidia board and the drivers on the Microsoft site are just certified versions of the nVidia drivers. (Exception - the Intel network adaptor as mentioned on the exchange with Rene - this is the Intel driver, certified by Microsoft). Another difference (that shouldn't make a difference) is the BIOS code -- I have run into BIOS code, *many* years ago, that wasn't reentrant --- made it a pain to work with. But with multiple cpu's, that's a more challenging layer of re-entrancy than single-cpu multi-tasking/threading. That would be scary. Very, very scary... I am down rev. (one rev.) from the current BIOS provided by ASUS, but the newer rev only claims to expand CPU support. But maybe making sure you have latest drivers from manufacturers even though they may not be coming with your standard WinXP install would help? I can check the rev. on the nVidia site, and if newer, will update and report back. Linda That all said, there are a lot of threads here recently reporting this failure symptom. Some of the reports tend to indicate that the problem only appeared when Cygwin was updated (then again, how many of us visit Windows Update and forget to mention that). I tend not to think its a chip driver revision problem. Thanks for your help, attention and suggestions, - Joseph Kowalski -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/
Re: DualCores and Current Cygwin problems
Linda Walsh wrote: I'm 2500 miles from this machine at the moment, so I'm not exactly sure what you would see in add/remove programs. I suspect your list is correct, but you'ld also see Virtual Studio (which you probably missed due to the missing above). "At the moment?" How are you logging into the machine if you are 2500 miles away? Is it on the net? Yet you have no firewall other than XP's builtin, and no other security software? Could it be possible the machine has been hacked? I started this tread from my home/office in Hawaii. I'm in the SF Bay Area this week on business. I'm not logging in to the machine this week - I said I'd run the suggested experments when I got back to being in proximity to the machine. This week I'm just responding to questions on the thread. Its *very* unlikely the machine has been compromised. It's not discoverable from outside my firewall (on a router), I don't read/download mail on it and no other software has been install on it. Its a specific use machine - building Sun Java using the Cygwin tools. It also only had a couple of days to be compromised from a full, clean, install to the problem report. No, I haven't tried this, and I'm not sure exactly how I would do this. --- When I do it interactively at console, I run process explorer (a GUI). Hey, just noticed, it's in the task manager too, on the processes page, rightclick and make sure only 1 cpu is checked on your "parent" process -- i.e. if you run from 'bash', setting the affinity on bash will also propagate it to the children. I missed the "propagation" aspect. Yes, the entire build is started from the bash command line. This may not be the most interesting experiment because this means that everything under the "make" will have affinity to a single processor, including the Visual Studio tools. All that will be running on the other processor will be background system processes (of which Windows has more than a few). This does make the experiment quite easy. I'll report back results when I can. - Joseph Kowalski -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/