* 1 : test with thread preemption readers.
* 0 : test only with non-preemptable thread readers.
*/
* 1 : test with thread preemption readers.
* 0 : test only with non-preemptable thread readers.
*/
#if (TEST_PREEMPT)
#define NR_PREADERS 2
#if (TEST_PREEMPT)
#define NR_PREADERS 2
wbias_rwlock_profile_latency_print();
wbias_rwlock_profile_latency_print();
printk("** Single non-preemptable reader test, no contention **\n");
wbias_rwlock_profile_latency_reset();
npreader_threads[0] = kthread_run(npreader_thread, (void *)0,
printk("** Single non-preemptable reader test, no contention **\n");
wbias_rwlock_profile_latency_reset();
npreader_threads[0] = kthread_run(npreader_thread, (void *)0,
printk("\n");
wbias_rwlock_profile_latency_print();
printk("\n");
wbias_rwlock_profile_latency_print();
printk("** Multiple p/non-p readers test, no contention **\n");
wbias_rwlock_profile_latency_reset();
printk("** Multiple p/non-p readers test, no contention **\n");
wbias_rwlock_profile_latency_reset();