Re: [RFC PATCH 15/17] net: sched: pfifo_fast use skb_array

2017-11-15 Thread John Fastabend
[...] >> static int pfifo_fast_dump(struct Qdisc *qdisc, struct sk_buff *skb) >> @@ -685,17 +688,40 @@ static int pfifo_fast_dump(struct Qdisc *qdisc, struct >> sk_buff *skb) >> >> static int pfifo_fast_init(struct Qdisc *qdisc, struct nlattr *opt) >> { >> - int prio; >> + unsigned

Re: [RFC PATCH 15/17] net: sched: pfifo_fast use skb_array

2017-11-14 Thread Willem de Bruijn
> static struct sk_buff *pfifo_fast_peek(struct Qdisc *qdisc) > { > struct pfifo_fast_priv *priv = qdisc_priv(qdisc); > - int band = bitmap2band[priv->bitmap]; > + struct sk_buff *skb = NULL; > + int band; > > - if (band >= 0) { > - struct qdisc_skb_h

[RFC PATCH 15/17] net: sched: pfifo_fast use skb_array

2017-11-13 Thread John Fastabend
This converts the pfifo_fast qdisc to use the skb_array data structure and set the lockless qdisc bit. This also removes the logic used to pick the next band to dequeue from and instead just checks a per priority array for packets from top priority to lowest. This might need to be a bit more cleve