|
@@ -203,7 +203,7 @@ static void ring_buffer_producer(void)
|
|
* Hammer the buffer for 10 secs (this may
|
|
* Hammer the buffer for 10 secs (this may
|
|
* make the system stall)
|
|
* make the system stall)
|
|
*/
|
|
*/
|
|
- pr_info("Starting ring buffer hammer\n");
|
|
|
|
|
|
+ trace_printk("Starting ring buffer hammer\n");
|
|
do_gettimeofday(&start_tv);
|
|
do_gettimeofday(&start_tv);
|
|
do {
|
|
do {
|
|
struct ring_buffer_event *event;
|
|
struct ring_buffer_event *event;
|
|
@@ -239,7 +239,7 @@ static void ring_buffer_producer(void)
|
|
#endif
|
|
#endif
|
|
|
|
|
|
} while (end_tv.tv_sec < (start_tv.tv_sec + RUN_TIME) && !kill_test);
|
|
} while (end_tv.tv_sec < (start_tv.tv_sec + RUN_TIME) && !kill_test);
|
|
- pr_info("End ring buffer hammer\n");
|
|
|
|
|
|
+ trace_printk("End ring buffer hammer\n");
|
|
|
|
|
|
if (consumer) {
|
|
if (consumer) {
|
|
/* Init both completions here to avoid races */
|
|
/* Init both completions here to avoid races */
|
|
@@ -262,49 +262,50 @@ static void ring_buffer_producer(void)
|
|
overruns = ring_buffer_overruns(buffer);
|
|
overruns = ring_buffer_overruns(buffer);
|
|
|
|
|
|
if (kill_test)
|
|
if (kill_test)
|
|
- pr_info("ERROR!\n");
|
|
|
|
- pr_info("Time: %lld (usecs)\n", time);
|
|
|
|
- pr_info("Overruns: %lld\n", overruns);
|
|
|
|
|
|
+ trace_printk("ERROR!\n");
|
|
|
|
+ trace_printk("Time: %lld (usecs)\n", time);
|
|
|
|
+ trace_printk("Overruns: %lld\n", overruns);
|
|
if (disable_reader)
|
|
if (disable_reader)
|
|
- pr_info("Read: (reader disabled)\n");
|
|
|
|
|
|
+ trace_printk("Read: (reader disabled)\n");
|
|
else
|
|
else
|
|
- pr_info("Read: %ld (by %s)\n", read,
|
|
|
|
|
|
+ trace_printk("Read: %ld (by %s)\n", read,
|
|
read_events ? "events" : "pages");
|
|
read_events ? "events" : "pages");
|
|
- pr_info("Entries: %lld\n", entries);
|
|
|
|
- pr_info("Total: %lld\n", entries + overruns + read);
|
|
|
|
- pr_info("Missed: %ld\n", missed);
|
|
|
|
- pr_info("Hit: %ld\n", hit);
|
|
|
|
|
|
+ trace_printk("Entries: %lld\n", entries);
|
|
|
|
+ trace_printk("Total: %lld\n", entries + overruns + read);
|
|
|
|
+ trace_printk("Missed: %ld\n", missed);
|
|
|
|
+ trace_printk("Hit: %ld\n", hit);
|
|
|
|
|
|
/* Convert time from usecs to millisecs */
|
|
/* Convert time from usecs to millisecs */
|
|
do_div(time, USEC_PER_MSEC);
|
|
do_div(time, USEC_PER_MSEC);
|
|
if (time)
|
|
if (time)
|
|
hit /= (long)time;
|
|
hit /= (long)time;
|
|
else
|
|
else
|
|
- pr_info("TIME IS ZERO??\n");
|
|
|
|
|
|
+ trace_printk("TIME IS ZERO??\n");
|
|
|
|
|
|
- pr_info("Entries per millisec: %ld\n", hit);
|
|
|
|
|
|
+ trace_printk("Entries per millisec: %ld\n", hit);
|
|
|
|
|
|
if (hit) {
|
|
if (hit) {
|
|
/* Calculate the average time in nanosecs */
|
|
/* Calculate the average time in nanosecs */
|
|
avg = NSEC_PER_MSEC / hit;
|
|
avg = NSEC_PER_MSEC / hit;
|
|
- pr_info("%ld ns per entry\n", avg);
|
|
|
|
|
|
+ trace_printk("%ld ns per entry\n", avg);
|
|
}
|
|
}
|
|
|
|
|
|
if (missed) {
|
|
if (missed) {
|
|
if (time)
|
|
if (time)
|
|
missed /= (long)time;
|
|
missed /= (long)time;
|
|
|
|
|
|
- pr_info("Total iterations per millisec: %ld\n", hit + missed);
|
|
|
|
|
|
+ trace_printk("Total iterations per millisec: %ld\n",
|
|
|
|
+ hit + missed);
|
|
|
|
|
|
/* it is possible that hit + missed will overflow and be zero */
|
|
/* it is possible that hit + missed will overflow and be zero */
|
|
if (!(hit + missed)) {
|
|
if (!(hit + missed)) {
|
|
- pr_info("hit + missed overflowed and totalled zero!\n");
|
|
|
|
|
|
+ trace_printk("hit + missed overflowed and totalled zero!\n");
|
|
hit--; /* make it non zero */
|
|
hit--; /* make it non zero */
|
|
}
|
|
}
|
|
|
|
|
|
/* Caculate the average time in nanosecs */
|
|
/* Caculate the average time in nanosecs */
|
|
avg = NSEC_PER_MSEC / (hit + missed);
|
|
avg = NSEC_PER_MSEC / (hit + missed);
|
|
- pr_info("%ld ns per entry\n", avg);
|
|
|
|
|
|
+ trace_printk("%ld ns per entry\n", avg);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -355,7 +356,7 @@ static int ring_buffer_producer_thread(void *arg)
|
|
|
|
|
|
ring_buffer_producer();
|
|
ring_buffer_producer();
|
|
|
|
|
|
- pr_info("Sleeping for 10 secs\n");
|
|
|
|
|
|
+ trace_printk("Sleeping for 10 secs\n");
|
|
set_current_state(TASK_INTERRUPTIBLE);
|
|
set_current_state(TASK_INTERRUPTIBLE);
|
|
schedule_timeout(HZ * SLEEP_TIME);
|
|
schedule_timeout(HZ * SLEEP_TIME);
|
|
__set_current_state(TASK_RUNNING);
|
|
__set_current_state(TASK_RUNNING);
|