Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Upgrade to 4.4.50-rt62
[kvmfornfv.git]
/
kernel
/
net
/
sched
/
sch_hhf.c
diff --git
a/kernel/net/sched/sch_hhf.c
b/kernel/net/sched/sch_hhf.c
index
86b04e3
..
13d6f83
100644
(file)
--- a/
kernel/net/sched/sch_hhf.c
+++ b/
kernel/net/sched/sch_hhf.c
@@
-382,6
+382,7
@@
static int hhf_enqueue(struct sk_buff *skb, struct Qdisc *sch)
struct hhf_sched_data *q = qdisc_priv(sch);
enum wdrr_bucket_idx idx;
struct wdrr_bucket *bucket;
struct hhf_sched_data *q = qdisc_priv(sch);
enum wdrr_bucket_idx idx;
struct wdrr_bucket *bucket;
+ unsigned int prev_backlog;
idx = hhf_classify(skb, sch);
idx = hhf_classify(skb, sch);
@@
-409,6
+410,7
@@
static int hhf_enqueue(struct sk_buff *skb, struct Qdisc *sch)
if (++sch->q.qlen <= sch->limit)
return NET_XMIT_SUCCESS;
if (++sch->q.qlen <= sch->limit)
return NET_XMIT_SUCCESS;
+ prev_backlog = sch->qstats.backlog;
q->drop_overlimit++;
/* Return Congestion Notification only if we dropped a packet from this
* bucket.
q->drop_overlimit++;
/* Return Congestion Notification only if we dropped a packet from this
* bucket.
@@
-417,7
+419,7
@@
static int hhf_enqueue(struct sk_buff *skb, struct Qdisc *sch)
return NET_XMIT_CN;
/* As we dropped a packet, better let upper stack know this. */
return NET_XMIT_CN;
/* As we dropped a packet, better let upper stack know this. */
- qdisc_tree_
decrease_qlen(sch, 1
);
+ qdisc_tree_
reduce_backlog(sch, 1, prev_backlog - sch->qstats.backlog
);
return NET_XMIT_SUCCESS;
}
return NET_XMIT_SUCCESS;
}
@@
-527,7
+529,7
@@
static int hhf_change(struct Qdisc *sch, struct nlattr *opt)
{
struct hhf_sched_data *q = qdisc_priv(sch);
struct nlattr *tb[TCA_HHF_MAX + 1];
{
struct hhf_sched_data *q = qdisc_priv(sch);
struct nlattr *tb[TCA_HHF_MAX + 1];
- unsigned int qlen;
+ unsigned int qlen
, prev_backlog
;
int err;
u64 non_hh_quantum;
u32 new_quantum = q->quantum;
int err;
u64 non_hh_quantum;
u32 new_quantum = q->quantum;
@@
-577,12
+579,14
@@
static int hhf_change(struct Qdisc *sch, struct nlattr *opt)
}
qlen = sch->q.qlen;
}
qlen = sch->q.qlen;
+ prev_backlog = sch->qstats.backlog;
while (sch->q.qlen > sch->limit) {
struct sk_buff *skb = hhf_dequeue(sch);
kfree_skb(skb);
}
while (sch->q.qlen > sch->limit) {
struct sk_buff *skb = hhf_dequeue(sch);
kfree_skb(skb);
}
- qdisc_tree_decrease_qlen(sch, qlen - sch->q.qlen);
+ qdisc_tree_reduce_backlog(sch, qlen - sch->q.qlen,
+ prev_backlog - sch->qstats.backlog);
sch_tree_unlock(sch);
return 0;
sch_tree_unlock(sch);
return 0;