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()
922 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_find_class() local
925 clc = qdisc_class_find(&q->clhash, classid); in hfsc_find_class()
972 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_change_class() local
1035 if (cl->qdisc->q.qlen != 0) { in hfsc_change_class()
1049 parent = &q->root; in hfsc_change_class()
1087 cl->sched = q; in hfsc_change_class()
1098 qdisc_class_hash_insert(&q->clhash, &cl->cl_common); in hfsc_change_class()
1106 qdisc_class_hash_grow(sch, &q->clhash); in hfsc_change_class()
1115 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_destroy_class() local
1120 if (cl != &q->root) in hfsc_destroy_class()
1127 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_delete_class() local
1130 if (cl->level > 0 || cl->filter_cnt > 0 || cl == &q->root) in hfsc_delete_class()
1139 qdisc_class_hash_remove(&q->clhash, &cl->cl_common); in hfsc_delete_class()
1154 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_classify() local
1166 head = &q->root; in hfsc_classify()
1167 tcf = rcu_dereference_bh(q->root.filter_list); in hfsc_classify()
1196 cl = hfsc_find_class(TC_H_MAKE(TC_H_MAJ(sch->handle), q->defcls), sch); in hfsc_classify()
1242 if (cl->qdisc->q.qlen == 0) { in hfsc_qlen_notify()
1294 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_tcf_chain() local
1298 cl = &q->root; in hfsc_tcf_chain()
1381 gnet_stats_copy_queue(d, NULL, &cl->qstats, cl->qdisc->q.qlen) < 0) in hfsc_dump_class_stats()
1392 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_walk() local
1399 for (i = 0; i < q->clhash.hashsize; i++) { in hfsc_walk()
1400 hlist_for_each_entry(cl, &q->clhash.hash[i], in hfsc_walk()
1418 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_schedule_watchdog() local
1422 cl = eltree_get_minel(q); in hfsc_schedule_watchdog()
1425 if (q->root.cl_cfmin != 0) { in hfsc_schedule_watchdog()
1426 if (next_time == 0 || next_time > q->root.cl_cfmin) in hfsc_schedule_watchdog()
1427 next_time = q->root.cl_cfmin; in hfsc_schedule_watchdog()
1430 qdisc_watchdog_schedule(&q->watchdog, next_time); in hfsc_schedule_watchdog()
1436 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_init_qdisc() local
1444 q->defcls = qopt->defcls; in hfsc_init_qdisc()
1445 err = qdisc_class_hash_init(&q->clhash); in hfsc_init_qdisc()
1448 q->eligible = RB_ROOT; in hfsc_init_qdisc()
1449 INIT_LIST_HEAD(&q->droplist); in hfsc_init_qdisc()
1451 q->root.cl_common.classid = sch->handle; in hfsc_init_qdisc()
1452 q->root.refcnt = 1; in hfsc_init_qdisc()
1453 q->root.sched = q; in hfsc_init_qdisc()
1454 q->root.qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in hfsc_init_qdisc()
1456 if (q->root.qdisc == NULL) in hfsc_init_qdisc()
1457 q->root.qdisc = &noop_qdisc; in hfsc_init_qdisc()
1458 INIT_LIST_HEAD(&q->root.children); in hfsc_init_qdisc()
1459 q->root.vt_tree = RB_ROOT; in hfsc_init_qdisc()
1460 q->root.cf_tree = RB_ROOT; in hfsc_init_qdisc()
1462 qdisc_class_hash_insert(&q->clhash, &q->root.cl_common); in hfsc_init_qdisc()
1463 qdisc_class_hash_grow(sch, &q->clhash); in hfsc_init_qdisc()
1465 qdisc_watchdog_init(&q->watchdog, sch); in hfsc_init_qdisc()
1473 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_change_qdisc() local
1481 q->defcls = qopt->defcls; in hfsc_change_qdisc()
1524 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_reset_qdisc() local
1528 for (i = 0; i < q->clhash.hashsize; i++) { in hfsc_reset_qdisc()
1529 hlist_for_each_entry(cl, &q->clhash.hash[i], cl_common.hnode) in hfsc_reset_qdisc()
1532 q->eligible = RB_ROOT; in hfsc_reset_qdisc()
1533 INIT_LIST_HEAD(&q->droplist); in hfsc_reset_qdisc()
1534 qdisc_watchdog_cancel(&q->watchdog); in hfsc_reset_qdisc()
1535 sch->q.qlen = 0; in hfsc_reset_qdisc()
1541 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_destroy_qdisc() local
1546 for (i = 0; i < q->clhash.hashsize; i++) { in hfsc_destroy_qdisc()
1547 hlist_for_each_entry(cl, &q->clhash.hash[i], cl_common.hnode) in hfsc_destroy_qdisc()
1550 for (i = 0; i < q->clhash.hashsize; i++) { in hfsc_destroy_qdisc()
1551 hlist_for_each_entry_safe(cl, next, &q->clhash.hash[i], in hfsc_destroy_qdisc()
1555 qdisc_class_hash_destroy(&q->clhash); in hfsc_destroy_qdisc()
1556 qdisc_watchdog_cancel(&q->watchdog); in hfsc_destroy_qdisc()
1562 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_dump_qdisc() local
1569 for (i = 0; i < q->clhash.hashsize; i++) { in hfsc_dump_qdisc()
1570 hlist_for_each_entry(cl, &q->clhash.hash[i], cl_common.hnode) in hfsc_dump_qdisc()
1574 qopt.defcls = q->defcls; in hfsc_dump_qdisc()
1607 if (cl->qdisc->q.qlen == 1) in hfsc_enqueue()
1610 sch->q.qlen++; in hfsc_enqueue()
1618 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_dequeue() local
1625 if (sch->q.qlen == 0) in hfsc_dequeue()
1635 cl = eltree_get_mindl(q, cur_time); in hfsc_dequeue()
1643 cl = vttree_get_minvt(&q->root, cur_time); in hfsc_dequeue()
1662 if (cl->qdisc->q.qlen != 0) { in hfsc_dequeue()
1678 sch->q.qlen--; in hfsc_dequeue()
1686 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_drop() local
1690 list_for_each_entry(cl, &q->droplist, dlist) { in hfsc_drop()
1693 if (cl->qdisc->q.qlen == 0) { in hfsc_drop()
1697 list_move_tail(&cl->dlist, &q->droplist); in hfsc_drop()
1701 sch->q.qlen--; in hfsc_drop()