Lines Matching defs:acct

92 	struct io_wqe_acct acct[2];
141 struct io_wqe_acct *acct,
159 return &wqe->acct[bound ? IO_WQ_ACCT_BOUND : IO_WQ_ACCT_UNBOUND];
191 struct io_wqe_acct *acct = io_wqe_get_acct(worker);
195 atomic_dec(&acct->nr_running);
197 acct->nr_workers--;
248 static inline bool io_acct_run_queue(struct io_wqe_acct *acct)
250 if (!wq_list_empty(&acct->work_list) &&
251 !test_bit(IO_ACCT_STALLED_BIT, &acct->flags))
261 struct io_wqe_acct *acct)
275 if (io_wqe_get_acct(worker) != acct) {
293 static bool io_wqe_create_worker(struct io_wqe *wqe, struct io_wqe_acct *acct)
299 if (unlikely(!acct->max_workers))
303 if (acct->nr_workers >= acct->max_workers) {
307 acct->nr_workers++;
309 atomic_inc(&acct->nr_running);
311 return create_io_worker(wqe->wq, wqe, acct->index);
316 struct io_wqe_acct *acct = io_wqe_get_acct(worker);
318 atomic_inc(&acct->nr_running);
326 struct io_wqe_acct *acct;
332 acct = &wqe->acct[worker->create_index];
334 if (acct->nr_workers < acct->max_workers) {
335 acct->nr_workers++;
342 atomic_dec(&acct->nr_running);
350 struct io_wqe_acct *acct,
373 worker->create_index = acct->index;
391 atomic_dec(&acct->nr_running);
399 struct io_wqe_acct *acct = io_wqe_get_acct(worker);
405 if (atomic_dec_and_test(&acct->nr_running) && io_acct_run_queue(acct)) {
406 atomic_inc(&acct->nr_running);
409 io_queue_worker_create(worker, acct, create_worker_cb);
467 static struct io_wq_work *io_get_next_work(struct io_wqe_acct *acct,
476 wq_list_for_each(node, prev, &acct->work_list) {
483 wq_list_del(&acct->work_list, node, prev);
494 wq_list_cut(&acct->work_list, &tail->list, prev);
510 set_bit(IO_ACCT_STALLED_BIT, &acct->flags);
515 clear_bit(IO_ACCT_STALLED_BIT, &acct->flags);
552 struct io_wqe_acct *acct = io_wqe_get_acct(worker);
567 work = io_get_next_work(acct, worker);
603 clear_bit(IO_ACCT_STALLED_BIT, &acct->flags);
622 struct io_wqe_acct *acct = io_wqe_get_acct(worker);
639 if (io_acct_run_queue(acct)) {
644 if (last_timeout && acct->nr_workers > 1) {
645 acct->nr_workers--;
770 struct io_wqe_acct *acct = io_wqe_get_acct(worker);
772 atomic_dec(&acct->nr_running);
774 acct->nr_workers--;
775 if (!acct->nr_workers) {
781 while (io_acct_cancel_pending_work(wqe, acct, &match))
798 struct io_wqe_acct *acct = io_wqe_get_acct(worker);
800 if (!io_queue_worker_create(worker, acct, create_worker_cont))
806 struct io_wqe_acct *acct = &wqe->acct[index];
815 atomic_dec(&acct->nr_running);
817 acct->nr_workers--;
890 struct io_wqe_acct *acct = io_work_get_acct(wqe, work);
896 wq_list_add_tail(&work->list, &acct->work_list);
906 wq_list_add_after(&work->list, &tail->list, &acct->work_list);
916 struct io_wqe_acct *acct = io_work_get_acct(wqe, work);
932 clear_bit(IO_ACCT_STALLED_BIT, &acct->flags);
935 do_create = !io_wqe_activate_free_worker(wqe, acct);
941 !atomic_read(&acct->nr_running))) {
944 did_create = io_wqe_create_worker(wqe, acct);
950 if (!acct->nr_workers) {
957 if (io_acct_cancel_pending_work(wqe, acct, &match))
1006 struct io_wqe_acct *acct = io_work_get_acct(wqe, work);
1018 wq_list_del(&acct->work_list, &work->list, prev);
1022 struct io_wqe_acct *acct,
1029 wq_list_for_each(node, prev, &acct->work_list) {
1051 struct io_wqe_acct *acct = io_get_acct(wqe, i == 0);
1053 if (io_acct_cancel_pending_work(wqe, acct, match)) {
1124 struct io_wqe_acct *acct = &wqe->acct[i];
1126 if (test_and_clear_bit(IO_ACCT_STALLED_BIT, &acct->flags))
1127 io_wqe_activate_free_worker(wqe, acct);
1170 wqe->acct[IO_WQ_ACCT_BOUND].max_workers = bounded;
1171 wqe->acct[IO_WQ_ACCT_UNBOUND].max_workers =
1176 struct io_wqe_acct *acct = &wqe->acct[i];
1178 acct->index = i;
1179 atomic_set(&acct->nr_running, 0);
1180 INIT_WQ_LIST(&acct->work_list);
1382 struct io_wqe_acct *acct;
1386 acct = &wqe->acct[i];
1388 prev[i] = max_t(int, acct->max_workers, prev[i]);
1390 acct->max_workers = new_count[i];