All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kalle Valo <kvalo@qca.qualcomm.com>
To: Michal Kazior <michal.kazior@tieto.com>
Cc: linux-wireless@vger.kernel.org, ath10k@lists.infradead.org
Subject: Re: [PATCH v3 4/8] ath10k: bypass htc for htt tx path
Date: Fri, 28 Feb 2014 11:06:17 +0200	[thread overview]
Message-ID: <8738j3d2t2.fsf@kamboji.qca.qualcomm.com> (raw)
In-Reply-To: <1393485587-16879-5-git-send-email-michal.kazior@tieto.com> (Michal Kazior's message of "Thu, 27 Feb 2014 08:19:43 +0100")

Michal Kazior <michal.kazior@tieto.com> writes:

> Going through full htc tx path for htt tx is a
> waste of resources. By skipping it it's possible
> to easily submit scatter-gather to the pci hif for
> reduced host cpu load and improved performance.
>
> The new approach uses dma pool to store the
> following metadata for each tx request:
>  * msdu fragment list
>  * htc header
>  * htt tx command
>
> The htt tx command contains a msdu prefetch.
> Instead of copying it original mapped msdu address
> is used to submit a second scatter-gather item to
> hif to make a complete htt tx command.
>
> The htt tx command itself hands over dma mapped
> pointers to msdus and completion of the command
> itself doesn't mean the frame has been sent and
> can be unmapped/freed. This is why htc tx
> completion is skipped for htt tx as all tx related
> resources are freed upon htt tx completion
> indication event (which also implicitly means htt
> tx command itself was completed).
>
> Since now each htt tx request effectively consists
> of 2 copy engine items CE_HTT_H2T_MSG_SRC_NENTRIES
> is updated to allow maximum of
> TARGET_10X_NUM_MSDU_DESC msdus being queued. This
> keeps the tx path resource management simple.
>
> Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
> ---
> v2:
>  * improve commit log
>  * improve comment in code
>  * fix sparse/checkpatch/buildbot warnings

[...]

> --- a/drivers/net/wireless/ath/ath10k/htc.c
> +++ b/drivers/net/wireless/ath/ath10k/htc.c
> @@ -202,10 +202,8 @@ static int ath10k_htc_tx_completion_handler(struct ath10k *ar,
>  	struct ath10k_htc *htc = &ar->htc;
>  	struct ath10k_htc_ep *ep = &htc->endpoint[eid];
>  
> -	if (!skb) {
> -		ath10k_warn("invalid sk_buff completion - NULL pointer. firmware crashed?\n");
> +	if (WARN_ON(!skb))
>  		return 0;
> -	}

WARN_ON() is a bit dangerous here as it might cause excessive spamming.
Why did you want to change this? I think either ath10k_warn() or
WARN_ON_ONCE() would be safer, but not sure which one to use.

-- 
Kalle Valo

_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

WARNING: multiple messages have this Message-ID (diff)
From: Kalle Valo <kvalo@qca.qualcomm.com>
To: Michal Kazior <michal.kazior@tieto.com>
Cc: <ath10k@lists.infradead.org>, <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH v3 4/8] ath10k: bypass htc for htt tx path
Date: Fri, 28 Feb 2014 11:06:17 +0200	[thread overview]
Message-ID: <8738j3d2t2.fsf@kamboji.qca.qualcomm.com> (raw)
In-Reply-To: <1393485587-16879-5-git-send-email-michal.kazior@tieto.com> (Michal Kazior's message of "Thu, 27 Feb 2014 08:19:43 +0100")

Michal Kazior <michal.kazior@tieto.com> writes:

> Going through full htc tx path for htt tx is a
> waste of resources. By skipping it it's possible
> to easily submit scatter-gather to the pci hif for
> reduced host cpu load and improved performance.
>
> The new approach uses dma pool to store the
> following metadata for each tx request:
>  * msdu fragment list
>  * htc header
>  * htt tx command
>
> The htt tx command contains a msdu prefetch.
> Instead of copying it original mapped msdu address
> is used to submit a second scatter-gather item to
> hif to make a complete htt tx command.
>
> The htt tx command itself hands over dma mapped
> pointers to msdus and completion of the command
> itself doesn't mean the frame has been sent and
> can be unmapped/freed. This is why htc tx
> completion is skipped for htt tx as all tx related
> resources are freed upon htt tx completion
> indication event (which also implicitly means htt
> tx command itself was completed).
>
> Since now each htt tx request effectively consists
> of 2 copy engine items CE_HTT_H2T_MSG_SRC_NENTRIES
> is updated to allow maximum of
> TARGET_10X_NUM_MSDU_DESC msdus being queued. This
> keeps the tx path resource management simple.
>
> Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
> ---
> v2:
>  * improve commit log
>  * improve comment in code
>  * fix sparse/checkpatch/buildbot warnings

[...]

> --- a/drivers/net/wireless/ath/ath10k/htc.c
> +++ b/drivers/net/wireless/ath/ath10k/htc.c
> @@ -202,10 +202,8 @@ static int ath10k_htc_tx_completion_handler(struct ath10k *ar,
>  	struct ath10k_htc *htc = &ar->htc;
>  	struct ath10k_htc_ep *ep = &htc->endpoint[eid];
>  
> -	if (!skb) {
> -		ath10k_warn("invalid sk_buff completion - NULL pointer. firmware crashed?\n");
> +	if (WARN_ON(!skb))
>  		return 0;
> -	}

WARN_ON() is a bit dangerous here as it might cause excessive spamming.
Why did you want to change this? I think either ath10k_warn() or
WARN_ON_ONCE() would be safer, but not sure which one to use.

-- 
Kalle Valo

  reply	other threads:[~2014-02-28  9:06 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-17  9:32 [RFC/RFT 0/7] ath10k: performance improvements Michal Kazior
2014-02-17  9:32 ` Michal Kazior
2014-02-17  9:32 ` [RFC/RFT 1/7] ath10k: remove DMA mapping wrappers Michal Kazior
2014-02-17  9:32   ` Michal Kazior
2014-02-19 12:37   ` Kalle Valo
2014-02-19 12:37     ` Kalle Valo
2014-02-17  9:32 ` [RFC/RFT 2/7] ath10k: remove is_aborted from skb_cb Michal Kazior
2014-02-17  9:32   ` Michal Kazior
2014-02-17  9:32 ` [RFC/RFT 3/7] ath10k: replace send_head() with tx_sg() Michal Kazior
2014-02-17  9:32   ` Michal Kazior
2014-02-19 12:48   ` Kalle Valo
2014-02-19 12:48     ` Kalle Valo
2014-02-19 13:25     ` Michal Kazior
2014-02-19 13:25       ` Michal Kazior
2014-02-19 14:18       ` Kalle Valo
2014-02-19 14:18         ` Kalle Valo
2014-02-20  6:43         ` Michal Kazior
2014-02-20  6:43           ` Michal Kazior
2014-02-24 11:46           ` Kalle Valo
2014-02-24 11:46             ` Kalle Valo
2014-02-17  9:32 ` [RFC/RFT 4/7] ath10k: bypass htc for htt tx path Michal Kazior
2014-02-17  9:32   ` Michal Kazior
2014-02-19 14:56   ` Kalle Valo
2014-02-19 14:56     ` Kalle Valo
2014-02-17  9:32 ` [RFC/RFT 5/7] ath10k: batch htt tx/rx completions Michal Kazior
2014-02-17  9:32   ` Michal Kazior
2014-02-19 15:10   ` Kalle Valo
2014-02-19 15:10     ` Kalle Valo
2014-02-20 11:23     ` Michal Kazior
2014-02-20 11:23       ` Michal Kazior
2014-02-24 11:49       ` Kalle Valo
2014-02-24 11:49         ` Kalle Valo
2014-02-17  9:32 ` [RFC/RFT 6/7] ath10k: remove pci completion list Michal Kazior
2014-02-17  9:32   ` Michal Kazior
2014-02-17  9:32 ` [RFC/RFT 7/7] ath10k: minimize coherent dma accesses Michal Kazior
2014-02-17  9:32   ` Michal Kazior
2014-02-17 15:01 ` [RFC/RFT 0/7] ath10k: performance improvements Kalle Valo
2014-02-17 15:01   ` Kalle Valo
2014-02-19 15:16 ` Kalle Valo
2014-02-19 15:16   ` Kalle Valo
2014-02-26 11:34 ` [PATCH v2 0/8] " Michal Kazior
2014-02-26 11:34   ` Michal Kazior
2014-02-26 11:34   ` [PATCH v2 1/8] ath10k: remove DMA mapping wrappers Michal Kazior
2014-02-26 11:34     ` Michal Kazior
2014-02-26 11:34   ` [PATCH v2 2/8] ath10k: remove is_aborted from skb_cb Michal Kazior
2014-02-26 11:34     ` Michal Kazior
2014-02-26 12:09   ` [PATCH v2 0/8] ath10k: performance improvements Michal Kazior
2014-02-26 12:09     ` Michal Kazior
2014-02-27  7:19 ` [PATCH v3 " Michal Kazior
2014-02-27  7:19   ` Michal Kazior
2014-02-27  7:19   ` [PATCH v3 1/8] ath10k: remove DMA mapping wrappers Michal Kazior
2014-02-27  7:19     ` Michal Kazior
2014-02-27  7:19   ` [PATCH v3 2/8] ath10k: remove is_aborted from skb_cb Michal Kazior
2014-02-27  7:19     ` Michal Kazior
2014-02-27  7:19   ` [PATCH v3 3/8] ath10k: replace send_head() with tx_sg() Michal Kazior
2014-02-27  7:19     ` Michal Kazior
2014-02-27  7:19   ` [PATCH v3 4/8] ath10k: bypass htc for htt tx path Michal Kazior
2014-02-27  7:19     ` Michal Kazior
2014-02-28  9:06     ` Kalle Valo [this message]
2014-02-28  9:06       ` Kalle Valo
2014-02-28  9:15       ` Michal Kazior
2014-02-28  9:15         ` Michal Kazior
2014-02-28  9:28         ` Kalle Valo
2014-02-28  9:28           ` Kalle Valo
2014-02-28  9:54           ` Michal Kazior
2014-02-28  9:54             ` Michal Kazior
2014-02-27  7:19   ` [PATCH v3 5/8] ath10k: batch htt tx/rx completions Michal Kazior
2014-02-27  7:19     ` Michal Kazior
2014-02-28  9:00     ` Kalle Valo
2014-02-28  9:00       ` Kalle Valo
2014-02-28  9:07       ` Michal Kazior
2014-02-28  9:07         ` Michal Kazior
2014-02-27  7:19   ` [PATCH v3 6/8] ath10k: reduce htt tx/rx spinlock overhead Michal Kazior
2014-02-27  7:19     ` Michal Kazior
2014-02-27  7:19   ` [PATCH v3 7/8] ath10k: remove pci completion list Michal Kazior
2014-02-27  7:19     ` Michal Kazior
2014-02-27  7:19   ` [PATCH v3 8/8] ath10k: minimize coherent dma accesses Michal Kazior
2014-02-27  7:19     ` Michal Kazior
2014-02-28 10:13   ` [PATCH v3 0/8] ath10k: performance improvements Kalle Valo
2014-02-28 10:13     ` Kalle Valo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8738j3d2t2.fsf@kamboji.qca.qualcomm.com \
    --to=kvalo@qca.qualcomm.com \
    --cc=ath10k@lists.infradead.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=michal.kazior@tieto.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.