c11tester.git
4 years agoThe higher the sleep score, the more likely the fuzzer makes a thread sleep
weiyu [Wed, 16 Oct 2019 18:09:35 +0000 (11:09 -0700)]
The higher the sleep score, the more likely the fuzzer makes a thread sleep

4 years agoFinal fix; needs to be careful about the side effect of NewFuzzer::find_threads
weiyu [Wed, 16 Oct 2019 00:38:18 +0000 (17:38 -0700)]
Final fix; needs to be careful about the side effect of NewFuzzer::find_threads

4 years agoFix
weiyu [Tue, 15 Oct 2019 23:27:04 +0000 (16:27 -0700)]
Fix

4 years agoFixes
weiyu [Tue, 15 Oct 2019 23:26:09 +0000 (16:26 -0700)]
Fixes

4 years agoAdd sleep score
weiyu [Tue, 15 Oct 2019 19:41:26 +0000 (12:41 -0700)]
Add sleep score

4 years agoLittle adjustment
weiyu [Tue, 15 Oct 2019 00:48:50 +0000 (17:48 -0700)]
Little adjustment

4 years agoFix bug
weiyu [Sat, 12 Oct 2019 02:35:06 +0000 (19:35 -0700)]
Fix bug

4 years agoAdd an exit node in predicate trees
weiyu [Fri, 11 Oct 2019 23:09:13 +0000 (16:09 -0700)]
Add an exit node in predicate trees

4 years agoDesign a method to select predicate branches based on exploration counts
weiyu [Fri, 11 Oct 2019 00:33:57 +0000 (17:33 -0700)]
Design a method to select predicate branches based on exploration counts

4 years agoAvoid using a HashTable to associate FuncInsts with ModelActions; a slight improvemen...
weiyu [Thu, 10 Oct 2019 18:50:04 +0000 (11:50 -0700)]
Avoid using a HashTable to associate FuncInsts with ModelActions; a slight improvement in performance

4 years agoTurns out that calling Predicate::evaluate in FuncNode::follow_branch and NewFuzzer...
weiyu [Thu, 10 Oct 2019 00:34:25 +0000 (17:34 -0700)]
Turns out that calling Predicate::evaluate in FuncNode::follow_branch and NewFuzzer::prune_writes slows down the fuzzer

4 years agoPerformance fix; delete unused data structures
weiyu [Thu, 10 Oct 2019 00:32:32 +0000 (17:32 -0700)]
Performance fix; delete unused data structures

4 years agoSelect a new predicate branch when the selected branch in the predicate tree fails...
weiyu [Wed, 9 Oct 2019 22:54:44 +0000 (15:54 -0700)]
Select a new predicate branch when the selected branch in the predicate tree fails and the failed thread can not find any other thread to wait for

4 years agoSome edits
weiyu [Wed, 9 Oct 2019 22:09:42 +0000 (15:09 -0700)]
Some edits

4 years agoToward implementing the counter approach to monitor threads
weiyu [Wed, 9 Oct 2019 02:00:15 +0000 (19:00 -0700)]
Toward implementing the counter approach to monitor threads

4 years agoMonitor threads when they enter functions and decide if others (if there is any)...
weiyu [Tue, 8 Oct 2019 22:11:06 +0000 (15:11 -0700)]
Monitor threads when they enter functions and decide if others (if there is any) should keep waiting for them

4 years agoAdd some documentation for WaitObj
weiyu [Tue, 8 Oct 2019 20:35:53 +0000 (13:35 -0700)]
Add some documentation for WaitObj

4 years agoBFS with distance was not implemented correctly
weiyu [Tue, 8 Oct 2019 20:28:49 +0000 (13:28 -0700)]
BFS with distance was not implemented correctly

4 years agoFix a bug
weiyu [Tue, 8 Oct 2019 20:01:21 +0000 (13:01 -0700)]
Fix a bug

4 years agoEvery time a thread enters a function, check whether other threads should still wait...
weiyu [Tue, 8 Oct 2019 01:28:20 +0000 (18:28 -0700)]
Every time a thread enters a function, check whether other threads should still wait for this thread or not.

4 years agoFix methods
weiyu [Mon, 7 Oct 2019 18:55:22 +0000 (11:55 -0700)]
Fix methods

4 years agoAdd some methods for WaitObj
weiyu [Sat, 5 Oct 2019 02:02:10 +0000 (19:02 -0700)]
Add some methods for WaitObj

4 years agoCreate WaitObj to store information about which thread is waiting for whom and is...
weiyu [Sat, 5 Oct 2019 01:39:15 +0000 (18:39 -0700)]
Create WaitObj to store information about which thread is waiting for whom and is waiting by whom

4 years agoAdd default memory allocation and free functions for HSIterator and some other tiny...
weiyu [Sat, 5 Oct 2019 01:36:29 +0000 (18:36 -0700)]
Add default memory allocation and free functions for HSIterator and some other tiny stuff

4 years agoCompute the threads that a paused thread my wait for
weiyu [Fri, 4 Oct 2019 00:51:41 +0000 (17:51 -0700)]
Compute the threads that a paused thread my wait for

4 years agoToward computing which threads a paused thread may wait for
weiyu [Thu, 3 Oct 2019 01:26:36 +0000 (18:26 -0700)]
Toward computing which threads a paused thread may wait for

4 years agoDo not unset FuncInst locations when new executions start; check if execution numbers...
weiyu [Wed, 2 Oct 2019 23:23:56 +0000 (16:23 -0700)]
Do not unset FuncInst locations when new executions start; check if execution numbers match instead

4 years agoReorganize codes
weiyu [Wed, 2 Oct 2019 02:16:54 +0000 (19:16 -0700)]
Reorganize codes

4 years agoMove one snapshotted data structure from ModelHistory to ModelExecution
weiyu [Wed, 2 Oct 2019 02:00:42 +0000 (19:00 -0700)]
Move one snapshotted data structure from ModelHistory to ModelExecution

4 years agoFix a memory bug
weiyu [Wed, 2 Oct 2019 01:43:44 +0000 (18:43 -0700)]
Fix a memory bug

4 years agoFree memory
weiyu [Tue, 1 Oct 2019 02:29:29 +0000 (19:29 -0700)]
Free memory

4 years agoNotify threads paused by the Fuzzer when the desired write is available
weiyu [Tue, 1 Oct 2019 02:28:24 +0000 (19:28 -0700)]
Notify threads paused by the Fuzzer when the desired write is available

4 years agoClear headers
weiyu [Mon, 30 Sep 2019 18:14:07 +0000 (11:14 -0700)]
Clear headers

4 years agoChange the return type of Predicate::evaluate
weiyu [Mon, 30 Sep 2019 18:05:30 +0000 (11:05 -0700)]
Change the return type of Predicate::evaluate

4 years agoConcrete predicate class
weiyu [Mon, 30 Sep 2019 17:41:07 +0000 (10:41 -0700)]
Concrete predicate class

4 years agoFactor predicate expression types into a separate file
weiyu [Mon, 30 Sep 2019 17:39:12 +0000 (10:39 -0700)]
Factor predicate expression types into a separate file

4 years agoAble to evaluate predicate expression against a 'context' and generate concrete predi...
weiyu [Fri, 27 Sep 2019 00:30:01 +0000 (17:30 -0700)]
Able to evaluate predicate expression against a 'context' and generate concrete predicates

4 years agoNeed to free memory
weiyu [Thu, 26 Sep 2019 23:57:17 +0000 (16:57 -0700)]
Need to free memory

4 years agoFix a bug
weiyu [Thu, 26 Sep 2019 19:52:24 +0000 (12:52 -0700)]
Fix a bug

4 years agoFix a bug in pthread_mutex_unlock; initialize mutex if necessary when pthread_mutex_t...
weiyu [Thu, 19 Sep 2019 00:59:52 +0000 (17:59 -0700)]
Fix a bug in pthread_mutex_unlock; initialize mutex if necessary when pthread_mutex_timedlock is called

4 years agoKeep track of which FuncNodes may write to a memory location
weiyu [Thu, 19 Sep 2019 00:55:27 +0000 (17:55 -0700)]
Keep track of which FuncNodes may write to a memory location

4 years agoAdd comment about the difference between ModelAction::is_write and FuncInst::is_write
weiyu [Tue, 17 Sep 2019 02:45:34 +0000 (19:45 -0700)]
Add comment about the difference between ModelAction::is_write and FuncInst::is_write

4 years agoConstruct the graph of methods based on the order that methods are called, rather...
weiyu [Mon, 16 Sep 2019 23:28:41 +0000 (16:28 -0700)]
Construct the graph of methods based on the order that methods are called, rather than construct it as a call graph

4 years agoAdd edges between FuncNodes
weiyu [Fri, 13 Sep 2019 02:02:10 +0000 (19:02 -0700)]
Add edges between FuncNodes

4 years agoChange action_list_buffer to snapshot memory instead of half-shapshot-half-non-snapshot
weiyu [Thu, 12 Sep 2019 21:03:28 +0000 (14:03 -0700)]
Change action_list_buffer to snapshot memory instead of half-shapshot-half-non-snapshot

4 years agoMake sure that actions that do writes are labeled correctly in predicate trees
weiyu [Wed, 11 Sep 2019 00:21:35 +0000 (17:21 -0700)]
Make sure that actions that do writes are labeled correctly in predicate trees

4 years agoReorganize codes
weiyu [Tue, 10 Sep 2019 01:32:24 +0000 (18:32 -0700)]
Reorganize codes

4 years agoAdd atomic write actions to predicate trees
weiyu [Tue, 10 Sep 2019 01:17:58 +0000 (18:17 -0700)]
Add atomic write actions to predicate trees

4 years agoRemove an unused data structure
weiyu [Mon, 9 Sep 2019 23:49:47 +0000 (16:49 -0700)]
Remove an unused data structure

4 years agoRemove unused codes
weiyu [Mon, 9 Sep 2019 23:41:00 +0000 (16:41 -0700)]
Remove unused codes

4 years agoModify the implementation of wait and timed wait operation
weiyu [Fri, 6 Sep 2019 18:43:03 +0000 (11:43 -0700)]
Modify the implementation of wait and timed wait operation

4 years agoDo not process read actions paused by the fuzzer
weiyu [Thu, 5 Sep 2019 01:34:24 +0000 (18:34 -0700)]
Do not process read actions paused by the fuzzer

4 years agoseems to work
weiyu [Thu, 5 Sep 2019 01:26:56 +0000 (18:26 -0700)]
seems to work

4 years agoWhen an atomic read action cannot read from a desired write, make this thread sleep...
weiyu [Thu, 5 Sep 2019 00:49:56 +0000 (17:49 -0700)]
When an atomic read action cannot read from a desired write, make this thread sleep; half working now, still got some bug to fix

4 years agosplit add_action_to_lists into to two functions and change the order of how things...
weiyu [Tue, 3 Sep 2019 20:53:45 +0000 (13:53 -0700)]
split add_action_to_lists into to two functions and change the order of how things are processed in check_current_action

4 years agoremove a redundant member function that I added before
weiyu [Fri, 30 Aug 2019 20:04:20 +0000 (13:04 -0700)]
remove a redundant member function that I added before

4 years agofix bug by changing MEMALLOC to SNAPSHOTALLOC
weiyu [Thu, 29 Aug 2019 23:02:17 +0000 (16:02 -0700)]
fix bug by changing MEMALLOC to SNAPSHOTALLOC

4 years agoimprove efficiency of selectWrite
weiyu [Thu, 29 Aug 2019 19:48:51 +0000 (12:48 -0700)]
improve efficiency of selectWrite

4 years agoremove unused member functions
weiyu [Thu, 29 Aug 2019 01:18:18 +0000 (18:18 -0700)]
remove unused member functions

4 years agomove codes around in history.cc, and NewFuzzer::selectWrite is half working
weiyu [Wed, 28 Aug 2019 22:27:43 +0000 (15:27 -0700)]
move codes around in history.cc, and NewFuzzer::selectWrite is half working

4 years agoremove unused member functions and add a new data structure
weiyu [Wed, 28 Aug 2019 22:20:03 +0000 (15:20 -0700)]
remove unused member functions and add a new data structure

4 years agoonly select a new predicate branch when new read actions are processed
weiyu [Wed, 28 Aug 2019 00:28:48 +0000 (17:28 -0700)]
only select a new predicate branch when new read actions are processed

4 years agosome edits to NewFuzzer
weiyu [Tue, 27 Aug 2019 00:27:21 +0000 (17:27 -0700)]
some edits to NewFuzzer

4 years agoperformace fix
weiyu [Tue, 27 Aug 2019 00:22:53 +0000 (17:22 -0700)]
performace fix

4 years agofix bug
weiyu [Mon, 26 Aug 2019 23:05:36 +0000 (16:05 -0700)]
fix bug

4 years agoadd a data structrue to keep track of the run-time position in the predicate tree...
weiyu [Mon, 26 Aug 2019 22:27:48 +0000 (15:27 -0700)]
add a data structrue to keep track of the run-time position in the predicate tree for each thread

4 years agoinitial commit for declaring member functions of Fuzzer as virtual
weiyu [Mon, 26 Aug 2019 20:26:44 +0000 (13:26 -0700)]
initial commit for declaring member functions of Fuzzer as virtual

4 years agoonly generate NULLITY predicate when it has ever been NULL; able to amend predicates...
weiyu [Sat, 24 Aug 2019 00:02:08 +0000 (17:02 -0700)]
only generate NULLITY predicate when it has ever been NULL; able to amend predicates that contain no predicate expressions

4 years agoget rid of an unused function
weiyu [Fri, 23 Aug 2019 22:50:19 +0000 (15:50 -0700)]
get rid of an unused function

4 years agorestructure the codes that generate predicates
weiyu [Fri, 23 Aug 2019 22:49:02 +0000 (15:49 -0700)]
restructure the codes that generate predicates

4 years agorestructure code and working on deconstructors
weiyu [Fri, 23 Aug 2019 01:19:06 +0000 (18:19 -0700)]
restructure code and working on deconstructors

4 years agoexperiment with generating equality predicates across memory locations; it seems...
weiyu [Thu, 22 Aug 2019 20:32:44 +0000 (13:32 -0700)]
experiment with generating equality predicates across memory locations; it seems to work, but codes can be reorganized

4 years agodeduce which locations may share the same value from val_loc_map
weiyu [Thu, 22 Aug 2019 19:53:17 +0000 (12:53 -0700)]
deduce which locations may share the same value from val_loc_map

4 years agoupdate FuncNodes when there is a write
weiyu [Thu, 22 Aug 2019 01:55:41 +0000 (18:55 -0700)]
update FuncNodes when there is a write

4 years agoadd helper functions; prepare for computing which memory locations may store the...
weiyu [Wed, 21 Aug 2019 20:52:25 +0000 (13:52 -0700)]
add helper functions; prepare for computing which memory locations may store the same values

4 years agoAdd ack
bdemsky [Tue, 20 Aug 2019 22:30:29 +0000 (15:30 -0700)]
Add ack

4 years agoMerge branch 'master' into branch-weiyu
weiyu [Tue, 20 Aug 2019 22:26:09 +0000 (15:26 -0700)]
Merge branch 'master' into branch-weiyu

4 years agoallow ModelHistory to process non-atomic actions when they are created
weiyu [Tue, 20 Aug 2019 22:23:26 +0000 (15:23 -0700)]
allow ModelHistory to process non-atomic actions when they are created

4 years agoreset memory locations of FuncInsts when new executions start
weiyu [Tue, 20 Aug 2019 22:19:59 +0000 (15:19 -0700)]
reset memory locations of FuncInsts when new executions start

4 years agoAdd mailing list
bdemsky [Tue, 20 Aug 2019 21:26:37 +0000 (14:26 -0700)]
Add mailing list

4 years agoRemove msqueue test case
bdemsky [Tue, 20 Aug 2019 21:21:46 +0000 (14:21 -0700)]
Remove msqueue test case

4 years agoFix compile and readme
bdemsky [Tue, 20 Aug 2019 04:47:31 +0000 (21:47 -0700)]
Fix compile and readme

4 years agomemory locations should not outlive executions
weiyu [Tue, 20 Aug 2019 00:23:22 +0000 (17:23 -0700)]
memory locations should not outlive executions

4 years agochange the way to detect loops
weiyu [Fri, 16 Aug 2019 23:59:31 +0000 (16:59 -0700)]
change the way to detect loops

4 years agodefer the initial update of predicate tree for a better quality tree; generate nullit...
weiyu [Fri, 16 Aug 2019 19:23:29 +0000 (12:23 -0700)]
defer the initial update of predicate tree for a better quality tree; generate nullity predicates when new Predicate nodes are created instead of changing unset predicates to nullity later

4 years agotry to infer nullity predicate inside update_predicate_tree. Maybe rethink about...
weiyu [Fri, 16 Aug 2019 02:05:01 +0000 (19:05 -0700)]
try to infer nullity predicate inside update_predicate_tree. Maybe rethink about the way to check back edges

4 years agochange the structure of predicate expressions, and modify the way nullity predicates...
weiyu [Thu, 15 Aug 2019 02:16:47 +0000 (19:16 -0700)]
change the structure of predicate expressions, and modify the way nullity predicates are added

4 years agoexperiment with adding NULLITY predicate
weiyu [Wed, 14 Aug 2019 23:33:55 +0000 (16:33 -0700)]
experiment with adding NULLITY predicate

4 years agodo optimization for FuncNode::update_tree
weiyu [Tue, 13 Aug 2019 00:46:25 +0000 (17:46 -0700)]
do optimization for FuncNode::update_tree

4 years agorevert commit
weiyu [Mon, 12 Aug 2019 22:47:03 +0000 (15:47 -0700)]
revert commit

4 years agofix a bug about get_reads_from_value
weiyu [Mon, 12 Aug 2019 22:27:52 +0000 (15:27 -0700)]
fix a bug about get_reads_from_value

4 years agoget rid of read_val_map; A bug is discovered.
weiyu [Fri, 9 Aug 2019 23:06:34 +0000 (16:06 -0700)]
get rid of read_val_map; A bug is discovered.

4 years agofix bug - 'backedge' in predicate.cc uninitialized
weiyu [Fri, 9 Aug 2019 20:09:46 +0000 (13:09 -0700)]
fix bug - 'backedge' in predicate.cc uninitialized

4 years agofix bug
weiyu [Fri, 9 Aug 2019 01:45:42 +0000 (18:45 -0700)]
fix bug

4 years agoadd a dummy predicate entry node to make code simpler; back edges are also added
weiyu [Thu, 8 Aug 2019 23:16:58 +0000 (16:16 -0700)]
add a dummy predicate entry node to make code simpler; back edges are also added

4 years agorestructrue code of funcnode.cc, and planning for adding back edges in predicate...
weiyu [Thu, 8 Aug 2019 00:27:13 +0000 (17:27 -0700)]
restructrue code of funcnode.cc, and planning for adding back edges in predicate tree

4 years agoSplit FuncNode::get_or_add_inst into two separate functions. Call add_inst inside...
weiyu [Wed, 7 Aug 2019 02:02:42 +0000 (19:02 -0700)]
Split FuncNode::get_or_add_inst into two separate functions.  Call add_inst inside process_action so that func_insts corresponding to ATOMIC RMWRCAS actions are created before those actions are converted to ATOMIC RMWR or ATOMIC READ

4 years agomove modelhistory code back
weiyu [Tue, 6 Aug 2019 20:38:58 +0000 (13:38 -0700)]
move modelhistory code back

4 years agotoward updating predicate trees every time a function exits
weiyu [Tue, 6 Aug 2019 00:28:10 +0000 (17:28 -0700)]
toward updating predicate trees every time a function exits

4 years agomove the codes that add actions to thrd_func_act_lists from history.cc to ModelExecut...
weiyu [Mon, 5 Aug 2019 22:39:02 +0000 (15:39 -0700)]
move the codes that add actions to thrd_func_act_lists from history.cc to ModelExecution::add_action_to_lists