Lines Matching refs:q
42 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_classify() local
45 struct tcf_proto *fl = rcu_dereference_bh(q->filter_list); in multiq_classify()
61 if (band >= q->bands) in multiq_classify()
62 return q->queues[0]; in multiq_classify()
64 return q->queues[band]; in multiq_classify()
86 sch->q.qlen++; in multiq_enqueue()
96 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dequeue() local
101 for (band = 0; band < q->bands; band++) { in multiq_dequeue()
103 q->curband++; in multiq_dequeue()
104 if (q->curband >= q->bands) in multiq_dequeue()
105 q->curband = 0; in multiq_dequeue()
111 netdev_get_tx_queue(qdisc_dev(sch), q->curband))) { in multiq_dequeue()
112 qdisc = q->queues[q->curband]; in multiq_dequeue()
116 sch->q.qlen--; in multiq_dequeue()
127 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_peek() local
128 unsigned int curband = q->curband; in multiq_peek()
133 for (band = 0; band < q->bands; band++) { in multiq_peek()
136 if (curband >= q->bands) in multiq_peek()
144 qdisc = q->queues[curband]; in multiq_peek()
156 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_drop() local
161 for (band = q->bands - 1; band >= 0; band--) { in multiq_drop()
162 qdisc = q->queues[band]; in multiq_drop()
166 sch->q.qlen--; in multiq_drop()
179 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_reset() local
181 for (band = 0; band < q->bands; band++) in multiq_reset()
182 qdisc_reset(q->queues[band]); in multiq_reset()
183 sch->q.qlen = 0; in multiq_reset()
184 q->curband = 0; in multiq_reset()
191 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_destroy() local
193 tcf_destroy_chain(&q->filter_list); in multiq_destroy()
194 for (band = 0; band < q->bands; band++) in multiq_destroy()
195 qdisc_destroy(q->queues[band]); in multiq_destroy()
197 kfree(q->queues); in multiq_destroy()
202 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_tune() local
216 q->bands = qopt->bands; in multiq_tune()
217 for (i = q->bands; i < q->max_bands; i++) { in multiq_tune()
218 if (q->queues[i] != &noop_qdisc) { in multiq_tune()
219 struct Qdisc *child = q->queues[i]; in multiq_tune()
220 q->queues[i] = &noop_qdisc; in multiq_tune()
221 qdisc_tree_reduce_backlog(child, child->q.qlen, in multiq_tune()
229 for (i = 0; i < q->bands; i++) { in multiq_tune()
230 if (q->queues[i] == &noop_qdisc) { in multiq_tune()
238 old = q->queues[i]; in multiq_tune()
239 q->queues[i] = child; in multiq_tune()
243 old->q.qlen, in multiq_tune()
256 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_init() local
259 q->queues = NULL; in multiq_init()
264 q->max_bands = qdisc_dev(sch)->num_tx_queues; in multiq_init()
266 q->queues = kcalloc(q->max_bands, sizeof(struct Qdisc *), GFP_KERNEL); in multiq_init()
267 if (!q->queues) in multiq_init()
269 for (i = 0; i < q->max_bands; i++) in multiq_init()
270 q->queues[i] = &noop_qdisc; in multiq_init()
275 kfree(q->queues); in multiq_init()
282 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dump() local
286 opt.bands = q->bands; in multiq_dump()
287 opt.max_bands = q->max_bands; in multiq_dump()
302 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_graft() local
308 *old = qdisc_replace(sch, new, &q->queues[band]); in multiq_graft()
315 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_leaf() local
318 return q->queues[band]; in multiq_leaf()
323 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_get() local
326 if (band - 1 >= q->bands) in multiq_get()
338 static void multiq_put(struct Qdisc *q, unsigned long cl) in multiq_put() argument
345 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dump_class() local
348 tcm->tcm_info = q->queues[cl - 1]->handle; in multiq_dump_class()
355 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dump_class_stats() local
358 cl_q = q->queues[cl - 1]; in multiq_dump_class_stats()
360 gnet_stats_copy_queue(d, NULL, &cl_q->qstats, cl_q->q.qlen) < 0) in multiq_dump_class_stats()
368 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_walk() local
374 for (band = 0; band < q->bands; band++) { in multiq_walk()
390 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_find_tcf() local
394 return &q->filter_list; in multiq_find_tcf()