Jamal Hadi Salim <jhs@xxxxxxxxxxxx> writes: > I think what would be really interesting is to see the performance numbers when > you have multiple producers/consumers(translation multiple > threads/softirqs) in play > targeting the same queues. Does PIFO alleviate the synchronization challenge > when you have multiple concurrent readers/writers? Or maybe for your use case > this would not be a common occurrence or not something you care about? Right, this is definitely one of the areas we want to flesh out some more and benchmark. I think a PIFO-based algorithm *can* be an improvement here because you can compute the priority without holding any lock and only grab a lock for inserting the packet; which can be made even better with a (partially) lockless data structure and/or batching. In any case we *have* to do a certain amount of re-inventing for XDP because we can't reuse the qdisc infrastructure anyway. Ultimately, I expect it will be possible to write both really well-performing algorithms, and really badly-performing ones. Such is the power of BPF, after all, and as long as we can provide an existence proof of the former, that's fine with me :) > As I mentioned previously, I think this is what Cong's approach gets > for free. Yes, but it also retains the global qdisc lock; my (naive, perhaps?) hope is that since we have to do things differently in XDP land anyway, that work can translate into something that is amenable to being lockless in qdisc land as well... -Toke