On 2021-09-29 4:57 p.m., Alexei Starovoitov wrote:
Applying queuing discipline to non-skb context may be not your target but it's a reasonable and practical request to have.
While i agree that it is useful to deal with queues and scheduling for other buffer contexts, it certainly not the same infrastructure wise to deal with sending a context to user space vs dealing with the qdisc environment. There are a lot of corner cases of dealing with the mix of hard and softirqs, non-work conserving modes, multiflow funneling and locking etc that have been refined over the years that are incorporated into the tc + netdev infra. The approach that Cong took of just reusing that infra will take advantage of those learnings. The only thing that is variable between the different qdiscs is the enqueue/dequeue algos (which is where Cong is sticking the ebpf hooks). To me that looks like a very good starting point as i dont believe you can come up with one size fits all without excessive over-engineering (which seems to defeat the purpose of ebpf). cheers, jamal