model-checker.git
12 years agomain: fixup parameter parsing for user program
Brian Norris [Fri, 2 Nov 2012 22:50:48 +0000 (15:50 -0700)]
main: fixup parameter parsing for user program

The user program expects 'optind' to be reset and for 'argv' and 'argc'
to include the program name as the first argument variable.

Note: our mmap()/mprotect()-based snapshotting does not snapshot this
'optind' global, so user-progs that use optarg() functionality might
fail.

12 years agomain: always ensure defaults when printing
Brian Norris [Sun, 4 Nov 2012 01:14:19 +0000 (18:14 -0700)]
main: always ensure defaults when printing

If one or more arguments have been parsed by the time we print a help
message, we may print the wrong defaults. Fix: always reset to defaults
before printing.

12 years agomodel: fix some whitespace
Brian Norris [Sun, 4 Nov 2012 01:09:59 +0000 (18:09 -0700)]
model: fix some whitespace

12 years agoannoying bug... Optimization was originally intended for the following insight:
Brian Demsky [Sat, 3 Nov 2012 22:24:54 +0000 (15:24 -0700)]
annoying bug...  Optimization was originally intended for the following insight:
if you have a unresolved read and a write w that is mod ordered after whatever that read sees, then any writes that are mo past w should not send their future values back to the unresolved read.  So we begin by looking for operations that happen after the unresolved read and if they are a write we have our w, and if they are a read then its reads_from is our w.
The case I missed was we don't want to consider the write that the read we want to send the value to is currently reading...  It won't cause a mo problem because it will be gone if we send a future value back to that read.

12 years agopromise: fix signed/unsigned warning
Brian Norris [Sat, 3 Nov 2012 19:09:20 +0000 (12:09 -0700)]
promise: fix signed/unsigned warning

12 years agoclean up check code
Brian Demsky [Sat, 3 Nov 2012 09:54:08 +0000 (02:54 -0700)]
clean up check code

12 years agooptimization - a given write can resolve at most one promise from a rmw
Brian Demsky [Sat, 3 Nov 2012 09:41:00 +0000 (02:41 -0700)]
optimization - a given write can resolve at most one promise from a rmw

12 years agovarious fixes. linux rw locks should work again with -m 1
Brian Demsky [Sat, 3 Nov 2012 08:32:19 +0000 (01:32 -0700)]
various fixes.  linux rw locks should work again with -m 1

12 years agoMerge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker
Brian Demsky [Sat, 3 Nov 2012 05:14:17 +0000 (22:14 -0700)]
Merge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker

12 years agofix two bugs in model.cc...mainly don't print bogus data race messages...
Brian Demsky [Sat, 3 Nov 2012 05:13:31 +0000 (22:13 -0700)]
fix two bugs in model.cc...mainly don't print bogus data race messages...

12 years agothis is the bad line...
Brian Demsky [Sat, 3 Nov 2012 04:10:00 +0000 (21:10 -0700)]
this is the bad line...

12 years agoprevious synchronization was weird...
Brian Demsky [Sat, 3 Nov 2012 03:26:19 +0000 (20:26 -0700)]
previous synchronization was weird...

12 years agofix bugs with promise check...
Brian Demsky [Sat, 3 Nov 2012 01:50:11 +0000 (18:50 -0700)]
fix bugs with promise check...

12 years agochanges to fix at least a bug
Brian Demsky [Sat, 3 Nov 2012 00:35:42 +0000 (17:35 -0700)]
changes to fix at least a bug

12 years agofix norris bugs
Brian Demsky [Fri, 2 Nov 2012 08:11:40 +0000 (01:11 -0700)]
fix norris bugs

12 years agomodel: totally destroy 'curr' within initialize_curr_action()
Brian Norris [Fri, 2 Nov 2012 04:43:07 +0000 (21:43 -0700)]
model: totally destroy 'curr' within initialize_curr_action()

We don't really want 'curr' and 'newcurr' to hang around together. So
convert initialize_curr_action() to have two "return" parameters; it
overwrites the 'curr' pointer as a return value and it returns a status
boolean to show that it overwrote it. This may help prevent some future
bugs.

12 years agoclockvector: remove old include
Brian Norris [Fri, 2 Nov 2012 04:19:51 +0000 (21:19 -0700)]
clockvector: remove old include

We don't use std::max anymore.

12 years agofound the bug
Brian Demsky [Thu, 1 Nov 2012 23:50:19 +0000 (16:50 -0700)]
found the bug

12 years agorealloc doesn't guarantee zeroing...
Brian Demsky [Thu, 1 Nov 2012 22:59:56 +0000 (15:59 -0700)]
realloc doesn't guarantee zeroing...

12 years agobug
Brian Demsky [Thu, 1 Nov 2012 22:57:49 +0000 (15:57 -0700)]
bug

12 years agofix new bug
Brian Demsky [Thu, 1 Nov 2012 22:11:00 +0000 (15:11 -0700)]
fix new bug
norris's makefile change breaks compile on mac

12 years agoclockvector: bugfix - bad clock merge
Brian Norris [Thu, 1 Nov 2012 19:53:01 +0000 (12:53 -0700)]
clockvector: bugfix - bad clock merge

The clock merge function had a really bad bug, where it would copy
garbage into the new clock vector, if the earlier clock vector (cv) was
"wider" than the current clock vector (this).

Now, ClockVector::merge is much simpler and much less buggy.

12 years agonodestack: improve bounds-checking assertion
Brian Norris [Thu, 1 Nov 2012 19:08:53 +0000 (12:08 -0700)]
nodestack: improve bounds-checking assertion

I have a test case where future_index == -1 in get_future_value(). It
passes the ASSERT() and instead triggers a fault when accessing the
vector.

With the benchmarks at this commit:

    commit 40b27f40998eed81640b016094bacf79df96d377
    mpmc-queue: run more producer/consumer threads

I can trigger a model-checker bug by running:

  # ./run.sh mpmc-queue/mpmc-queue -f 4 -m 1
  ...
  Error: assertion failed in nodestack.cc at line 319
  stack trace:
    ../libmodel.so : Node::get_future_value()+0x56
    ../libmodel.so : ModelChecker::process_read(ModelAction*, bool)+0x141
    ../libmodel.so :
  ModelChecker::check_current_action(ModelAction*)+0x2ff
    ../libmodel.so : ModelChecker::take_step()+0x6c
    ../libmodel.so : ModelChecker::finish_execution()+0x10
    ../libmodel.so : ()+0x16a8a
    ../libmodel.so : main()+0x37
    /lib/x86_64-linux-gnu/libc.so.6 : __libc_start_main()+0xed
    mpmc-queue/mpmc-queue() [0x400f59]
  ...

12 years agocommon.mk: build with -O3 (except for Mac OSX)
Brian Norris [Thu, 1 Nov 2012 17:59:42 +0000 (10:59 -0700)]
common.mk: build with -O3 (except for Mac OSX)

12 years agomodel: silence "uninitialized" warning
Brian Norris [Thu, 1 Nov 2012 17:58:11 +0000 (10:58 -0700)]
model: silence "uninitialized" warning

12 years agomodel: update mo_may_allow restrictions
Brian Norris [Thu, 1 Nov 2012 17:38:49 +0000 (10:38 -0700)]
model: update mo_may_allow restrictions

For future values, we can enforce the following rule:

  If X --hb-> Y --mo-> Z, then X should not read from Z.

This a change from previous behavior, where we used 'sb' instead of
'hb'.

Tested with linuxrwlocks example:

  ./run.sh test/linuxrwlocks.o -f 4 -m 1

No difference in number of executions (feasible or infeasible); HASH
values were exactly the same.

12 years agotests: add thinair test
Brian Norris [Mon, 29 Oct 2012 18:44:52 +0000 (11:44 -0700)]
tests: add thinair test

12 years agoMakefile/malloc: don't warn for self-assign
Brian Norris [Mon, 29 Oct 2012 18:23:26 +0000 (11:23 -0700)]
Makefile/malloc: don't warn for self-assign

12 years agoMakefile: use -rdyanmic only for linking
Brian Norris [Mon, 29 Oct 2012 18:19:28 +0000 (11:19 -0700)]
Makefile: use -rdyanmic only for linking

I ignored this part of the GCC manpage:

  "Pass the flag -export-dynamic to the ELF linker..."

12 years agotests: use signed printf format
Brian Norris [Mon, 29 Oct 2012 18:09:12 +0000 (11:09 -0700)]
tests: use signed printf format

12 years agochanges to allow running programs with racing initialization...
Brian Demsky [Fri, 26 Oct 2012 23:31:20 +0000 (16:31 -0700)]
changes to allow running programs with racing initialization...

12 years agocheck in test
Brian Demsky [Thu, 25 Oct 2012 23:28:19 +0000 (16:28 -0700)]
check in test

12 years agoadd test from nitpick paper...
Brian Demsky [Thu, 25 Oct 2012 23:25:09 +0000 (16:25 -0700)]
add test from nitpick paper...

12 years agoembarrassing bug...fixed...
Brian Demsky [Thu, 25 Oct 2012 04:37:02 +0000 (21:37 -0700)]
embarrassing bug...fixed...

12 years agomodel: fix - RMW cannot break release sequences
Brian Norris [Fri, 19 Oct 2012 22:27:37 +0000 (15:27 -0700)]
model: fix - RMW cannot break release sequences

I misinterpreted the spec's description of release sequences.

12 years agoDoxygen: document subdirectories
Brian Norris [Fri, 12 Oct 2012 18:05:26 +0000 (11:05 -0700)]
Doxygen: document subdirectories

Document include/, but ignore doc/, benchmarks/, and test/.

12 years agothread_id_t: add comments
Brian Norris [Fri, 12 Oct 2012 18:05:12 +0000 (11:05 -0700)]
thread_id_t: add comments

12 years agofixup 'int' vs. 'thread_id_t' usage
Brian Norris [Fri, 12 Oct 2012 17:52:00 +0000 (10:52 -0700)]
fixup 'int' vs. 'thread_id_t' usage

12 years agomodeltypes: move to include/ dir, for now
Brian Norris [Fri, 12 Oct 2012 17:24:18 +0000 (10:24 -0700)]
modeltypes: move to include/ dir, for now

The <mutex> header uses some small amount of private model-checker
information, so just move the common typedefs to our external include/
directory.

12 years agomutex: define empty destructor
Brian Norris [Fri, 12 Oct 2012 17:21:41 +0000 (10:21 -0700)]
mutex: define empty destructor

I don't think we really need the destructor. It causes undefined
reference compilation errors though:

  ... undefined reference to `std::mutex::~mutex()'

12 years agocondition_variable: move header
Brian Norris [Fri, 12 Oct 2012 17:14:44 +0000 (10:14 -0700)]
condition_variable: move header

Move from "conditionvariable.h" to "include/condition_variable". This
allows the normal C++11 #include syntax of:

  #include <condition_variable>

12 years agoadd two test cases
Brian Demsky [Fri, 12 Oct 2012 06:56:40 +0000 (23:56 -0700)]
add two test cases

12 years agoforgot to add two files...
Brian Demsky [Fri, 12 Oct 2012 06:56:12 +0000 (23:56 -0700)]
forgot to add two files...
bug fixes...

12 years agocommit untested condvar code
Brian Demsky [Fri, 12 Oct 2012 05:51:45 +0000 (22:51 -0700)]
commit untested condvar code

12 years agoMerge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker
Brian Demsky [Fri, 12 Oct 2012 05:01:33 +0000 (22:01 -0700)]
Merge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker

12 years agomove other interface headers to include/
Brian Norris [Fri, 12 Oct 2012 00:08:20 +0000 (17:08 -0700)]
move other interface headers to include/

We want all external interface headers (i.e., any #include'd in user
programs) to be in the include/ directory.

12 years agocompiles with condition variables file added...
Brian Demsky [Thu, 11 Oct 2012 23:54:20 +0000 (16:54 -0700)]
compiles with condition variables file added...
still need model checker support

12 years agomutex: move mutex.h to standard name/location
Brian Norris [Thu, 11 Oct 2012 23:48:39 +0000 (16:48 -0700)]
mutex: move mutex.h to standard name/location

The important exported interfaces should be in the include/ dir. Also,
C++11 programs should use this header as:

    #include <mutex>

12 years agoinclude/: add small header comments
Brian Norris [Thu, 11 Oct 2012 17:28:22 +0000 (10:28 -0700)]
include/: add small header comments

12 years agoimpatomic: add multiple-inclusion guards
Brian Norris [Thu, 11 Oct 2012 17:18:18 +0000 (10:18 -0700)]
impatomic: add multiple-inclusion guards

12 years agoaction: improve printing
Brian Norris [Thu, 11 Oct 2012 02:24:29 +0000 (19:24 -0700)]
action: improve printing

The 'value' field of a ModelAction might actually represent a signed
number, a pointer, or something else entirely, so values look very huge
and uninformative when printed, especially in decimal. Hexadecimal
representation makes everything a little more readable, I think.

While I'm at it, I adjust the spacing a little and make VALUE_NONE into
a different magic number which is more recognizable in hex.

12 years agoMakefile: add benchmarks to top-level
Brian Norris [Wed, 10 Oct 2012 23:01:30 +0000 (16:01 -0700)]
Makefile: add benchmarks to top-level

12 years agosegfault file/line breakpoint info
Brian Norris [Wed, 10 Oct 2012 22:42:27 +0000 (15:42 -0700)]
segfault file/line breakpoint info

This can give easy info for using gdb. e.g.:

    For debugging, place breakpoint at: snapshot.cc:92

12 years agoMerge remote-tracking branch 'origin/master'
Brian Norris [Wed, 10 Oct 2012 22:21:32 +0000 (15:21 -0700)]
Merge remote-tracking branch 'origin/master'

12 years agoimpatomic: add strong/weak compare_exchange
Brian Norris [Wed, 10 Oct 2012 22:16:59 +0000 (15:16 -0700)]
impatomic: add strong/weak compare_exchange

According to n2748.html, there was a change to allow spurious failure of
compare_exchange operations. Thus, there is no longer a
compare_exchange() operation, but rather a pair of
compare_exchange_{strong,weak)(). I resolve this for compilation
purposes now by editing the impatomic header (mostly with Vim macros for
patterned copy-paste-substitute) and adding an _ATOMIC_CMPSWP_WEAK_
macro, which is just an alias for _ATOMIC_CMPSWP_. Thus, we don't
simulate spurious failure yet.

See:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2748.html

12 years agomake scheduler choose fair schedules when threads with priority are sleeping...
Brian Demsky [Wed, 10 Oct 2012 21:33:30 +0000 (14:33 -0700)]
make scheduler choose fair schedules when threads with priority are sleeping...

12 years agoaction: add NULL dereference assertion
Brian Norris [Wed, 10 Oct 2012 18:43:52 +0000 (11:43 -0700)]
action: add NULL dereference assertion

In user programs, we might find a NULL atomic object being dereferenced,
causing strange model-checker behavior which will track memory address 0
as an atomic object. This may result in apparently-uninitialized
variables, for instance.

So, just nip these in the bud with an assertion. Perhaps these things
can transformed into some more informative type of warning in the
future, where user-visible bugs might print helpful messages.

12 years agothreads: correct 'thrd_yield()'
Brian Norris [Wed, 10 Oct 2012 18:41:38 +0000 (11:41 -0700)]
threads: correct 'thrd_yield()'

The C11 thrd_yield() interface should return void. Also, it doesn't need
to do anything in our model-checker for now. I'm leaving its
implementation commented out for now, in case we find it helps for
fairness, for instance. Note that I made its location parameter non-NULL
now, too, so that we can identify the Thread, if we ever use it.

12 years agoMerge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker
Brian Demsky [Wed, 10 Oct 2012 01:10:37 +0000 (18:10 -0700)]
Merge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker

12 years agomake linux_rw locks work again
Brian Demsky [Wed, 10 Oct 2012 01:10:10 +0000 (18:10 -0700)]
make linux_rw locks work again

12 years agoMerge remote-tracking branch 'origin/master'
Brian Norris [Wed, 10 Oct 2012 00:58:32 +0000 (17:58 -0700)]
Merge remote-tracking branch 'origin/master'

12 years agoimpatomic: rename all 'swap' to 'exchange'
Brian Norris [Wed, 10 Oct 2012 00:55:31 +0000 (17:55 -0700)]
impatomic: rename all 'swap' to 'exchange'

n2427.html seems to have some very old definitions. I think this all
should be 'exchange', not 'swap'.

Note that there are other issues where we don't have the correct
function names available. But this fixes some of the problems.

12 years agofix some of the bugs related to barrier example...
Brian Demsky [Wed, 10 Oct 2012 00:54:43 +0000 (17:54 -0700)]
fix some of the bugs related to barrier example...

12 years agoinclude: add multiple-inclusion guards
Brian Norris [Wed, 10 Oct 2012 00:48:56 +0000 (17:48 -0700)]
include: add multiple-inclusion guards

12 years ago.gitignore: ignore 'benchmarks' folder
Brian Norris [Tue, 9 Oct 2012 23:30:43 +0000 (16:30 -0700)]
.gitignore: ignore 'benchmarks' folder

Now, you can clone the benchmarks repository under the name 'benchmarks'
and have it compile-ready (but ignored by this repository) with:

  git clone <URI/model-checker-benchmarks.git> benchmarks
  cd benchmarks
  make

Future updates can be pulled in via a 'git pull' from that directory:

  cd benchmarks
  git pull

12 years agotests: use <stdatomic.h>
Brian Norris [Tue, 9 Oct 2012 21:10:45 +0000 (14:10 -0700)]
tests: use <stdatomic.h>

While I'm at it, rearrange the header listings.

12 years agomove libthreads.h -> include/threads.h
Brian Norris [Tue, 9 Oct 2012 19:09:02 +0000 (12:09 -0700)]
move libthreads.h -> include/threads.h

Helps user programs to be able to just use C11 <threads.h>

12 years agorename threads.h -> threads-model.h
Brian Norris [Tue, 9 Oct 2012 19:05:32 +0000 (12:05 -0700)]
rename threads.h -> threads-model.h

There's a name conflict with the C11 <threads.h>
We might as well just avoid the conflict entirely

12 years agoinclude: add <atomic> header
Brian Norris [Tue, 9 Oct 2012 19:02:42 +0000 (12:02 -0700)]
include: add <atomic> header

12 years agodid a little more looking at infeasible executions...
Brian Demsky [Tue, 9 Oct 2012 06:35:21 +0000 (23:35 -0700)]
did a little more looking at infeasible executions...
another obvious property we missed...kills about 1/3 of the infeasible executions...

12 years agomodel: JOIN/LOCK unification
Brian Norris [Wed, 3 Oct 2012 19:07:33 +0000 (12:07 -0700)]
model: JOIN/LOCK unification

Make join and lock actions use similar code paths.

This used to trigger a bug, due to the lack of a private snapshotting
heap.

12 years agodatarace: reformat datarace printing
Brian Norris [Tue, 9 Oct 2012 02:34:43 +0000 (19:34 -0700)]
datarace: reformat datarace printing

12 years agothreads: allocate on user's snapshotting heap
Brian Norris [Tue, 9 Oct 2012 01:59:26 +0000 (18:59 -0700)]
threads: allocate on user's snapshotting heap

The following comment is included in threads.h to explain this choice:

  Intentionally NOT allocated with MODELALLOC or SNAPSHOTALLOC. Threads
  should be allocated on the user's normal (snapshotting) heap to allow
  their allocation/deallocation to follow the same pattern as the rest
  of the backtracked/replayed program.

This fix solves problems seen in certain test programs regarding a
Thread being allocated in different locations for different executions.

12 years agoschedule: bugfix - fix typo in wake
Brian Norris [Tue, 9 Oct 2012 01:42:22 +0000 (18:42 -0700)]
schedule: bugfix - fix typo in wake

The Thread should be re-enabled, not disabled, when waking up.

12 years agouser_main: pass remaining arguments to the user program
Brian Norris [Tue, 9 Oct 2012 01:36:06 +0000 (18:36 -0700)]
user_main: pass remaining arguments to the user program

12 years agomain: rename 'real_main()' to 'model_main()'
Brian Norris [Tue, 9 Oct 2012 01:34:35 +0000 (18:34 -0700)]
main: rename 'real_main()' to 'model_main()'

12 years agomistake
Brian Demsky [Tue, 9 Oct 2012 00:20:20 +0000 (17:20 -0700)]
mistake

12 years agobe much more careful about sending values backwards...
Brian Demsky [Tue, 9 Oct 2012 00:19:32 +0000 (17:19 -0700)]
be much more careful about sending values backwards...

also implement hashing for traces...just an easy way to confirm whether we lose new traces...

12 years agobe even more aggressive about sleep sets...
Brian Demsky [Mon, 8 Oct 2012 21:48:47 +0000 (14:48 -0700)]
be even more aggressive about sleep sets...
if an action was sleeping, it should only read from a value that could potentially result in synchronization with a release done while it was sleeping

12 years agomymemory: re-indent
Brian Norris [Mon, 8 Oct 2012 20:53:42 +0000 (13:53 -0700)]
mymemory: re-indent

12 years agomodel: stack-allocated vector should use ModelAlloc
Brian Norris [Mon, 8 Oct 2012 20:51:58 +0000 (13:51 -0700)]
model: stack-allocated vector should use ModelAlloc

12 years agoutilize SnapshotAlloc STL allocator
Brian Norris [Mon, 8 Oct 2012 20:46:11 +0000 (13:46 -0700)]
utilize SnapshotAlloc STL allocator

12 years agomymemory: add SnapshotAlloc STL allocator
Brian Norris [Mon, 8 Oct 2012 20:36:11 +0000 (13:36 -0700)]
mymemory: add SnapshotAlloc STL allocator

Now, we just need to go through the tedious process of rewriting all our
STL definitions

12 years agomymemory: implement snapshot_*() allocations on model-checker's heap
Brian Norris [Mon, 8 Oct 2012 20:26:57 +0000 (13:26 -0700)]
mymemory: implement snapshot_*() allocations on model-checker's heap

12 years agomymemory: add basic model_snapshot_space
Brian Norris [Mon, 8 Oct 2012 20:26:07 +0000 (13:26 -0700)]
mymemory: add basic model_snapshot_space

I will begin to utilize the 'model_snapshot_space' as the
model-checker's private snapshotting heap.

12 years agorename again (snapshot_space -> user_snapshot_space)
Brian Norris [Mon, 8 Oct 2012 20:04:24 +0000 (13:04 -0700)]
rename again (snapshot_space -> user_snapshot_space)

I will be adding a separate model_snapshot_space

12 years agomymemory: kill system_malloc()
Brian Norris [Mon, 8 Oct 2012 20:11:13 +0000 (13:11 -0700)]
mymemory: kill system_malloc()

Not needed

12 years agosnapshot: use snapshot_space only in mprotect-based
Brian Norris [Mon, 8 Oct 2012 19:58:01 +0000 (12:58 -0700)]
snapshot: use snapshot_space only in mprotect-based

We don't need this heap for fork-based snapshotting, so clearly separate
the functionality here.

This also makes PageAlignedAdressUpdate() available only for
mprotect-based snapshotting.

12 years agosnapshot: don't need any snapshotting space for fork-based
Brian Norris [Mon, 8 Oct 2012 19:46:53 +0000 (12:46 -0700)]
snapshot: don't need any snapshotting space for fork-based

I have no idea why this was here in the first place. Somebody didn't
know what they were doing...

12 years agorename 'mySpace' to 'snapshot_space'
Brian Norris [Mon, 8 Oct 2012 19:38:53 +0000 (12:38 -0700)]
rename 'mySpace' to 'snapshot_space'

12 years agomymemory: make DontFree() static
Brian Norris [Mon, 8 Oct 2012 19:34:22 +0000 (12:34 -0700)]
mymemory: make DontFree() static

12 years agomymemory: reformat spacing
Brian Norris [Mon, 8 Oct 2012 19:30:06 +0000 (12:30 -0700)]
mymemory: reformat spacing

12 years agomymemory: kill system_free()
Brian Norris [Mon, 8 Oct 2012 19:21:15 +0000 (12:21 -0700)]
mymemory: kill system_free()

This function is not used

12 years agosnapshot: remove global 'basemySpace'
Brian Norris [Mon, 8 Oct 2012 19:13:07 +0000 (12:13 -0700)]
snapshot: remove global 'basemySpace'

Why was this here?

12 years agotest: linuxrwlocks: fixup spacing
Brian Norris [Mon, 8 Oct 2012 17:31:41 +0000 (10:31 -0700)]
test: linuxrwlocks: fixup spacing

12 years agomodel: remove todo
Brian Norris [Mon, 8 Oct 2012 17:25:29 +0000 (10:25 -0700)]
model: remove todo

12 years agomerge massive speedup with release sequence support...
Brian Demsky [Mon, 8 Oct 2012 08:21:35 +0000 (01:21 -0700)]
merge massive speedup with release sequence support...

Merge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker

Conflicts:
schedule.cc
schedule.h

12 years agoadd support for sleep sets...
Brian Demsky [Mon, 8 Oct 2012 08:15:06 +0000 (01:15 -0700)]
add support for sleep sets...

12 years agotest: add "double release sequence" test
Brian Norris [Mon, 8 Oct 2012 06:30:48 +0000 (23:30 -0700)]
test: add "double release sequence" test

This test uses two separate load-acquire's to establish the same release
sequence. This can cause problems with the current release sequence
fixups, so that we find an execution where one synchronizes and the
other doesn't, even when reading from the same sequence.

12 years agoMerge branch 'norris'
Brian Norris [Mon, 8 Oct 2012 06:25:48 +0000 (23:25 -0700)]
Merge branch 'norris'