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!
|