Re: [Gems-users] Processor Lost


Date: Thu, 03 May 2007 10:16:25 -0500
From: Dan Gibson <degibson@xxxxxxxx>
Subject: Re: [Gems-users] Processor Lost
As a corollary to this discussion, I'd like to add that this kind of issue is one of the reasons that full-system simulation is a great thing -- this sort of thing can happen to a real workload, too.

James Wang wrote:
Hi Dan:
Thank you very much for your prompt reply. But I don't really understand what the nature of this situation is. Why would the OS want to deschedule my benchmark?
The OS deschedules threads for a variety of reasons. Interrupts of any kind typically need to be handled, and if your benchmark initiates a blocking I/O operation the OS will probably deschedule your benchmark while the I/O completes (including, say, page faults). Moreover, there is always the real-time interrupt timer that the OS uses for timesharing anyway -- this timer can actually be a problem when running with Simics, as a common trick is to set Simics's clock frequency low to improve I/O performance -- with low clock frequencies, timer interrupts happen more often relative to higher Simics frequencies. For other reasons, have a look at your favourite OS textbook.
Also, I bound the thread to the processor, should it just stay there and run?
See Kevin's response. In general, processor_bind() is a suggestion, not a command, to the OS.
I did this with a four processor simulated machine, why other processors
are not affected by this problem?
Solaris seems to favor P0 for a variety of reasons, chief among them simplicity.
Regards
James
Regards,
Dan
----- Original Message ----
From: Dan Gibson <degibson@xxxxxxxx>
To: Gems Users <gems-users@xxxxxxxxxxx>
Sent: Friday, May 4, 2007 1:03:42 AM
Subject: Re: [Gems-users] Processor Lost

The OS could be descheduling your transactional benchmark, though I'm not sure why that might be happening. Try quiescing the system by killing background processes, and then pre-fetch any binaries or data you might be using in your benchmark by running it once to completion before loading Ruby (and hence, without synchronization). That should eliminate any I/O you might inadvertenly cause at runtime. It will also cause your benchmark to run with different system interactions, and will hopefully fix the Processor Lost/Processor Found problem.

Regards,
Dan

James Wang wrote:

Hi All:
I am running some transactional memory benchmark using a customized SMP cache coherent protocol. For some reason, p0 will run code other than the transactional benchmark and the other processors finishes fine. I cannot really tell what p0 is doing. I tried a few different random seed, the same situation happens every time. Any idea?
   Thanks for any reply in advance.

Regards
James


_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/";; to your search.


_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/";; to your search.




_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.


--
http://www.cs.wisc.edu/~gibson [esc]:wq!

[← Prev in Thread] Current Thread [Next in Thread→]