To run the QRCU example, combine the code fragments in the previous section into a single file named qrcu.spin, and place the definitions for spin_lock() and spin_unlock() into a file named lock.h. Then use the following commands to build and run the QRCU model:
spin -a qrcu.spin cc -DSAFETY -o pan pan.c ./pan |
The resulting output shows that this model passes all of the cases
shown in
Table .
Now, it would be nice to run the case with three readers and three
updaters, however, simple extrapolation indicates that this will
require on the order of a terabyte of memory best case.
So, what to do?
Here are some possible approaches:
The following sections discuss each of these approaches.
Paul E. McKenney 2011-12-16