yeom [Tue, 9 Nov 2010 00:42:52 +0000 (00:42 +0000)]
changes on rcr stall site generation
yeom [Mon, 8 Nov 2010 21:04:11 +0000 (21:04 +0000)]
do not generate enqueueTR for the main method
jjenista [Mon, 8 Nov 2010 19:24:16 +0000 (19:24 +0000)]
capture a todo item, we don't expect its a problem for current benchmarks though
bdemsky [Mon, 8 Nov 2010 08:21:38 +0000 (08:21 +0000)]
fix bug
bdemsky [Mon, 8 Nov 2010 08:09:12 +0000 (08:09 +0000)]
changes:
(1) create traversers only for non leaf threads
(2) fixup stuff to have separate tables for separate weakly connected components
(3) fixup stallsite code
yeom [Sat, 6 Nov 2010 00:00:21 +0000 (00:00 +0000)]
change: more aggressively re-initialize fields of rcrRecords.
now, rcr is working fine with all benchmarks, except mergesort.
yeom [Fri, 5 Nov 2010 20:59:46 +0000 (20:59 +0000)]
changes: don't need to have resolvePointer opr for coarse cases.
yeom [Fri, 5 Nov 2010 20:45:31 +0000 (20:45 +0000)]
have an exceptional case that do not generate fine rentry when parent has a coarse edge with non-parent node.
bdemsky [Fri, 5 Nov 2010 19:24:29 +0000 (19:24 +0000)]
doesn't make sense for us to need a barrier here...
jjenista [Fri, 5 Nov 2010 18:20:07 +0000 (18:20 +0000)]
just add the type to make sure it is 3, which is what we're expecting but trying to prevent
jjenista [Fri, 5 Nov 2010 17:51:05 +0000 (17:51 +0000)]
without this barrier the compiler can optimize variable val out and the critical first clause of the subseqeuent if statement is just lost, then when you expect val to be non-NULL in any call to getHead() the thread crashes
jjenista [Fri, 5 Nov 2010 17:45:17 +0000 (17:45 +0000)]
head pointer might be NULL, as is checked a few lines down, so add another clause to if
jjenista [Fri, 5 Nov 2010 17:28:45 +0000 (17:28 +0000)]
convenient, add makefile to list of dependencies for executable targets
bdemsky [Fri, 5 Nov 2010 16:59:16 +0000 (16:59 +0000)]
change
bdemsky [Fri, 5 Nov 2010 16:55:25 +0000 (16:55 +0000)]
another bug fix
bdemsky [Fri, 5 Nov 2010 16:42:04 +0000 (16:42 +0000)]
bug fix
bdemsky [Fri, 5 Nov 2010 16:29:21 +0000 (16:29 +0000)]
bug fixes
bdemsky [Fri, 5 Nov 2010 15:54:33 +0000 (15:54 +0000)]
changes
jzhou [Wed, 3 Nov 2010 23:31:35 +0000 (23:31 +0000)]
Fix volatile in mgc version. Volatile variable should not be allocated in the shared heap like static variables
jjenista [Wed, 3 Nov 2010 22:01:24 +0000 (22:01 +0000)]
labyrinth is seg-faulting, if you uncomment these new lines it can reach the end of the program but it did not route all the subproblems. Some better understanding of the rcrRecord will help here
stephey [Wed, 3 Nov 2010 21:54:06 +0000 (21:54 +0000)]
Separated out Demsky's hashStructure interface code, changed a variable name from node to curr, and fixed logic that would cause an assertion error (bug was the code attempted to inline checks that weren't inlinable)
jjenista [Wed, 3 Nov 2010 20:54:01 +0000 (20:54 +0000)]
when the RCR system resolves a parent stall site, the parent thread has its stallrecord.common.rcrstatus set back to 0, but if the ooojava memory queue resolves the stall earlier, it allows the parent to resume without setting rcrstatus, so we added a line in the parent just after the stall so it clears its rcrstatus itself no matter which method resumes it
jjenista [Wed, 3 Nov 2010 20:50:19 +0000 (20:50 +0000)]
this check shows that some kind of array pointer is not what the assertion expected...
jjenista [Wed, 3 Nov 2010 20:49:22 +0000 (20:49 +0000)]
update targets so dependence on source files is recognized
jjenista [Wed, 3 Nov 2010 17:22:28 +0000 (17:22 +0000)]
conveniences for RCR
bdemsky [Wed, 3 Nov 2010 12:44:05 +0000 (12:44 +0000)]
changes
bdemsky [Wed, 3 Nov 2010 10:52:58 +0000 (10:52 +0000)]
bug
bdemsky [Wed, 3 Nov 2010 10:45:03 +0000 (10:45 +0000)]
make sure 1 is long long...other bug fix
bdemsky [Wed, 3 Nov 2010 10:35:16 +0000 (10:35 +0000)]
code changes
yeom [Wed, 3 Nov 2010 00:33:11 +0000 (00:33 +0000)]
fix: have the proper size of rcrRecord since the size of the rcrRecord array is equal to the size of dynamic coarse conflict var set.
jjenista [Tue, 2 Nov 2010 22:30:22 +0000 (22:30 +0000)]
new coreprof event, move workschedule dowork label only across the coreprof event to prevent mismatch, split conflict resolver assert into two separate terms, added an rcr remake target
jzhou [Tue, 2 Nov 2010 22:30:03 +0000 (22:30 +0000)]
Add support for volatile keyword in mgc version. For Tilera, as we execute a process on each core, to make all the 'threads' share the volatile field, make it as a shared field in global shared heap like static fields. Add keywords and rules for enumarated type, but still have bugs and when parsing the test code, the compiler throw errors.
jjenista [Tue, 2 Nov 2010 21:33:13 +0000 (21:33 +0000)]
I misunderstood the REntry pointer, its a pointer to an object pointer and it SHOULD be dereferenced before casting it to an int pointer, and then used to grab the object type or OID out of the actual object memory
bdemsky [Tue, 2 Nov 2010 14:47:20 +0000 (14:47 +0000)]
update trace to dump out gnuplot plots
bdemsky [Tue, 2 Nov 2010 12:21:55 +0000 (12:21 +0000)]
fix so that profiling doesn't throw an error
jjenista [Tue, 2 Nov 2010 02:56:14 +0000 (02:56 +0000)]
have coreprof plot events
yeom [Tue, 2 Nov 2010 01:01:36 +0000 (01:01 +0000)]
bug fix: add the invar to the coarseConflictSet when the invar itself has a conflict.
stephey [Tue, 2 Nov 2010 00:33:34 +0000 (00:33 +0000)]
Forgot to take out debug comments.
stephey [Tue, 2 Nov 2010 00:31:07 +0000 (00:31 +0000)]
Found a bug where if the inset variable itself has a reference conflict, it doesn't get a case statement.
yeom [Mon, 1 Nov 2010 22:43:01 +0000 (22:43 +0000)]
updates on master-makefile of oooJava: generates a separate rcr executable file.
jjenista [Mon, 1 Nov 2010 19:50:13 +0000 (19:50 +0000)]
the mismatch of sequential and ooo goes away if you remove the semantically-benign explicit parent of this micro benchmark. It means our system still has bugs, but this pattern doesn't appear in the normal benchmarks so the problem is best deferred until it impacts results
jjenista [Mon, 1 Nov 2010 19:41:43 +0000 (19:41 +0000)]
a version of micro4 that collects the results and shows sequential behavior is preserved, brians fix is awesome
jjenista [Mon, 1 Nov 2010 18:29:40 +0000 (18:29 +0000)]
update poolcreate args for deque version as well
bdemsky [Mon, 1 Nov 2010 09:31:40 +0000 (09:31 +0000)]
clean stuff up a little
bdemsky [Mon, 1 Nov 2010 09:18:04 +0000 (09:18 +0000)]
convert CAS -> XCHG when possible....no retry necessary this way
bdemsky [Mon, 1 Nov 2010 09:04:24 +0000 (09:04 +0000)]
bug
yeom [Sun, 31 Oct 2010 23:04:06 +0000 (23:04 +0000)]
changes: generate rcr retirehashtable code correctly according to the runtime interface.
TODO: Current implementation assumes that the size of the rcrRecord array is equal to the size of fsen.getDynamicInVarSet(). But, it seems not to be true since the rcrRecord array is allocated by the size of inset var which is actually related with coarse conflict.
stephey [Sat, 30 Oct 2010 07:52:39 +0000 (07:52 +0000)]
Minor changes: Removing vestigial code
Previous commit:
-Every case where we enqueue an item will be guaranteed to have a case statement upon dequeue.
- Every valid pointer route will now end with either an enqueue to an array or Demsky's interface code with hashStructure.c
-Eliminated multiple traversals, empty switch statements and unused variables/pointers.
-Added new ArrayList based structure to store ObjRefs (only augmented by 1 method)
stephey [Sat, 30 Oct 2010 07:15:47 +0000 (07:15 +0000)]
Fixed:
jjenista [Fri, 29 Oct 2010 18:55:48 +0000 (18:55 +0000)]
commit some useful debug stuff all turned off until needed, trying to get workspace synched to prevent constant conflicts
jjenista [Fri, 29 Oct 2010 18:29:48 +0000 (18:29 +0000)]
for original thread to become worker zero
jjenista [Fri, 29 Oct 2010 18:28:13 +0000 (18:28 +0000)]
A variable defined in task A and read in task A's child's child appears to have a source from A--why does this assert stop code? check out later, check in the informative version of the assert
jjenista [Fri, 29 Oct 2010 18:25:55 +0000 (18:25 +0000)]
alternate version of micro2 that gathers results of every micro task shows that even with just variable dependencies the system is incorrect and parallel version does not behave like serial version
bdemsky [Fri, 29 Oct 2010 07:06:11 +0000 (07:06 +0000)]
bug fix....have to make sure we don't insert task into some other deque as insertion is not multithread safe
jzhou [Fri, 29 Oct 2010 00:15:37 +0000 (00:15 +0000)]
Add support for static inner classes in mgc version. Currently we only implemented limited features. Do not support Outer.Inner yet. Also only use inner class's name to identify the class instead of Outer.Inner which may cause bugs if there are two inner classes with the same name but with different surrounding classes.
bdemsky [Thu, 28 Oct 2010 22:07:14 +0000 (22:07 +0000)]
simplify the program...still crashes
jzhou [Thu, 28 Oct 2010 18:58:57 +0000 (18:58 +0000)]
Don't allocate type number for interfaces so that we do not need allocate lines in the virtual method table for interfaces and the virtual method table can be tight.
jjenista [Thu, 28 Oct 2010 01:01:24 +0000 (01:01 +0000)]
even though man page says otherwise, addr and len to mprotect must be page-aligned and page multiple
yeom [Thu, 28 Oct 2010 00:00:26 +0000 (00:00 +0000)]
small change: not using path when includes the header file as Brian suggested.
jjenista [Wed, 27 Oct 2010 23:48:17 +0000 (23:48 +0000)]
add feature to memPool for detecting misuse of records by clients, also added a function pointer input to mem pool so clients can customize an initializer for freshly allocated records to save duplicatation and maintenance, also mem pool changes were breaking squeue, just define a local version of the two structs it needs
yeom [Wed, 27 Oct 2010 22:10:33 +0000 (22:10 +0000)]
includes the missing header file.
jzhou [Wed, 27 Oct 2010 22:07:37 +0000 (22:07 +0000)]
Enable interface for mgc version.
jjenista [Wed, 27 Oct 2010 22:00:10 +0000 (22:00 +0000)]
fix sloppy code and use a more recognizable invalid pointer for mem pool
jjenista [Wed, 27 Oct 2010 21:34:17 +0000 (21:34 +0000)]
make sure mistakes are obvious with identifiable values
yeom [Wed, 27 Oct 2010 21:24:12 +0000 (21:24 +0000)]
changes: to prevent unnecessary LOCKXCHG when the unresolved queue is empty.
bdemsky [Tue, 26 Oct 2010 22:32:23 +0000 (22:32 +0000)]
really bad bug
bdemsky [Tue, 26 Oct 2010 22:18:58 +0000 (22:18 +0000)]
single ended queue work stealing scheduler
jjenista [Tue, 26 Oct 2010 18:17:14 +0000 (18:17 +0000)]
couple of minor bug fixes
jjenista [Tue, 26 Oct 2010 17:57:19 +0000 (17:57 +0000)]
change calloc to RUNMALLOC, added some optional debug deque bits
bdemsky [Tue, 26 Oct 2010 06:53:10 +0000 (06:53 +0000)]
optimize dispatch a little more
bdemsky [Tue, 26 Oct 2010 01:48:55 +0000 (01:48 +0000)]
Changes... small fix to jim's bugfix...touching our record after we free it is also bad...
poolalloc the rentry's...avoid running out of memory...looks like speed gains for micro also...
eliminate parentsemaphore...just use the thread local semaphore...needed to simplify freeing rentry records
jjenista [Tue, 26 Oct 2010 00:59:27 +0000 (00:59 +0000)]
fixed nasty bug, decrementing parents num running children used to be last, but new code has creeped up afte rit, move this down to the very last thing done before exiting
stephey [Tue, 26 Oct 2010 00:39:34 +0000 (00:39 +0000)]
Fixed issue where multi-dimentional primative arrays were treated as primitives. Now labyrinth benchmark works
yeom [Tue, 26 Oct 2010 00:14:31 +0000 (00:14 +0000)]
bug fix: RCR sets its proper conflict type.
yeom [Mon, 25 Oct 2010 23:56:16 +0000 (23:56 +0000)]
make sure that every benchmark of oooJava takes the largest input size by default
yeom [Mon, 25 Oct 2010 23:38:53 +0000 (23:38 +0000)]
correct input data for barneshut
jjenista [Mon, 25 Oct 2010 23:28:26 +0000 (23:28 +0000)]
OOO and RCR are speparate targets in the master makefile, added runp scripts for all benchmarks, time command included in runp's
bdemsky [Mon, 25 Oct 2010 23:26:36 +0000 (23:26 +0000)]
fix bug w/ recycling + RCR
jjenista [Mon, 25 Oct 2010 23:20:53 +0000 (23:20 +0000)]
support for RCR and task record pool allocation
jjenista [Mon, 25 Oct 2010 23:14:09 +0000 (23:14 +0000)]
this is a BUG, don't dereference the object pointer, blargh
jzhou [Mon, 25 Oct 2010 22:49:57 +0000 (22:49 +0000)]
Hack the compiler to support 'abstract' keyword for mgc version. Abstract classes/methods can be compiled but fully semantic check is not supported. Now we generate an empty method for each declared abstract method and do not check if the subclasses have implemented their inheried abstract methods.
stephey [Mon, 25 Oct 2010 22:13:30 +0000 (22:13 +0000)]
Added necessary variable initializations
yeom [Mon, 25 Oct 2010 22:04:28 +0000 (22:04 +0000)]
changes: handle correctly the case when a coarse grain conflict is associated with effects on different allocation sites.
bdemsky [Mon, 25 Oct 2010 20:54:53 +0000 (20:54 +0000)]
make the traversers do something
jjenista [Mon, 25 Oct 2010 20:09:31 +0000 (20:09 +0000)]
Changing OoOJava work scheduler to true work stealing, garbage collection can walk the deques used, changes to build code and workschedule are awesome because work stealing threads exit gracefully when system is out of work
jjenista [Mon, 25 Oct 2010 20:05:39 +0000 (20:05 +0000)]
added a debug option for deque
jjenista [Mon, 25 Oct 2010 18:58:03 +0000 (18:58 +0000)]
bug fix in identifying leaf tasks
stephey [Mon, 25 Oct 2010 08:32:27 +0000 (08:32 +0000)]
Changed method for marking possible resume cases. Now it only considers read conflicts.
stephey [Mon, 25 Oct 2010 08:08:35 +0000 (08:08 +0000)]
Improved heuristics for marking where resume cases are possible. Instead marking every conflict as a possible resume case, it now only marks cases where there is a read conflict (which implies that there is a write somewhere else) or where there is an ancestor read conflict and a current conflict.
bdemsky [Mon, 25 Oct 2010 01:56:39 +0000 (01:56 +0000)]
changes
stephey [Sun, 24 Oct 2010 12:44:31 +0000 (12:44 +0000)]
cleaned up some old code and comments
bdemsky [Sun, 24 Oct 2010 08:56:28 +0000 (08:56 +0000)]
bug fixes
bdemsky [Sun, 24 Oct 2010 08:36:22 +0000 (08:36 +0000)]
changes...handle races between coarse and fine grained conflict resolution
stephey [Sun, 24 Oct 2010 04:11:15 +0000 (04:11 +0000)]
+Made arrays inlineable
+Fields with multiple allocation sites are now handled with a switch statement.
stephey [Sat, 23 Oct 2010 23:03:37 +0000 (23:03 +0000)]
Fixed bug (for reals this time) where there will be multiple traversals on the same field. Turns out the .equals for ConcreteRuntimeObjNode was done incorrectly.
Working on next task:
+using switch statements for checking fields.
+Treating arrays the same as any field (inlinable)
stephey [Sat, 23 Oct 2010 22:09:50 +0000 (22:09 +0000)]
Fixed bug where one edge is traversed multiple times even if it's the same allocsite. Turns out, the .equals in allocsite did not compare their ID's.
Changes:
stephey [Sat, 23 Oct 2010 20:21:38 +0000 (20:21 +0000)]
fixes to case in Test/rcr. Now the program seems to get stuck at sched_yield() which I believe is not a component of RCR
bdemsky [Sat, 23 Oct 2010 08:41:28 +0000 (08:41 +0000)]
another bad case
bdemsky [Sat, 23 Oct 2010 08:30:19 +0000 (08:30 +0000)]
changes
bdemsky [Sat, 23 Oct 2010 01:42:16 +0000 (01:42 +0000)]
another bug fix