On Mon 09/09/2019 16:37, Stefan Sperling wrote: > On Mon, Sep 09, 2019 at 03:10:04PM +0200, Stefan Sperling wrote: > > The wifi stack currently calls if_input once per packet instead of once > > per interrupt. To make the wifi layer play nicely with the network stack > > we can split ieee80211_input() into two parts: > > Updated diff which avoids purging the input queue at every state > change, e.g. even during SCAN->SCAN. With this we only purge the > queue if we're leaving RUN state or going back to INIT state.
I tested the updated diff by downloading a 400M file and looking at the throughput and Idrop before, and after each run. I also tried different values for net.link.ifrxq.pressure_drop. $ dmesg | grep iwn iwn0 at pci2 dev 0 function 0 "Intel Centrino Advanced-N 6205" rev 0x34: msi, MIMO 2T2R, MoW, address Before applying your diff: pressure_drop MB/s Idrop before Idrop after 8 3.0 2194 4117 32 4.3 4117 4345 128 4.1 4345 4345 After applying your diff: pressure_drop MB/s Idrop before Idrop after 8 5.4 3354 3606 32 6.2 3606 3606 128 6.2 3606 3606 It seems that your diff improves throughput, and reduces number of Idrops. At higher values of net.link.ifrxq.pressure_drop throughput is even higher and delta Idrop is 0.