This is a move of the series posted by Emmanuel a few days ago to the tip of Linus' master. It also applies pretty easily to 3.12.5-rt5 0010: iwlwifi: pcie: stop using _irqsave * There's no function iwl_trans_pcie_op_mode_leave(), instead iwl_trans_pcie_stop_hw() was updated A part from that, the port was relatively straight forward, but someone should probably have a look to make sure I didn't miss anything So, some tests on my laptop (Lenovo X220, i5-2520M) 3.12.1-rt4 (which has Sebastians iwlwifi workaround): cyclictest -p80 -i 1000 -l500000 -a -n -m -t2 # /dev/cpu_dma_latency set to 0us policy: fifo: loadavg: 0.40 2.19 1.69 2/513 4682 T: 0 ( 4118) P:80 I:1000 C: 500000 Min: 2 Act: 12 Avg: 8 Max: 47 T: 1 ( 4119) P:80 I:1500 C: 333338 Min: 2 Act: 20 Avg: 11 Max: 49 Over time (~6hr run), Max grew to about 300us 3.12.5-rt6 (with the iwlwifi patches): cyclictest -p80 -i 1000 -a -n -m -t2 # /dev/cpu_dma_latency set to 0us policy: fifo: loadavg: 0.35 0.44 0.40 2/518 4244 T: 0 ( 3132) P:80 I:1000 C:1492239 Min: 2 Act: 3 Avg: 2 Max: 3089 T: 1 ( 3133) P:80 I:1500 C: 994824 Min: 2 Act: 3 Avg: 4 Max: 2206 Granted, this was a longer run, but a 3ms spike is pretty awful. Still trying to recreate that with traces running, but no luck so far. Removing the iwlwifi module gives low values for cyclictest, consistent with 3.12.1-rt4 (with iwlwifi disabled). Emmanuel Grumbach (10): iwlwifi: pcie: clean up ICT allocation code iwlwifi: pcie: track interrupt mask in SW iwlwifi: pcie: re-organize the PCIe ISR code iwlwifi: pcie: move the ICT / non-ICT handling functions iwlwifi: pcie: read the interrupt cause from the handler iwlwifi: pcie: determine the interrupt type in the handler iwlwifi: pcie: return inta from iwl_pcie_int_cause_{non_}ict iwlwifi: pcie: no need to save inta in trans_pcie iwlwifi: pcie: move interrupt prints to the common handler iwlwifi: pcie: stop using _irqsave drivers/net/wireless/iwlwifi/iwl-csr.h | 3 +- drivers/net/wireless/iwlwifi/pcie/internal.h | 9 +- drivers/net/wireless/iwlwifi/pcie/rx.c | 393 +++++++++++--------------- drivers/net/wireless/iwlwifi/pcie/trans.c | 25 +- drivers/net/wireless/iwlwifi/pcie/tx.c | 10 +- 5 files changed, 184 insertions(+), 256 deletions(-) -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html