linux/drivers/net/wireless/intel/iwlwifi/mvm
Emmanuel Grumbach 6f2f019495 iwlwifi: mvm: avoid unnecessary cache trashing in Tx path
When sending a Tx Command with a Tx packet, we allocate the
Tx command separately from the payload of the packet.
The WiFi MAC header is then copied into the buffer that was
allocated for the Tx Command. This means that this buffer
needs to be big enough to contain both. This is why it is
allocated with iwl_trans_alloc_tx_cmd which returns a
pointer to a newly allocated not zeroed struct
iwl_device_cmd.

The Tx command has a few bit fields and hence it needs to
be zeroed, but all the rest of the buffer doesn't need to
be zeroed since it will either be memcopy'ed with the MAC
header, or not even sent to the device.
This means that we don't need to zero all the
iwl_device_cmd structure, but rather only the size of
the iwl_tx_cmd structure.

Since sizeof(iwl_tx_cmd) - sizeof(iwl_tx_cmd) is about
260 bytes, this can avoid touching 4 cache lines for each
packet.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2017-06-23 00:12:59 +03:00
..
binding.c iwlwifi: mvm: memset binding before setting values 2017-04-25 23:06:51 +03:00
coex.c iwlwifi: mvm: document structures used by commands 2017-06-02 14:07:53 +03:00
constants.h iwlwifi: mvm: support old method of NVM parsing 2017-06-02 14:07:46 +03:00
d3.c iwlwifi: remove resp_pkt NULL checks 2017-06-23 00:12:59 +03:00
debugfs-vif.c iwlwifi: mvm: prepare for station count change 2017-04-19 22:20:51 +03:00
debugfs.c iwlwifi: mvm: add and use iwl_mvm_device_running() 2017-06-05 23:34:26 +03:00
debugfs.h
fw-api-coex.h iwlwifi: mvm: add documentation links to various fields 2017-06-02 14:07:51 +03:00
fw-api-d3.h iwlwifi: mvm: add documentation to some WoWLAN commands 2017-06-02 14:07:50 +03:00
fw-api-mac.h iwlwifi: mvm: add documentation links to various fields 2017-06-02 14:07:51 +03:00
fw-api-power.h iwlwifi: mvm: fix many kernel-doc warnings 2017-06-02 14:10:45 +03:00
fw-api-rs.h First batch of iwlwifi driver patches 4.13 2017-06-12 19:29:39 +03:00
fw-api-rx.h iwlwifi: mvm: document RX structures 2017-06-05 23:25:20 +03:00
fw-api-scan.h iwlwifi: fw-api: cleanup cycle includes 2017-06-05 23:34:30 +03:00
fw-api-sta.h iwlwifi: mvm: create/name various enums 2017-06-02 14:07:52 +03:00
fw-api-stats.h iwlwifi: mvm: create/name various enums 2017-06-02 14:07:52 +03:00
fw-api-tof.h iwlwifi: fw-api: cleanup cycle includes 2017-06-05 23:34:30 +03:00
fw-api-tx.h First batch of iwlwifi driver patches 4.13 2017-06-12 19:29:39 +03:00
fw-api.h iwlwifi: mvm: remove SCAN_GROUP 2017-06-05 23:34:30 +03:00
fw-dbg.c iwlwifi: mvm: disable dbg data collect when fw isn't alive 2017-06-23 00:12:59 +03:00
fw-dbg.h iwlwifi: mvm: consider P2p device type for firmware dump triggers 2016-08-29 22:29:04 +03:00
fw.c iwlwifi: mvm: convert ucode_loaded to a status bit 2017-06-05 23:34:27 +03:00
led.c iwlwifi: mvm: support init flow debugging 2017-06-05 23:29:32 +03:00
mac80211.c iwlwifi: mvm: Enable security on new TX API 2017-06-23 00:12:59 +03:00
mac-ctxt.c First batch of iwlwifi driver patches 4.13 2017-06-12 19:29:39 +03:00
Makefile Makefile: drop -D__CHECK_ENDIAN__ from cflags 2016-12-16 00:13:43 +02:00
mvm.h First batch of iwlwifi driver patches 4.13 2017-06-12 19:29:39 +03:00
nvm.c iwlwifi: remove resp_pkt NULL checks 2017-06-23 00:12:59 +03:00
offloading.c
ops.c iwlwifi: remove resp_pkt NULL checks 2017-06-23 00:12:59 +03:00
phy-ctxt.c iwlwifi: mvm: support changing band for phy context 2017-04-19 22:21:49 +03:00
power.c iwlwifi: mvm: cleanup incorrect and redundant define 2017-02-03 16:26:39 +02:00
quota.c iwlwifi: mvm: support setting minimum quota from debugfs 2016-02-01 16:40:23 +02:00
rs.c iwlwifi: mvm: rs: start using LQ command color 2017-06-05 21:45:41 +03:00
rs.h iwlwifi: mvm: rs: start using LQ command color 2017-06-05 21:45:41 +03:00
rx.c Another set of patches for -next: 2017-04-28 14:41:15 -04:00
rxmq.c Another set of patches for -next: 2017-04-28 14:41:15 -04:00
scan.c iwlwifi: mvm: use schedule_delayed_work() 2017-06-05 23:34:26 +03:00
sf.c iwlwifi: mvm: prepare for station count change 2017-04-19 22:20:51 +03:00
sta.c iwlwifi: mvm: Enable security on new TX API 2017-06-23 00:12:59 +03:00
sta.h First batch of iwlwifi driver patches 4.13 2017-06-12 19:29:39 +03:00
tdls.c iwlwifi: mvm: use schedule_delayed_work() 2017-06-05 23:34:26 +03:00
testmode.h
time-event.c iwlwifi: mvm: flush per station for DQA mode 2017-06-02 13:15:05 +03:00
time-event.h iwlwifi: mvm: extend time event duration 2016-03-07 13:34:16 +02:00
tof.c iwlwifi: mvm: support init flow debugging 2017-06-05 23:29:32 +03:00
tof.h
tt.c First batch of iwlwifi driver patches 4.13 2017-06-12 19:29:39 +03:00
tx.c iwlwifi: mvm: avoid unnecessary cache trashing in Tx path 2017-06-23 00:12:59 +03:00
utils.c iwlwifi: remove resp_pkt NULL checks 2017-06-23 00:12:59 +03:00