From: Kalle Valo <kvalo@codeaurora.org>
To: Ganapathi Bhat <gbhat@marvell.com>
Cc: <linux-wireless@vger.kernel.org>,
Brian Norris <briannorris@chromium.org>,
Cathy Luo <cluo@marvell.com>, Xinming Hu <huxm@marvell.com>,
Zhiyuan Yang <yangzy@marvell.com>, James Cao <jcao@marvell.com>,
Mangesh Malusare <mmangesh@marvell.com>,
Shrenik Shikhare <shrenik@marvell.com>,
Ganapathi Bhat <gbhat@marvell.com>
Subject: Re: [2/2] mwifiex: use more_rx_task_flag to avoid USB RX stall
Date: Thu, 25 Jan 2018 07:12:02 +0000 (UTC) [thread overview]
Message-ID: <20180125071202.482C060A61@smtp.codeaurora.org> (raw)
In-Reply-To: <1516633497-6584-3-git-send-email-gbhat@marvell.com>
Ganapathi Bhat <gbhat@marvell.com> wrote:
> From: Shrenik Shikhare <shrenik@marvell.com>
>
> There is a race condition for acquiring rx_proc_lock between
> rx worker thread and USB RX data interrupt
> (mwifiex_usb_rx_complete):
>
> 1. USB receives an RX data interrupt, queues rx_work
> 2. rx_work empties rx_data_q, tries to acquire rx_proc_lock (to
> clear rx_processing flag)
> 3. While #2 is yet to acquire rx_proc_lock, driver receives
> continuous RX data interupts(mwifiex_usb_rx_complete)
> 3. For each interrupt at #3, driver acquires rx_proc_lock(it gets
> the lock since it is in interrupt context), tries to queue
> rx_work, but fails to do so since rx_processing is still set(#2)
> 4. When rx_pending exceeds HIGH_RX_PENDING, driver stops
> submitting URBs back to USB subsystem and thus firmware stops
> uploading RX data to driver
> 5. Now finally #2 will acquire rx_proc_lock, but because of #4,
> there are no further triggers to schedule rx_work again
>
> The above scenario occurs in some platforms where the RX
> processing is comparitively slower. This results in RX stall in
> driver, command/TX timeouts in firmware. The above scenario is
> introduced after commit c7dbdcb2a4e1
> ("mwifiex: schedule rx_work on RX interrupt for USB")
>
> To fix this set a new more_rx_task_flag whenever RX data callback
> is trying to schedule rx_work but rx_processing is not yet
> cleared. This will let the current rx_work(which was waiting for
> rx_proc_lock) to loopback and process newly arrived RX packets.
>
> Signed-off-by: Cathy Luo <cluo@marvell.com>
> Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
I can't find any commit with id c7dbdcb2a4e1, is it correct?
--
https://patchwork.kernel.org/patch/10178729/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
next prev parent reply other threads:[~2018-01-25 7:12 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-22 15:04 [PATCH 0/2] mwifiex: fix RX data stall issue on USB interface Ganapathi Bhat
2018-01-22 15:04 ` [PATCH 1/2] mwifiex: schedule rx_work on RX interrupt for USB Ganapathi Bhat
2018-01-25 7:10 ` [1/2] " Kalle Valo
[not found] ` <20180125071052.E370660A4E@smtp.codeaurora.org>
2018-01-25 18:32 ` Brian Norris
2018-01-25 18:59 ` [PATCH 1/2] " Brian Norris
2018-01-29 7:21 ` [EXT] " Ganapathi Bhat
2018-01-22 15:04 ` [PATCH 2/2] mwifiex: use more_rx_task_flag to avoid USB RX stall Ganapathi Bhat
2018-01-25 7:12 ` Kalle Valo [this message]
2018-01-25 7:13 ` [2/2] " Kalle Valo
2018-01-25 10:02 ` [EXT] " Ganapathi Bhat
[not found] ` <20180125071202.0F39560A60@smtp.codeaurora.org>
2018-01-25 9:59 ` Ganapathi Bhat
2018-01-25 12:59 ` Kalle Valo
2018-01-25 13:26 ` Ganapathi Bhat
2018-01-25 18:33 ` Brian Norris
2018-01-29 7:17 ` Ganapathi Bhat
2018-01-29 7:19 ` Ganapathi Bhat
2018-01-29 22:08 ` Brian Norris
2018-01-30 15:25 ` Ganapathi Bhat
2018-01-31 6:59 ` Ganapathi Bhat
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=20180125071202.482C060A61@smtp.codeaurora.org \
--to=kvalo@codeaurora.org \
--cc=briannorris@chromium.org \
--cc=cluo@marvell.com \
--cc=gbhat@marvell.com \
--cc=huxm@marvell.com \
--cc=jcao@marvell.com \
--cc=linux-wireless@vger.kernel.org \
--cc=mmangesh@marvell.com \
--cc=shrenik@marvell.com \
--cc=yangzy@marvell.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.