iwlwifi: pcie: fine tune number of rxbs
authorSara Sharon <sara.sharon@intel.com>
Mon, 1 Feb 2016 11:46:06 +0000 (13:46 +0200)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Wed, 9 Mar 2016 18:59:19 +0000 (20:59 +0200)
commit7b5424361ec9270f40c3e23cb747cc8b9ee66235
treed8589441155f0fb6cd3be5efa482154381bfa7bf
parentc9cb14a64c32f890d5a0649cb7d81dbfece33056
iwlwifi: pcie: fine tune number of rxbs

We kick the allocator when we have 2 RBDs that don't have
attached RBs, and the allocator allocates 8 RBs meaning
that it needs another 6 RBDs to attach the RBs to.
The design is that allocator should always have enough RBDs
to fulfill requests, so we give in advance 6 RBDs to the
allocator so that when it is kicked, it gets additional 2 RBDs
and has enough RBDs.
These RBDs were taken from the Rx queue itself, meaning
that each Rx queue didn't have the maximal number of
RBDs, but MAX - 6.
Change initial number of RBDs in the system to include both
queue size and allocator reserves.
Note the multi-queue is always 511 instead of 512 to avoid a
full queue since we cannot detect this state easily enough in
the 9000 arch.

Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/intel/iwlwifi/iwl-fh.h
drivers/net/wireless/intel/iwlwifi/pcie/internal.h
drivers/net/wireless/intel/iwlwifi/pcie/rx.c