mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
net: sched: remove qdisc->empty for lockless qdisc
As MISSED and DRAINING state are used to indicate a non-empty qdisc, qdisc->empty is not longer needed, so remove it. Acked-by: Jakub Kicinski <kuba@kernel.org> Tested-by: Vladimir Oltean <vladimir.oltean@nxp.com> # flexcan Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c4fef01ba4
commit
d3e0f57501
2 changed files with 3 additions and 13 deletions
|
@ -117,8 +117,6 @@ struct Qdisc {
|
|||
spinlock_t busylock ____cacheline_aligned_in_smp;
|
||||
spinlock_t seqlock;
|
||||
|
||||
/* for NOLOCK qdisc, true if there are no enqueued skbs */
|
||||
bool empty;
|
||||
struct rcu_head rcu;
|
||||
|
||||
/* private data */
|
||||
|
@ -165,7 +163,7 @@ static inline bool qdisc_is_percpu_stats(const struct Qdisc *q)
|
|||
static inline bool qdisc_is_empty(const struct Qdisc *qdisc)
|
||||
{
|
||||
if (qdisc_is_percpu_stats(qdisc))
|
||||
return READ_ONCE(qdisc->empty);
|
||||
return nolock_qdisc_is_empty(qdisc);
|
||||
return !READ_ONCE(qdisc->q.qlen);
|
||||
}
|
||||
|
||||
|
@ -173,7 +171,7 @@ static inline bool qdisc_run_begin(struct Qdisc *qdisc)
|
|||
{
|
||||
if (qdisc->flags & TCQ_F_NOLOCK) {
|
||||
if (spin_trylock(&qdisc->seqlock))
|
||||
goto nolock_empty;
|
||||
return true;
|
||||
|
||||
/* If the MISSED flag is set, it means other thread has
|
||||
* set the MISSED flag before second spin_trylock(), so
|
||||
|
@ -195,12 +193,7 @@ static inline bool qdisc_run_begin(struct Qdisc *qdisc)
|
|||
/* Retry again in case other CPU may not see the new flag
|
||||
* after it releases the lock at the end of qdisc_run_end().
|
||||
*/
|
||||
if (!spin_trylock(&qdisc->seqlock))
|
||||
return false;
|
||||
|
||||
nolock_empty:
|
||||
WRITE_ONCE(qdisc->empty, false);
|
||||
return true;
|
||||
return spin_trylock(&qdisc->seqlock);
|
||||
} else if (qdisc_is_running(qdisc)) {
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue