Home
last modified time | relevance | path

Searched refs:sch (Results 1 – 25 of 78) sorted by relevance

1234

/linux/drivers/gpio/
H A Dgpio-sch.c50 static unsigned int sch_gpio_offset(struct sch_gpio *sch, unsigned int gpio, in sch_gpio_offset() argument
55 if (gpio >= sch->resume_base) { in sch_gpio_offset()
56 gpio -= sch->resume_base; in sch_gpio_offset()
63 static unsigned int sch_gpio_bit(struct sch_gpio *sch, unsigned int gpio) in sch_gpio_bit() argument
65 if (gpio >= sch->resume_base) in sch_gpio_bit()
66 gpio -= sch->resume_base; in sch_gpio_bit()
70 static int sch_gpio_reg_get(struct sch_gpio *sch, unsigned int gpio, unsigned int reg) in sch_gpio_reg_get() argument
75 offset = sch_gpio_offset(sch, gpio, reg); in sch_gpio_reg_get()
76 bit = sch_gpio_bit(sch, gpio); in sch_gpio_reg_get()
78 reg_val = !!(ioread8(sch->regs + offset) & BIT(bit)); in sch_gpio_reg_get()
[all …]
/linux/drivers/s390/cio/
H A Deadm_sch.c61 static int eadm_subchannel_start(struct subchannel *sch, struct aob *aob) in eadm_subchannel_start() argument
63 union orb *orb = &get_eadm_private(sch)->orb; in eadm_subchannel_start()
68 orb->eadm.intparm = (u32)virt_to_phys(sch); in eadm_subchannel_start()
72 EADM_LOG_HEX(6, &sch->schid, sizeof(sch->schid)); in eadm_subchannel_start()
74 cc = ssch(sch->schid, orb); in eadm_subchannel_start()
77 sch->schib.scsw.eadm.actl |= SCSW_ACTL_START_PEND; in eadm_subchannel_start()
88 static int eadm_subchannel_clear(struct subchannel *sch) in eadm_subchannel_clear() argument
92 cc = csch(sch->schid); in eadm_subchannel_clear()
96 sch->schib.scsw.eadm.actl |= SCSW_ACTL_CLEAR_PEND; in eadm_subchannel_clear()
103 struct subchannel *sch = private->sch; in eadm_subchannel_timeout() local
[all …]
H A Dvfio_ccw_fsm.c21 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_io_helper() local
28 spin_lock_irqsave(&sch->lock, flags); in fsm_io_helper()
30 orb = cp_get_orb(&private->cp, sch); in fsm_io_helper()
37 VFIO_CCW_TRACE_EVENT(5, dev_name(&sch->dev)); in fsm_io_helper()
40 ccode = ssch(sch->schid, orb); in fsm_io_helper()
49 sch->schib.scsw.cmd.actl |= SCSW_ACTL_START_PEND; in fsm_io_helper()
61 sch->lpm &= ~lpm; in fsm_io_helper()
63 sch->lpm = 0; in fsm_io_helper()
65 if (cio_update_schib(sch)) in fsm_io_helper()
68 ret = sch->lpm ? -EACCES : -ENODEV; in fsm_io_helper()
[all …]
H A Ddevice_fsm.c42 struct subchannel *sch; in ccw_timeout_log() local
47 sch = to_subchannel(cdev->dev.parent); in ccw_timeout_log()
48 private = to_io_private(sch); in ccw_timeout_log()
50 cc = stsch(sch->schid, &schib); in ccw_timeout_log()
60 dev_name(&sch->dev)); in ccw_timeout_log()
62 "vpm: %02x\n", sch->lpm, sch->opm, sch->vpm); in ccw_timeout_log()
127 struct subchannel *sch; in ccw_device_cancel_halt_clear() local
130 sch = to_subchannel(cdev->dev.parent); in ccw_device_cancel_halt_clear()
131 ret = cio_cancel_halt_clear(sch, &cdev->private->iretry); in ccw_device_cancel_halt_clear()
168 __recover_lost_chpids(struct subchannel *sch, int old_lpm) in __recover_lost_chpids() argument
[all …]
/linux/net/sched/
H A Dsch_fifo.c19 static int bfifo_enqueue(struct sk_buff *skb, struct Qdisc *sch, in bfifo_enqueue() argument
22 if (likely(sch->qstats.backlog + qdisc_pkt_len(skb) <= in bfifo_enqueue()
23 READ_ONCE(sch->limit))) in bfifo_enqueue()
24 return qdisc_enqueue_tail(skb, sch); in bfifo_enqueue()
26 return qdisc_drop(skb, sch, to_free); in bfifo_enqueue()
29 static int pfifo_enqueue(struct sk_buff *skb, struct Qdisc *sch, in pfifo_enqueue() argument
32 if (likely(sch->q.qlen < READ_ONCE(sch->limit))) in pfifo_enqueue()
33 return qdisc_enqueue_tail(skb, sch); in pfifo_enqueue()
35 return qdisc_drop(skb, sch, to_free); in pfifo_enqueue()
38 static int pfifo_tail_enqueue(struct sk_buff *skb, struct Qdisc *sch, in pfifo_tail_enqueue() argument
[all …]
H A Dsch_mq.c24 static int mq_offload(struct Qdisc *sch, enum tc_mq_command cmd) in mq_offload() argument
26 struct net_device *dev = qdisc_dev(sch); in mq_offload()
29 .handle = sch->handle, in mq_offload()
38 static int mq_offload_stats(struct Qdisc *sch) in mq_offload_stats() argument
42 .handle = sch->handle, in mq_offload_stats()
44 .bstats = &sch->bstats, in mq_offload_stats()
45 .qstats = &sch->qstats, in mq_offload_stats()
49 return qdisc_offload_dump_helper(sch, TC_SETUP_QDISC_MQ, &opt); in mq_offload_stats()
52 static void mq_destroy(struct Qdisc *sch) in mq_destroy() argument
54 struct net_device *dev = qdisc_dev(sch); in mq_destroy()
[all …]
H A Dsch_prio.c31 prio_classify(struct sk_buff *skb, struct Qdisc *sch, int *qerr) in prio_classify() argument
33 struct prio_sched_data *q = qdisc_priv(sch); in prio_classify()
40 if (TC_H_MAJ(skb->priority) != sch->handle) { in prio_classify()
69 prio_enqueue(struct sk_buff *skb, struct Qdisc *sch, struct sk_buff **to_free) in prio_enqueue() argument
75 qdisc = prio_classify(skb, sch, &ret); in prio_enqueue()
80 qdisc_qstats_drop(sch); in prio_enqueue()
88 sch->qstats.backlog += len; in prio_enqueue()
89 sch->q.qlen++; in prio_enqueue()
93 qdisc_qstats_drop(sch); in prio_enqueue()
97 static struct sk_buff *prio_peek(struct Qdisc *sch) in prio_peek() argument
[all …]
H A Dsch_ingress.c24 static struct Qdisc *ingress_leaf(struct Qdisc *sch, unsigned long arg) in ingress_leaf() argument
29 static unsigned long ingress_find(struct Qdisc *sch, u32 classid) in ingress_find() argument
34 static unsigned long ingress_bind_filter(struct Qdisc *sch, in ingress_bind_filter() argument
37 return ingress_find(sch, classid); in ingress_bind_filter()
40 static void ingress_unbind_filter(struct Qdisc *sch, unsigned long cl) in ingress_unbind_filter() argument
44 static void ingress_walk(struct Qdisc *sch, struct qdisc_walker *walker) in ingress_walk() argument
48 static struct tcf_block *ingress_tcf_block(struct Qdisc *sch, unsigned long cl, in ingress_tcf_block() argument
51 struct ingress_sched_data *q = qdisc_priv(sch); in ingress_tcf_block()
63 static void ingress_ingress_block_set(struct Qdisc *sch, u32 block_index) in ingress_ingress_block_set() argument
65 struct ingress_sched_data *q = qdisc_priv(sch); in ingress_ingress_block_set()
[all …]
H A Dsch_red.c44 struct Qdisc *sch; member
70 static int red_enqueue(struct sk_buff *skb, struct Qdisc *sch, in red_enqueue() argument
74 struct red_sched_data *q = qdisc_priv(sch); in red_enqueue()
91 qdisc_qstats_overlimit(sch); in red_enqueue()
99 skb = tcf_qevent_handle(&q->qe_mark, sch, skb, to_free, &ret); in red_enqueue()
112 qdisc_qstats_overlimit(sch); in red_enqueue()
120 skb = tcf_qevent_handle(&q->qe_mark, sch, skb, to_free, &ret); in red_enqueue()
135 sch->qstats.backlog += len; in red_enqueue()
136 sch->q.qlen++; in red_enqueue()
139 qdisc_qstats_drop(sch); in red_enqueue()
[all …]
H A Dsch_ets.c82 static int ets_quantum_parse(struct Qdisc *sch, const struct nlattr *attr, in ets_quantum_parse() argument
95 ets_class_from_arg(struct Qdisc *sch, unsigned long arg) in ets_class_from_arg() argument
97 struct ets_sched *q = qdisc_priv(sch); in ets_class_from_arg()
104 static u32 ets_class_id(struct Qdisc *sch, const struct ets_class *cl) in ets_class_id() argument
106 struct ets_sched *q = qdisc_priv(sch); in ets_class_id()
109 return TC_H_MAKE(sch->handle, band + 1); in ets_class_id()
112 static void ets_offload_change(struct Qdisc *sch) in ets_offload_change() argument
114 struct net_device *dev = qdisc_dev(sch); in ets_offload_change()
115 struct ets_sched *q = qdisc_priv(sch); in ets_offload_change()
129 qopt.handle = sch in ets_offload_change()
153 ets_offload_destroy(struct Qdisc * sch) ets_offload_destroy() argument
167 ets_offload_graft(struct Qdisc * sch,struct Qdisc * new,struct Qdisc * old,unsigned long arg,struct netlink_ext_ack * extack) ets_offload_graft() argument
184 ets_offload_dump(struct Qdisc * sch) ets_offload_dump() argument
204 ets_class_change(struct Qdisc * sch,u32 classid,u32 parentid,struct nlattr ** tca,unsigned long * arg,struct netlink_ext_ack * extack) ets_class_change() argument
254 ets_class_graft(struct Qdisc * sch,unsigned long arg,struct Qdisc * new,struct Qdisc ** old,struct netlink_ext_ack * extack) ets_class_graft() argument
274 ets_class_leaf(struct Qdisc * sch,unsigned long arg) ets_class_leaf() argument
281 ets_class_find(struct Qdisc * sch,u32 classid) ets_class_find() argument
291 ets_class_qlen_notify(struct Qdisc * sch,unsigned long arg) ets_class_qlen_notify() argument
304 ets_class_dump(struct Qdisc * sch,unsigned long arg,struct sk_buff * skb,struct tcmsg * tcm) ets_class_dump() argument
329 ets_class_dump_stats(struct Qdisc * sch,unsigned long arg,struct gnet_dump * d) ets_class_dump_stats() argument
342 ets_qdisc_walk(struct Qdisc * sch,struct qdisc_walker * arg) ets_qdisc_walk() argument
357 ets_qdisc_tcf_block(struct Qdisc * sch,unsigned long cl,struct netlink_ext_ack * extack) ets_qdisc_tcf_block() argument
370 ets_qdisc_bind_tcf(struct Qdisc * sch,unsigned long parent,u32 classid) ets_qdisc_bind_tcf() argument
376 ets_qdisc_unbind_tcf(struct Qdisc * sch,unsigned long arg) ets_qdisc_unbind_tcf() argument
380 ets_classify(struct sk_buff * skb,struct Qdisc * sch,int * qerr) ets_classify() argument
417 ets_qdisc_enqueue(struct sk_buff * skb,struct Qdisc * sch,struct sk_buff ** to_free) ets_qdisc_enqueue() argument
453 ets_qdisc_dequeue_skb(struct Qdisc * sch,struct sk_buff * skb) ets_qdisc_dequeue_skb() argument
461 ets_qdisc_dequeue(struct Qdisc * sch) ets_qdisc_dequeue() argument
544 ets_qdisc_quanta_parse(struct Qdisc * sch,struct nlattr * quanta_attr,unsigned int nbands,unsigned int nstrict,unsigned int * quanta,struct netlink_ext_ack * extack) ets_qdisc_quanta_parse() argument
581 ets_qdisc_change(struct Qdisc * sch,struct nlattr * opt,struct netlink_ext_ack * extack) ets_qdisc_change() argument
693 ets_qdisc_init(struct Qdisc * sch,struct nlattr * opt,struct netlink_ext_ack * extack) ets_qdisc_init() argument
713 ets_qdisc_reset(struct Qdisc * sch) ets_qdisc_reset() argument
726 ets_qdisc_destroy(struct Qdisc * sch) ets_qdisc_destroy() argument
737 ets_qdisc_dump(struct Qdisc * sch,struct sk_buff * skb) ets_qdisc_dump() argument
[all...]
H A Dsch_codel.c41 struct Qdisc *sch = ctx; in dequeue_func() local
42 struct sk_buff *skb = __qdisc_dequeue_head(&sch->q); in dequeue_func()
45 sch->qstats.backlog -= qdisc_pkt_len(skb); in dequeue_func()
53 struct Qdisc *sch = ctx; in drop_func() local
55 qdisc_dequeue_drop(sch, skb, SKB_DROP_REASON_QDISC_CONGESTED); in drop_func()
56 qdisc_qstats_drop(sch); in drop_func()
59 static struct sk_buff *codel_qdisc_dequeue(struct Qdisc *sch) in codel_qdisc_dequeue() argument
61 struct codel_sched_data *q = qdisc_priv(sch); in codel_qdisc_dequeue()
64 skb = codel_dequeue(sch, &sch in codel_qdisc_dequeue()
78 codel_qdisc_enqueue(struct sk_buff * skb,struct Qdisc * sch,struct sk_buff ** to_free) codel_qdisc_enqueue() argument
101 codel_change(struct Qdisc * sch,struct nlattr * opt,struct netlink_ext_ack * extack) codel_change() argument
161 codel_init(struct Qdisc * sch,struct nlattr * opt,struct netlink_ext_ack * extack) codel_init() argument
188 codel_dump(struct Qdisc * sch,struct sk_buff * skb) codel_dump() argument
219 codel_dump_stats(struct Qdisc * sch,struct gnet_dump * d) codel_dump_stats() argument
245 codel_reset(struct Qdisc * sch) codel_reset() argument
[all...]
H A Dsch_tbf.c142 static void tbf_offload_change(struct Qdisc *sch) in tbf_offload_change() argument
144 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_offload_change()
145 struct net_device *dev = qdisc_dev(sch); in tbf_offload_change()
152 qopt.handle = sch->handle; in tbf_offload_change()
153 qopt.parent = sch->parent; in tbf_offload_change()
156 qopt.replace_params.qstats = &sch->qstats; in tbf_offload_change()
161 static void tbf_offload_destroy(struct Qdisc *sch) in tbf_offload_destroy() argument
163 struct net_device *dev = qdisc_dev(sch); in tbf_offload_destroy()
170 qopt.handle = sch->handle; in tbf_offload_destroy()
171 qopt.parent = sch in tbf_offload_destroy()
175 tbf_offload_dump(struct Qdisc * sch) tbf_offload_dump() argument
188 tbf_offload_graft(struct Qdisc * sch,struct Qdisc * new,struct Qdisc * old,struct netlink_ext_ack * extack) tbf_offload_graft() argument
205 tbf_segment(struct sk_buff * skb,struct Qdisc * sch,struct sk_buff ** to_free) tbf_segment() argument
245 tbf_enqueue(struct sk_buff * skb,struct Qdisc * sch,struct sk_buff ** to_free) tbf_enqueue() argument
275 tbf_dequeue(struct Qdisc * sch) tbf_dequeue() argument
335 tbf_reset(struct Qdisc * sch) tbf_reset() argument
356 tbf_change(struct Qdisc * sch,struct nlattr * opt,struct netlink_ext_ack * extack) tbf_change() argument
484 tbf_init(struct Qdisc * sch,struct nlattr * opt,struct netlink_ext_ack * extack) tbf_init() argument
500 tbf_destroy(struct Qdisc * sch) tbf_destroy() argument
509 tbf_dump(struct Qdisc * sch,struct sk_buff * skb) tbf_dump() argument
551 tbf_dump_class(struct Qdisc * sch,unsigned long cl,struct sk_buff * skb,struct tcmsg * tcm) tbf_dump_class() argument
562 tbf_graft(struct Qdisc * sch,unsigned long arg,struct Qdisc * new,struct Qdisc ** old,struct netlink_ext_ack * extack) tbf_graft() argument
576 tbf_leaf(struct Qdisc * sch,unsigned long arg) tbf_leaf() argument
582 tbf_find(struct Qdisc * sch,u32 classid) tbf_find() argument
587 tbf_walk(struct Qdisc * sch,struct qdisc_walker * walker) tbf_walk() argument
[all...]
H A Dsch_multiq.c30 multiq_classify(struct sk_buff *skb, struct Qdisc *sch, int *qerr) in multiq_classify() argument
32 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_classify()
60 multiq_enqueue(struct sk_buff *skb, struct Qdisc *sch, in multiq_enqueue() argument
66 qdisc = multiq_classify(skb, sch, &ret); in multiq_enqueue()
71 qdisc_qstats_drop(sch); in multiq_enqueue()
79 sch->q.qlen++; in multiq_enqueue()
83 qdisc_qstats_drop(sch); in multiq_enqueue()
87 static struct sk_buff *multiq_dequeue(struct Qdisc *sch) in multiq_dequeue() argument
89 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dequeue()
104 netdev_get_tx_queue(qdisc_dev(sch), in multiq_dequeue()
118 multiq_peek(struct Qdisc * sch) multiq_peek() argument
148 multiq_reset(struct Qdisc * sch) multiq_reset() argument
159 multiq_destroy(struct Qdisc * sch) multiq_destroy() argument
171 multiq_tune(struct Qdisc * sch,struct nlattr * opt,struct netlink_ext_ack * extack) multiq_tune() argument
235 multiq_init(struct Qdisc * sch,struct nlattr * opt,struct netlink_ext_ack * extack) multiq_init() argument
261 multiq_dump(struct Qdisc * sch,struct sk_buff * skb) multiq_dump() argument
280 multiq_graft(struct Qdisc * sch,unsigned long arg,struct Qdisc * new,struct Qdisc ** old,struct netlink_ext_ack * extack) multiq_graft() argument
294 multiq_leaf(struct Qdisc * sch,unsigned long arg) multiq_leaf() argument
302 multiq_find(struct Qdisc * sch,u32 classid) multiq_find() argument
312 multiq_bind(struct Qdisc * sch,unsigned long parent,u32 classid) multiq_bind() argument
323 multiq_dump_class(struct Qdisc * sch,unsigned long cl,struct sk_buff * skb,struct tcmsg * tcm) multiq_dump_class() argument
333 multiq_dump_class_stats(struct Qdisc * sch,unsigned long cl,struct gnet_dump * d) multiq_dump_class_stats() argument
347 multiq_walk(struct Qdisc * sch,struct qdisc_walker * arg) multiq_walk() argument
361 multiq_tcf_block(struct Qdisc * sch,unsigned long cl,struct netlink_ext_ack * extack) multiq_tcf_block() argument
[all...]
H A Dsch_drr.c43 static struct drr_class *drr_find_class(struct Qdisc *sch, u32 classid) in drr_find_class() argument
45 struct drr_sched *q = qdisc_priv(sch); in drr_find_class()
58 static int drr_change_class(struct Qdisc *sch, u32 classid, u32 parentid, in drr_change_class() argument
62 struct drr_sched *q = qdisc_priv(sch); in drr_change_class()
86 quantum = psched_mtu(qdisc_dev(sch)); in drr_change_class()
100 sch_tree_lock(sch); in drr_change_class()
103 sch_tree_unlock(sch); in drr_change_class()
116 cl->qdisc = qdisc_create_dflt(sch->dev_queue, in drr_change_class()
135 sch_tree_lock(sch); in drr_change_class()
137 sch_tree_unlock(sch); in drr_change_class()
[all …]
H A Dsch_etf.c75 static bool is_packet_valid(struct Qdisc *sch, struct sk_buff *nskb) in is_packet_valid() argument
77 struct etf_sched_data *q = qdisc_priv(sch); in is_packet_valid()
108 static struct sk_buff *etf_peek_timesortedlist(struct Qdisc *sch) in etf_peek_timesortedlist() argument
110 struct etf_sched_data *q = qdisc_priv(sch); in etf_peek_timesortedlist()
120 static void reset_watchdog(struct Qdisc *sch) in reset_watchdog() argument
122 struct etf_sched_data *q = qdisc_priv(sch); in reset_watchdog()
123 struct sk_buff *skb = etf_peek_timesortedlist(sch); in reset_watchdog()
162 static int etf_enqueue_timesortedlist(struct sk_buff *nskb, struct Qdisc *sch, in etf_enqueue_timesortedlist() argument
165 struct etf_sched_data *q = qdisc_priv(sch); in etf_enqueue_timesortedlist()
170 if (!is_packet_valid(sch, nskb)) { in etf_enqueue_timesortedlist()
[all …]
H A Dsch_fq_codel.c56 u32 quantum; /* psched_mtu(qdisc_dev(sch)); */
76 static unsigned int fq_codel_classify(struct sk_buff *skb, struct Qdisc *sch, in fq_codel_classify() argument
79 struct fq_codel_sched_data *q = qdisc_priv(sch); in fq_codel_classify()
84 if (TC_H_MAJ(skb->priority) == sch->handle && in fq_codel_classify()
137 static unsigned int fq_codel_drop(struct Qdisc *sch, unsigned int max_packets, in fq_codel_drop() argument
140 struct fq_codel_sched_data *q = qdisc_priv(sch); in fq_codel_drop()
179 sch->qstats.drops += i; in fq_codel_drop()
180 sch->qstats.backlog -= len; in fq_codel_drop()
181 sch->q.qlen -= i; in fq_codel_drop()
185 static int fq_codel_enqueue(struct sk_buff *skb, struct Qdisc *sch, in fq_codel_enqueue() argument
258 struct Qdisc *sch = ctx; dequeue_func() local
276 struct Qdisc *sch = ctx; drop_func() local
282 fq_codel_dequeue(struct Qdisc * sch) fq_codel_dequeue() argument
334 fq_codel_reset(struct Qdisc * sch) fq_codel_reset() argument
366 fq_codel_change(struct Qdisc * sch,struct nlattr * opt,struct netlink_ext_ack * extack) fq_codel_change() argument
460 fq_codel_destroy(struct Qdisc * sch) fq_codel_destroy() argument
469 fq_codel_init(struct Qdisc * sch,struct nlattr * opt,struct netlink_ext_ack * extack) fq_codel_init() argument
532 fq_codel_dump(struct Qdisc * sch,struct sk_buff * skb) fq_codel_dump() argument
579 fq_codel_dump_stats(struct Qdisc * sch,struct gnet_dump * d) fq_codel_dump_stats() argument
606 fq_codel_leaf(struct Qdisc * sch,unsigned long arg) fq_codel_leaf() argument
611 fq_codel_find(struct Qdisc * sch,u32 classid) fq_codel_find() argument
616 fq_codel_bind(struct Qdisc * sch,unsigned long parent,u32 classid) fq_codel_bind() argument
626 fq_codel_tcf_block(struct Qdisc * sch,unsigned long cl,struct netlink_ext_ack * extack) fq_codel_tcf_block() argument
636 fq_codel_dump_class(struct Qdisc * sch,unsigned long cl,struct sk_buff * skb,struct tcmsg * tcm) fq_codel_dump_class() argument
643 fq_codel_dump_class_stats(struct Qdisc * sch,unsigned long cl,struct gnet_dump * d) fq_codel_dump_class_stats() argument
690 fq_codel_walk(struct Qdisc * sch,struct qdisc_walker * arg) fq_codel_walk() argument
[all...]
H A Dsch_skbprio.c68 static int skbprio_enqueue(struct sk_buff *skb, struct Qdisc *sch, in skbprio_enqueue() argument
72 struct skbprio_sched_data *q = qdisc_priv(sch); in skbprio_enqueue()
84 if (sch->q.qlen < READ_ONCE(sch->limit)) { in skbprio_enqueue()
86 qdisc_qstats_backlog_inc(sch, skb); in skbprio_enqueue()
96 sch->q.qlen++; in skbprio_enqueue()
105 return qdisc_drop(skb, sch, to_free); in skbprio_enqueue()
109 qdisc_qstats_backlog_inc(sch, skb); in skbprio_enqueue()
116 qdisc_qstats_backlog_dec(sch, to_drop); in skbprio_enqueue()
117 qdisc_drop(to_drop, sch, to_free); in skbprio_enqueue()
139 static struct sk_buff *skbprio_dequeue(struct Qdisc *sch) in skbprio_dequeue() argument
[all …]
H A Dsch_dualpi2.c72 struct Qdisc *sch; /* The Classic queue (C-queue) */ member
208 static void dualpi2_calculate_c_protection(struct Qdisc *sch, in dualpi2_calculate_c_protection() argument
213 q->c_protection_init = (s32)psched_mtu(qdisc_dev(sch)) * in dualpi2_calculate_c_protection()
249 * delay, eventually resulting in taildrop behavior once sch->limit is
282 static bool must_drop(struct Qdisc *sch, struct dualpi2_sched_data *q, in must_drop() argument
289 if (sch->qstats.backlog < 2 * psched_mtu(qdisc_dev(sch))) in must_drop()
355 if (TC_H_MAJ(skb->priority) == q->sch->handle && in dualpi2_skb_classify()
385 static int dualpi2_enqueue_skb(struct sk_buff *skb, struct Qdisc *sch, in dualpi2_enqueue_skb() argument
388 struct dualpi2_sched_data *q = qdisc_priv(sch); in dualpi2_enqueue_skb()
441 dualpi2_qdisc_enqueue(struct sk_buff * skb,struct Qdisc * sch,struct sk_buff ** to_free) dualpi2_qdisc_enqueue() argument
516 dequeue_packet(struct Qdisc * sch,struct dualpi2_sched_data * q,int * credit_change,u64 now) dequeue_packet() argument
575 drop_and_retry(struct dualpi2_sched_data * q,struct sk_buff * skb,struct Qdisc * sch,enum skb_drop_reason reason) drop_and_retry() argument
583 dualpi2_qdisc_dequeue(struct Qdisc * sch) dualpi2_qdisc_dequeue() argument
639 calculate_probability(struct Qdisc * sch) calculate_probability() argument
677 get_memory_limit(struct Qdisc * sch,u32 limit) get_memory_limit() argument
712 struct Qdisc *sch = q->sch; dualpi2_timer() local
758 dualpi2_change(struct Qdisc * sch,struct nlattr * opt,struct netlink_ext_ack * extack) dualpi2_change() argument
888 dualpi2_reset_default(struct Qdisc * sch) dualpi2_reset_default() argument
913 dualpi2_init(struct Qdisc * sch,struct nlattr * opt,struct netlink_ext_ack * extack) dualpi2_init() argument
945 dualpi2_dump(struct Qdisc * sch,struct sk_buff * skb) dualpi2_dump() argument
1021 dualpi2_dump_stats(struct Qdisc * sch,struct gnet_dump * d) dualpi2_dump_stats() argument
1048 dualpi2_reset(struct Qdisc * sch) dualpi2_reset() argument
1067 dualpi2_destroy(struct Qdisc * sch) dualpi2_destroy() argument
1078 dualpi2_leaf(struct Qdisc * sch,unsigned long arg) dualpi2_leaf() argument
1083 dualpi2_find(struct Qdisc * sch,u32 classid) dualpi2_find() argument
1088 dualpi2_bind(struct Qdisc * sch,unsigned long parent,u32 classid) dualpi2_bind() argument
1098 dualpi2_tcf_block(struct Qdisc * sch,unsigned long cl,struct netlink_ext_ack * extack) dualpi2_tcf_block() argument
1108 dualpi2_walk(struct Qdisc * sch,struct qdisc_walker * arg) dualpi2_walk() argument
[all...]
H A Dsch_pie.c30 struct Qdisc *sch; member
33 bool pie_drop_early(struct Qdisc *sch, struct pie_params *params, in pie_drop_early() argument
38 u32 mtu = psched_mtu(qdisc_dev(sch)); in pie_drop_early()
85 static int pie_qdisc_enqueue(struct sk_buff *skb, struct Qdisc *sch, in pie_qdisc_enqueue() argument
89 struct pie_sched_data *q = qdisc_priv(sch); in pie_qdisc_enqueue()
92 if (unlikely(qdisc_qlen(sch) >= sch->limit)) { in pie_qdisc_enqueue()
99 if (!pie_drop_early(sch, &q->params, &q->vars, sch->qstats.backlog, in pie_qdisc_enqueue()
118 if (qdisc_qlen(sch) > q->stats.maxq) in pie_qdisc_enqueue()
119 q->stats.maxq = qdisc_qlen(sch); in pie_qdisc_enqueue()
121 return qdisc_enqueue_tail(skb, sch); in pie_qdisc_enqueue()
[all …]
H A Dsch_mqprio.c34 static int mqprio_enable_offload(struct Qdisc *sch, in mqprio_enable_offload() argument
38 struct mqprio_sched *priv = qdisc_priv(sch); in mqprio_enable_offload()
39 struct net_device *dev = qdisc_dev(sch); in mqprio_enable_offload()
80 static void mqprio_disable_offload(struct Qdisc *sch) in mqprio_disable_offload() argument
83 struct mqprio_sched *priv = qdisc_priv(sch); in mqprio_disable_offload()
84 struct net_device *dev = qdisc_dev(sch); in mqprio_disable_offload()
95 static void mqprio_destroy(struct Qdisc *sch) in mqprio_destroy() argument
97 struct net_device *dev = qdisc_dev(sch); in mqprio_destroy()
98 struct mqprio_sched *priv = qdisc_priv(sch); in mqprio_destroy()
110 mqprio_disable_offload(sch); in mqprio_destroy()
[all …]
H A Dsch_choke.c113 static void choke_drop_by_idx(struct Qdisc *sch, unsigned int idx, in choke_drop_by_idx() argument
116 struct choke_sched_data *q = qdisc_priv(sch); in choke_drop_by_idx()
126 --sch->q.qlen; in choke_drop_by_idx()
127 qdisc_qstats_backlog_dec(sch, skb); in choke_drop_by_idx()
128 qdisc_tree_reduce_backlog(sch, 1, qdisc_pkt_len(skb)); in choke_drop_by_idx()
129 qdisc_drop(skb, sch, to_free); in choke_drop_by_idx()
212 static int choke_enqueue(struct sk_buff *skb, struct Qdisc *sch, in choke_enqueue() argument
215 struct choke_sched_data *q = qdisc_priv(sch); in choke_enqueue()
220 q->vars.qavg = red_calc_qavg(p, &q->vars, sch->q.qlen); in choke_enqueue()
233 choke_drop_by_idx(sch, idx, to_free); in choke_enqueue()
[all …]
H A Dsch_gred.c92 static inline int gred_wred_mode_check(struct Qdisc *sch) in gred_wred_mode_check() argument
94 struct gred_sched *table = qdisc_priv(sch); in gred_wred_mode_check()
115 struct Qdisc *sch) in gred_backlog() argument
118 return sch->qstats.backlog; in gred_backlog()
165 static int gred_enqueue(struct sk_buff *skb, struct Qdisc *sch, in gred_enqueue() argument
169 struct gred_sched *t = qdisc_priv(sch); in gred_enqueue()
182 if (likely(sch->qstats.backlog + qdisc_pkt_len(skb) <= in gred_enqueue()
183 sch->limit)) in gred_enqueue()
184 return qdisc_enqueue_tail(skb, sch); in gred_enqueue()
214 gred_backlog(t, q, sch)); in gred_enqueue()
[all …]
/linux/kernel/sched/
H A Dext.c198 static void scx_kick_cpu(struct scx_sched *sch, s32 cpu, u64 flags);
199 static bool scx_vexit(struct scx_sched *sch, enum scx_exit_kind kind,
202 static __printf(4, 5) bool scx_exit(struct scx_sched *sch, in scx_exit() argument
210 ret = scx_vexit(sch, kind, exit_code, fmt, args); in scx_exit()
216 #define scx_error(sch, fmt, args...) scx_exit((sch), SCX_EXIT_ERROR, 0, fmt, ##args) argument
217 #define scx_verror(sch, fmt, args) scx_vexit((sch), SCX_EXIT_ERROR, 0, fmt, args) argument
219 #define SCX_HAS_OP(sch, op) test_bit(SCX_OP_IDX(op), (sch)->has_op) argument
247 static struct scx_dispatch_q *find_global_dsq(struct scx_sched *sch, in find_global_dsq() argument
250 return sch->global_dsqs[cpu_to_node(task_cpu(p))]; in find_global_dsq()
253 static struct scx_dispatch_q *find_user_dsq(struct scx_sched *sch, u64 dsq_id) in find_user_dsq() argument
[all …]
H A Dext_idle.c736 struct scx_sched *sch = scx_root; in __scx_update_idle() local
771 if (SCX_HAS_OP(sch, update_idle) && do_notify && !scx_rq_bypassing(rq)) in __scx_update_idle()
772 SCX_CALL_OP(sch, SCX_KF_REST, update_idle, rq, cpu_of(rq), idle); in __scx_update_idle()
822 static int validate_node(struct scx_sched *sch, int node) in validate_node() argument
825 scx_error(sch, "per-node idle tracking is disabled"); in validate_node()
835 scx_error(sch, "invalid node %d", node); in validate_node()
841 scx_error(sch, "unavailable node %d", node); in validate_node()
850 static bool check_builtin_idle_enabled(struct scx_sched *sch) in check_builtin_idle_enabled() argument
855 scx_error(sch, "built-in idle tracking is disabled"); in check_builtin_idle_enabled()
885 static s32 select_cpu_from_kfunc(struct scx_sched *sch, struct task_struct *p, in select_cpu_from_kfunc() argument
[all …]
/linux/include/net/
H A Dsch_generic.h68 struct Qdisc *sch,
70 struct sk_buff * (*dequeue)(struct Qdisc *sch);
283 struct tcf_block * (*tcf_block)(struct Qdisc *sch,
312 struct Qdisc *sch,
317 int (*init)(struct Qdisc *sch, struct nlattr *arg,
321 int (*change)(struct Qdisc *sch,
324 void (*attach)(struct Qdisc *sch);
326 void (*change_real_num_tx)(struct Qdisc *sch,
332 void (*ingress_block_set)(struct Qdisc *sch,
334 void (*egress_block_set)(struct Qdisc *sch,
716 qdisc_offload_graft_helper(struct net_device * dev,struct Qdisc * sch,struct Qdisc * new,struct Qdisc * old,enum tc_setup_type type,void * type_data,struct netlink_ext_ack * extack) qdisc_offload_graft_helper() argument
845 qdisc_calculate_pkt_len(struct sk_buff * skb,const struct Qdisc * sch) qdisc_calculate_pkt_len() argument
855 qdisc_enqueue(struct sk_buff * skb,struct Qdisc * sch,struct sk_buff ** to_free) qdisc_enqueue() argument
878 qdisc_bstats_cpu_update(struct Qdisc * sch,const struct sk_buff * skb) qdisc_bstats_cpu_update() argument
884 qdisc_bstats_update(struct Qdisc * sch,const struct sk_buff * skb) qdisc_bstats_update() argument
890 qdisc_qstats_backlog_dec(struct Qdisc * sch,const struct sk_buff * skb) qdisc_qstats_backlog_dec() argument
896 qdisc_qstats_cpu_backlog_dec(struct Qdisc * sch,const struct sk_buff * skb) qdisc_qstats_cpu_backlog_dec() argument
902 qdisc_qstats_backlog_inc(struct Qdisc * sch,const struct sk_buff * skb) qdisc_qstats_backlog_inc() argument
908 qdisc_qstats_cpu_backlog_inc(struct Qdisc * sch,const struct sk_buff * skb) qdisc_qstats_cpu_backlog_inc() argument
914 qdisc_qstats_cpu_qlen_inc(struct Qdisc * sch) qdisc_qstats_cpu_qlen_inc() argument
919 qdisc_qstats_cpu_qlen_dec(struct Qdisc * sch) qdisc_qstats_cpu_qlen_dec() argument
924 qdisc_qstats_cpu_requeues_inc(struct Qdisc * sch) qdisc_qstats_cpu_requeues_inc() argument
929 __qdisc_qstats_drop(struct Qdisc * sch,int count) __qdisc_qstats_drop() argument
944 qdisc_qstats_drop(struct Qdisc * sch) qdisc_qstats_drop() argument
949 qdisc_qstats_cpu_drop(struct Qdisc * sch) qdisc_qstats_cpu_drop() argument
954 qdisc_qstats_overlimit(struct Qdisc * sch) qdisc_qstats_overlimit() argument
959 qdisc_qstats_copy(struct gnet_dump * d,struct Qdisc * sch) qdisc_qstats_copy() argument
966 qdisc_qstats_qlen_backlog(struct Qdisc * sch,__u32 * qlen,__u32 * backlog) qdisc_qstats_qlen_backlog() argument
976 qdisc_purge_queue(struct Qdisc * sch) qdisc_purge_queue() argument
1001 qdisc_enqueue_tail(struct sk_buff * skb,struct Qdisc * sch) qdisc_enqueue_tail() argument
1034 qdisc_dequeue_internal(struct Qdisc * sch,bool direct) qdisc_dequeue_internal() argument
1054 qdisc_dequeue_head(struct Qdisc * sch) qdisc_dequeue_head() argument
1116 __qdisc_queue_drop_head(struct Qdisc * sch,struct qdisc_skb_head * qh,struct sk_buff ** to_free) __qdisc_queue_drop_head() argument
1133 qdisc_peek_head(struct Qdisc * sch) qdisc_peek_head() argument
1141 qdisc_peek_dequeued(struct Qdisc * sch) qdisc_peek_dequeued() argument
1160 qdisc_update_stats_at_dequeue(struct Qdisc * sch,struct sk_buff * skb) qdisc_update_stats_at_dequeue() argument
1174 qdisc_update_stats_at_enqueue(struct Qdisc * sch,unsigned int pkt_len) qdisc_update_stats_at_enqueue() argument
1187 qdisc_dequeue_peeked(struct Qdisc * sch) qdisc_dequeue_peeked() argument
1223 qdisc_reset_queue(struct Qdisc * sch) qdisc_reset_queue() argument
1228 qdisc_replace(struct Qdisc * sch,struct Qdisc * new,struct Qdisc ** pold) qdisc_replace() argument
1243 rtnl_qdisc_drop(struct sk_buff * skb,struct Qdisc * sch) rtnl_qdisc_drop() argument
1249 qdisc_drop_cpu(struct sk_buff * skb,struct Qdisc * sch,struct sk_buff ** to_free) qdisc_drop_cpu() argument
1258 qdisc_drop(struct sk_buff * skb,struct Qdisc * sch,struct sk_buff ** to_free) qdisc_drop() argument
1267 qdisc_drop_reason(struct sk_buff * skb,struct Qdisc * sch,struct sk_buff ** to_free,enum skb_drop_reason reason) qdisc_drop_reason() argument
1275 qdisc_drop_all(struct sk_buff * skb,struct Qdisc * sch,struct sk_buff ** to_free) qdisc_drop_all() argument
[all...]

1234