Add qdisc->ops->peek() support.
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v1 Latest posting 2/24 of 6 patches 2 repliesIn review
- v1 posting 1/26 patches 17 repliesSuperseded
4 of 6 patches are in this archive. The cover letter announces 6.
Patches in v1 posting 2/2 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/6 | pkt_sched: sch_generic: Add Qdisc_ops peek() method.include/ | +1 | 0 replies | |
| 2/6 | pkt_sched: Add ->peek() methods for fifo, prio and SFQ qdiscs.include/ net/ net/ +1 more | +33 | 0 replies | |
| 5/6 | pkt_sched: Use qdisc->ops->peek() instead of ->dequeue() & ->requeue()net/ net/ net/ +1 more | +19 | 0 replies | |
| 6/6 | pkt_sched: Add peek emulation for non-work-conserving qdiscs.include/ net/ net/ +4 more | +34 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/6 RESEND] Add qdisc->ops->peek() support.
[Subject: Re: [PATCH 00/14]: Killing qdisc->ops->requeue().] On Tue, Oct 14, 2008 at 10:44:13PM +0200, Patrick McHardy wrote:
...
Quoted 10 lines
I think we really need a peek operation since most qdiscs do have some internal priorization. The question is whether all qdiscs need it; I tend to think no. Plugging two non-work-conserving qdiscs together doesn't make much sense, so we could just prevent this. This means we would only need to add ->peek support to the work-conserving qdiscs, which looks pretty easy in all cases. We actually don't even have to prevent plugging two non-work-conserving qdiscs, the ones that need the peek operation could just check whether the inner qdisc supports it.
Quoted 5 lines
Just as a demonstration how easy adding a peek operation to the work-conserving qdiscs actually is. It doesn't need to keep or change any internal state in many cases thanks to the guarantee that the packet will either be dequeued or, if another packet arrives, the upper qdisc will immediately ->peek again to reevaluate the state.
So here is a re-try.
PATCH 6/6 adds my simple idea not to prevent even nonsense configs. It is optional.
This resend is redone against current net-next with slightly changed patches 3/6 (check added in register_qdisc()) and 4/6 (teql_peek() made nonfunctional), according to Patric's suggestions, I hope.
Thanks,
Jarek P.
PS: after this patchset only netem_enqueue() needs qdisc->requeue(), but this will be handled by a separate patch.
include/net/sch_generic.h | 29 +++++++++++++++++++++++++++++ net/sched/sch_api.c | 12 ++++++++++++ net/sched/sch_atm.c | 23 ++++++++++++++++++----- net/sched/sch_blackhole.c | 1 + net/sched/sch_cbq.c | 1 + net/sched/sch_dsmark.c | 10 ++++++++++ net/sched/sch_fifo.c | 2 ++ net/sched/sch_generic.c | 16 ++++++++++++++++ net/sched/sch_gred.c | 1 + net/sched/sch_hfsc.c | 15 ++++----------- net/sched/sch_htb.c | 1 + net/sched/sch_multiq.c | 29 +++++++++++++++++++++++++++++ net/sched/sch_netem.c | 15 +++++++-------- net/sched/sch_prio.c | 14 ++++++++++++++ net/sched/sch_red.c | 9 +++++++++ net/sched/sch_sfq.c | 12 ++++++++++++ net/sched/sch_tbf.c | 13 ++++++------- net/sched/sch_teql.c | 8 ++++++++ 18 files changed, 180 insertions(+), 31 deletions(-)