Messages in this thread | | | From | Pkshih <> | Subject | RE: [PATCH v3 0/8] rtw88: prepare locking for SDIO support | Date | Fri, 21 Jan 2022 08:10:07 +0000 |
| |
> -----Original Message----- > From: Pkshih > Sent: Wednesday, January 19, 2022 5:38 PM > To: 'Martin Blumenstingl' <martin.blumenstingl@googlemail.com>; linux-wireless@vger.kernel.org > Cc: tony0620emma@gmail.com; kvalo@codeaurora.org; johannes@sipsolutions.net; netdev@vger.kernel.org; > linux-kernel@vger.kernel.org; Neo Jou <neojou@gmail.com>; Jernej Skrabec <jernej.skrabec@gmail.com>; Ed > Swierk <eswierk@gh.st> > Subject: RE: [PATCH v3 0/8] rtw88: prepare locking for SDIO support > > Hi, > > > -----Original Message----- > > From: Martin Blumenstingl <martin.blumenstingl@googlemail.com> > > Sent: Saturday, January 8, 2022 8:55 AM > > To: linux-wireless@vger.kernel.org > > Cc: tony0620emma@gmail.com; kvalo@codeaurora.org; johannes@sipsolutions.net; netdev@vger.kernel.org; > > linux-kernel@vger.kernel.org; Neo Jou <neojou@gmail.com>; Jernej Skrabec <jernej.skrabec@gmail.com>; > > Pkshih <pkshih@realtek.com>; Ed Swierk <eswierk@gh.st>; Martin Blumenstingl > > <martin.blumenstingl@googlemail.com> > > Subject: [PATCH v3 0/8] rtw88: prepare locking for SDIO support > > > > [...] > > I do stressed test of connection and suspend, and it get stuck after about > 4 hours but no useful messages. I will re-build my kernel and turn on lockdep debug > to see if it can tell me what is wrong. >
I found some deadlock:
[ 4891.169653] CPU0 CPU1 [ 4891.169732] ---- ---- [ 4891.169799] lock(&rtwdev->mutex); [ 4891.169874] lock(&local->sta_mtx); [ 4891.169948] lock(&rtwdev->mutex); [ 4891.170050] lock(&local->sta_mtx);
[ 4919.598630] CPU0 CPU1 [ 4919.598715] ---- ---- [ 4919.598779] lock(&local->iflist_mtx); [ 4919.598900] lock(&rtwdev->mutex); [ 4919.598995] lock(&local->iflist_mtx); [ 4919.599092] lock(&rtwdev->mutex);
So, I add wrappers to iterate rtw_iterate_stas() and rtw_iterate_vifs() that use _atomic version to collect sta and vif, and use list_for_each() to iterate. Reference code is attached, and I'm still thinking if we can have better method.
-- Ping-Ke
[unhandled content-type:application/octet-stream]
| |