All, as some might know, I recently imported the ALTQ framework with the perspective to replace the existing queueing with this advanced system. While ALTQ is designed in a fashion to be API compatible with the old "struct ifqueue" it does break the ABI by chaning the size of ifnet.if_snd! I am now ready to commit this change. During the first commit I will not change the queueing at all. It will only change the if_snd member of struct ifnet and bring in new macros and some build glue. In a next step I will convert the various if_output routines (in if_*subr.c) to use the new ENQUEUE/HANDOFF operations. The final step then is to convert the network drivers to use the new DEQUEUE operations and to flip the per-driver flag that indicates that the driver is ready for ATLQ. The new DEQUEUE operation also bring along some extra candy in terms of reducing locking overhead: It will now be possible to do "bulk dequeues" i.e. transfering more than one packet from the system to the driver with only one lock operation. The amount of packets transfered at once is tuneable. Enabling ALTQ on a device will disable bulk dequeue to avoid irritations with the timing, though. The patch is at: http://people.freebsd.org/~mlaier/altq.patch I plan to commit this Sunday night(CEST) provided that no problems occure with the newly merged socket locking et al. -- Best regards, | mlaier_at_freebsd.org Max Laier | ICQ #67774661 http://pf4freebsd.love2party.net/ | mlaier_at_EFnet
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:57 UTC