Search Linux Wireless

Re: [PATCH 1/9] ath10k: speedup htt rx descriptor processing for tx completion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Rajkumar Manoharan <rmanohar@xxxxxxxxxxxxxxxx> writes:

> To optimize CPU usage htt rx descriptors will be reused instead of
> refilling it for htt rx copy engine (CE5). To support that all htt rx
> indications should be processed at same context. FIFO queue is used
> to maintain tx completion status for each msdu. This helps to retain
> the order of tx completion.
>
> Signed-off-by: Rajkumar Manoharan <rmanohar@xxxxxxxxxxxxxxxx>

[...]

> @@ -1712,7 +1710,20 @@ static void ath10k_htt_rx_frm_tx_compl(struct ath10k *ar,
>  	for (i = 0; i < resp->data_tx_completion.num_msdus; i++) {
>  		msdu_id = resp->data_tx_completion.msdus[i];
>  		tx_done.msdu_id = __le16_to_cpu(msdu_id);
> -		ath10k_txrx_tx_unref(htt, &tx_done);
> +
> +		/* kfifo_put: In practice firmware shouldn't fire off per-CE
> +		 * interrupt and main interrupt (MSI/-X range case) for the same
> +		 * HTC service so it should be safe to use kfifo_put w/o lock.
> +		 *
> +		 * From kfifo_put() documentation:
> +		 *  Note that with only one concurrent reader and one concurrent
> +		 *  writer, you don't need extra locking to use these macro.
> +		 */
> +		if (!kfifo_put(&htt->txdone_fifo, tx_done)) {
> +			ath10k_warn(ar, "txdone fifo overrun, msdu_id %d status %d\n",
> +				    tx_done.msdu_id, tx_done.status);
> +			ath10k_txrx_tx_unref(htt, &tx_done);
> +		}

I see two new warnings on the kfifo_put() call:

drivers/net/wireless/ath/ath10k/htt_rx.c:1722:22: warning: cast to non-scalar
drivers/net/wireless/ath/ath10k/htt_rx.c:1722:22: warning: cast from non-scalar

But I suspect they are false warnings due to my old compiler:

gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

Opinions?

-- 
Kalle Valo--
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



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux