Lines Matching refs:q

227 eltree_get_mindl(struct hfsc_sched *q, u64 cur_time)  in eltree_get_mindl()  argument
232 for (n = rb_first(&q->eligible); n != NULL; n = rb_next(n)) { in eltree_get_mindl()
244 eltree_get_minel(struct hfsc_sched *q) in eltree_get_minel() argument
248 n = rb_first(&q->eligible); in eltree_get_minel()
770 if (cl->qdisc->q.qlen == 0 && cl->cl_flags & HFSC_FSC) in update_vf()
897 unsigned int len = cl->qdisc->q.qlen; in hfsc_purge_queue()
923 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_find_class() local
926 clc = qdisc_class_find(&q->clhash, classid); in hfsc_find_class()
973 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_change_class() local
1036 if (cl->qdisc->q.qlen != 0) { in hfsc_change_class()
1050 parent = &q->root; in hfsc_change_class()
1088 cl->sched = q; in hfsc_change_class()
1099 qdisc_class_hash_insert(&q->clhash, &cl->cl_common); in hfsc_change_class()
1107 qdisc_class_hash_grow(sch, &q->clhash); in hfsc_change_class()
1116 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_destroy_class() local
1121 if (cl != &q->root) in hfsc_destroy_class()
1128 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_delete_class() local
1131 if (cl->level > 0 || cl->filter_cnt > 0 || cl == &q->root) in hfsc_delete_class()
1140 qdisc_class_hash_remove(&q->clhash, &cl->cl_common); in hfsc_delete_class()
1155 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_classify() local
1167 head = &q->root; in hfsc_classify()
1168 tcf = rcu_dereference_bh(q->root.filter_list); in hfsc_classify()
1197 cl = hfsc_find_class(TC_H_MAKE(TC_H_MAJ(sch->handle), q->defcls), sch); in hfsc_classify()
1239 if (cl->qdisc->q.qlen == 0) { in hfsc_qlen_notify()
1291 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_tcf_chain() local
1295 cl = &q->root; in hfsc_tcf_chain()
1378 gnet_stats_copy_queue(d, NULL, &cl->qstats, cl->qdisc->q.qlen) < 0) in hfsc_dump_class_stats()
1389 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_walk() local
1396 for (i = 0; i < q->clhash.hashsize; i++) { in hfsc_walk()
1397 hlist_for_each_entry(cl, &q->clhash.hash[i], in hfsc_walk()
1415 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_schedule_watchdog() local
1419 cl = eltree_get_minel(q); in hfsc_schedule_watchdog()
1422 if (q->root.cl_cfmin != 0) { in hfsc_schedule_watchdog()
1423 if (next_time == 0 || next_time > q->root.cl_cfmin) in hfsc_schedule_watchdog()
1424 next_time = q->root.cl_cfmin; in hfsc_schedule_watchdog()
1427 qdisc_watchdog_schedule(&q->watchdog, next_time); in hfsc_schedule_watchdog()
1433 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_init_qdisc() local
1441 q->defcls = qopt->defcls; in hfsc_init_qdisc()
1442 err = qdisc_class_hash_init(&q->clhash); in hfsc_init_qdisc()
1445 q->eligible = RB_ROOT; in hfsc_init_qdisc()
1446 INIT_LIST_HEAD(&q->droplist); in hfsc_init_qdisc()
1448 q->root.cl_common.classid = sch->handle; in hfsc_init_qdisc()
1449 q->root.refcnt = 1; in hfsc_init_qdisc()
1450 q->root.sched = q; in hfsc_init_qdisc()
1451 q->root.qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in hfsc_init_qdisc()
1453 if (q->root.qdisc == NULL) in hfsc_init_qdisc()
1454 q->root.qdisc = &noop_qdisc; in hfsc_init_qdisc()
1455 INIT_LIST_HEAD(&q->root.children); in hfsc_init_qdisc()
1456 q->root.vt_tree = RB_ROOT; in hfsc_init_qdisc()
1457 q->root.cf_tree = RB_ROOT; in hfsc_init_qdisc()
1459 qdisc_class_hash_insert(&q->clhash, &q->root.cl_common); in hfsc_init_qdisc()
1460 qdisc_class_hash_grow(sch, &q->clhash); in hfsc_init_qdisc()
1462 qdisc_watchdog_init(&q->watchdog, sch); in hfsc_init_qdisc()
1470 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_change_qdisc() local
1478 q->defcls = qopt->defcls; in hfsc_change_qdisc()
1521 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_reset_qdisc() local
1525 for (i = 0; i < q->clhash.hashsize; i++) { in hfsc_reset_qdisc()
1526 hlist_for_each_entry(cl, &q->clhash.hash[i], cl_common.hnode) in hfsc_reset_qdisc()
1529 q->eligible = RB_ROOT; in hfsc_reset_qdisc()
1530 INIT_LIST_HEAD(&q->droplist); in hfsc_reset_qdisc()
1531 qdisc_watchdog_cancel(&q->watchdog); in hfsc_reset_qdisc()
1532 sch->q.qlen = 0; in hfsc_reset_qdisc()
1538 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_destroy_qdisc() local
1543 for (i = 0; i < q->clhash.hashsize; i++) { in hfsc_destroy_qdisc()
1544 hlist_for_each_entry(cl, &q->clhash.hash[i], cl_common.hnode) in hfsc_destroy_qdisc()
1547 for (i = 0; i < q->clhash.hashsize; i++) { in hfsc_destroy_qdisc()
1548 hlist_for_each_entry_safe(cl, next, &q->clhash.hash[i], in hfsc_destroy_qdisc()
1552 qdisc_class_hash_destroy(&q->clhash); in hfsc_destroy_qdisc()
1553 qdisc_watchdog_cancel(&q->watchdog); in hfsc_destroy_qdisc()
1559 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_dump_qdisc() local
1566 for (i = 0; i < q->clhash.hashsize; i++) { in hfsc_dump_qdisc()
1567 hlist_for_each_entry(cl, &q->clhash.hash[i], cl_common.hnode) in hfsc_dump_qdisc()
1571 qopt.defcls = q->defcls; in hfsc_dump_qdisc()
1604 if (cl->qdisc->q.qlen == 1) in hfsc_enqueue()
1607 sch->q.qlen++; in hfsc_enqueue()
1615 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_dequeue() local
1622 if (sch->q.qlen == 0) in hfsc_dequeue()
1632 cl = eltree_get_mindl(q, cur_time); in hfsc_dequeue()
1640 cl = vttree_get_minvt(&q->root, cur_time); in hfsc_dequeue()
1659 if (cl->qdisc->q.qlen != 0) { in hfsc_dequeue()
1675 sch->q.qlen--; in hfsc_dequeue()
1683 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_drop() local
1687 list_for_each_entry(cl, &q->droplist, dlist) { in hfsc_drop()
1690 if (cl->qdisc->q.qlen == 0) { in hfsc_drop()
1694 list_move_tail(&cl->dlist, &q->droplist); in hfsc_drop()
1698 sch->q.qlen--; in hfsc_drop()