summaryrefslogtreecommitdiff
path: root/lib/workqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/workqueue.c')
-rw-r--r--lib/workqueue.c37
1 files changed, 12 insertions, 25 deletions
diff --git a/lib/workqueue.c b/lib/workqueue.c
index 0c61f5c4..1fa16ded 100644
--- a/lib/workqueue.c
+++ b/lib/workqueue.c
@@ -82,9 +82,7 @@ work_queue_new (struct thread_master *m, const char *queue_name)
new->cycles.granularity = WORK_QUEUE_MIN_GRANULARITY;
/* Default values, can be overriden by caller */
- new->spec.delay = WORK_QUEUE_DEFAULT_DELAY;
new->spec.hold = WORK_QUEUE_DEFAULT_HOLD;
- new->spec.flood = WORK_QUEUE_DEFAULT_FLOOD;
return new;
}
@@ -133,7 +131,7 @@ work_queue_add (struct work_queue *wq, void *data)
item->data = data;
listnode_add (wq->items, item);
- work_queue_schedule (wq, wq->spec.delay);
+ work_queue_schedule (wq, wq->spec.hold);
return;
}
@@ -172,14 +170,14 @@ DEFUN(show_work_queues,
struct work_queue *wq;
vty_out (vty,
- "%c%c %8s %11s %8s %21s%s",
- ' ', ' ', "List","(ms) ","Q. Runs","Cycle Counts ",
+ "%c %8s %5s %8s %21s%s",
+ ' ', "List","(ms) ","Q. Runs","Cycle Counts ",
VTY_NEWLINE);
vty_out (vty,
- "%c%c %8s %5s %5s %8s %7s %6s %6s %s%s",
- 'P', 'F',
+ "%c %8s %5s %8s %7s %6s %6s %s%s",
+ 'P',
"Items",
- "Delay","Hold",
+ "Hold",
"Total",
"Best","Gran.","Avg.",
"Name",
@@ -187,11 +185,10 @@ DEFUN(show_work_queues,
for (ALL_LIST_ELEMENTS_RO ((&work_queues), node, wq))
{
- vty_out (vty,"%c%c %8d %5d %5d %8ld %7d %6d %6u %s%s",
+ vty_out (vty,"%c %8d %5d %8ld %7d %6d %6u %s%s",
(wq->flags == WQ_PLUGGED ? 'P' : ' '),
- (wq->runs_since_clear >= wq->spec.flood ? 'F' : ' '),
listcount (wq->items),
- wq->spec.delay, wq->spec.hold,
+ wq->spec.hold,
wq->runs,
wq->cycles.best, wq->cycles.granularity,
(wq->runs) ?
@@ -226,7 +223,7 @@ work_queue_unplug (struct work_queue *wq)
wq->flags = WQ_UNPLUGGED;
/* if thread isnt already waiting, add one */
- work_queue_schedule (wq, wq->spec.delay);
+ work_queue_schedule (wq, wq->spec.hold);
}
/* timer thread to process a work queue
@@ -370,19 +367,9 @@ stats:
/* Is the queue done yet? If it is, call the completion callback. */
if (listcount (wq->items) > 0)
- {
- if (++(wq->runs_since_clear) < wq->spec.flood)
- work_queue_schedule (wq, wq->spec.hold);
- else
- work_queue_schedule (wq, 0); /* queue flooded, go into overdrive */
- }
- else
- {
- wq->runs_since_clear = 0;
-
- if (wq->spec.completion_func)
- wq->spec.completion_func (wq);
- }
+ work_queue_schedule (wq, 0);
+ else if (wq->spec.completion_func)
+ wq->spec.completion_func (wq);
return 0;
}