struct proc_dir_entry *pentry = NULL;
-static int p_or_np_reader_thread(void *data, int preemptable)
+static int p_or_np_reader_thread(const char *typename,
+ void *data, int preemptable)
{
int i;
int prev, cur;
cycles_t time1, time2, delay, delaymax = 0, delaymin = ULLONG_MAX,
delayavg = 0;
- printk("reader_thread/%lu runnning\n", (unsigned long)data);
+ printk("%s/%lu runnning\n", typename, (unsigned long)data);
do {
iter++;
if (!preemptable)
msleep(THREAD_READER_DELAY);
} while (!kthread_should_stop());
if (!iter) {
- printk("reader_thread/%lu iterations : %lu",
+ printk("%s/%lu iterations : %lu", typename,
(unsigned long)data, iter);
} else {
delayavg /= iter;
- printk("reader_thread/%lu iterations : %lu, "
+ printk("%s/%lu iterations : %lu, "
"lock delay [min,avg,max] %llu,%llu,%llu cycles\n",
+ typename,
(unsigned long)data, iter,
calibrate_cycles(delaymin),
calibrate_cycles(delayavg),
static int preader_thread(void *data)
{
- return p_or_np_reader_thread(data, 1);
+ return p_or_np_reader_thread("preader_thread", data, 1);
}
static int npreader_thread(void *data)
{
- return p_or_np_reader_thread(data, 0);
+ return p_or_np_reader_thread("npreader_thread", data, 0);
}
static int trylock_reader_thread(void *data)
if (pentry)
pentry->proc_fops = &my_operations;
- printk("PTHREAD_ROFFSET : %lX\n", PTHREAD_ROFFSET);
- printk("PTHREAD_RMASK : %lX\n", PTHREAD_RMASK);
- printk("NPTHREAD_ROFFSET : %lX\n", NPTHREAD_ROFFSET);
- printk("NPTHREAD_RMASK : %lX\n", NPTHREAD_RMASK);
- printk("SOFTIRQ_ROFFSET : %lX\n", SOFTIRQ_ROFFSET);
- printk("SOFTIRQ_RMASK : %lX\n", SOFTIRQ_RMASK);
- printk("HARDIRQ_ROFFSET : %lX\n", HARDIRQ_ROFFSET);
- printk("HARDIRQ_RMASK : %lX\n", HARDIRQ_RMASK);
- printk("SUBSCRIBERS_WOFFSET : %lX\n", SUBSCRIBERS_WOFFSET);
- printk("SUBSCRIBERS_WMASK : %lX\n", SUBSCRIBERS_WMASK);
- printk("WRITER_MUTEX : %lX\n", WRITER_MUTEX);
- printk("NPTHREAD_WMASK : %lX\n", SOFTIRQ_WMASK);
- printk("SOFTIRQ_WMASK : %lX\n", SOFTIRQ_WMASK);
- printk("HARDIRQ_WMASK : %lX\n", HARDIRQ_WMASK);
+ printk("PTHREAD_ROFFSET : %016lX\n", PTHREAD_ROFFSET);
+ printk("PTHREAD_RMASK : %016lX\n", PTHREAD_RMASK);
+ printk("NPTHREAD_ROFFSET : %016lX\n", NPTHREAD_ROFFSET);
+ printk("NPTHREAD_RMASK : %016lX\n", NPTHREAD_RMASK);
+ printk("SOFTIRQ_ROFFSET : %016lX\n", SOFTIRQ_ROFFSET);
+ printk("SOFTIRQ_RMASK : %016lX\n", SOFTIRQ_RMASK);
+ printk("HARDIRQ_ROFFSET : %016lX\n", HARDIRQ_ROFFSET);
+ printk("HARDIRQ_RMASK : %016lX\n", HARDIRQ_RMASK);
+ printk("PTHREAD_WOFFSET : %016lX\n", PTHREAD_WOFFSET);
+ printk("PTHREAD_WMASK : %016lX\n", PTHREAD_WMASK);
+ printk("NPTHREAD_WOFFSET : %016lX\n", NPTHREAD_WOFFSET);
+ printk("NPTHREAD_WMASK : %016lX\n", NPTHREAD_WMASK);
+ printk("WRITER_MUTEX : %016lX\n", WRITER_MUTEX);
+ printk("SOFTIRQ_WMASK : %016lX\n", SOFTIRQ_WMASK);
+ printk("HARDIRQ_WMASK : %016lX\n", HARDIRQ_WMASK);
return 0;
}