From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mailapp01.imgtec.com ([195.59.15.196]:31587 "EHLO mailapp01.imgtec.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754350AbaGULMl (ORCPT ); Mon, 21 Jul 2014 07:12:41 -0400 Message-ID: <53CCF5A5.8030404@imgtec.com> (sfid-20140721_131244_233734_B2463D9F) Date: Mon, 21 Jul 2014 16:42:37 +0530 From: Sachin Kulkarni MIME-Version: 1.0 To: CC: Johannes Berg Subject: Re: [PATCH-v2] mac80211: Requeue work for all iftypes after scan completion References: <53BEB909.3030802@imgtec.com> <53CCF498.8000800@imgtec.com> In-Reply-To: <53CCF498.8000800@imgtec.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Sender: linux-wireless-owner@vger.kernel.org List-ID: On 07/21/2014 04:38 PM, Sachin Kulkarni wrote: > > From: Sachin Kulkarni > > During a hw scan ieee80211_iface_work ignores work items for all vifs. > However > after the scan complete work is requeued only for STA, ADHOC and MESH > iftypes. > This occasionally results in event processing getting delayed for > iftype AP when > it coexists with a STA, and when the scan durations are very long. > > Signed-off-by: Sachin Kulkarni > Cc: linux-wireless@vger.kernel.org > Cc: johannes@sipsolutions.net > --- > v2: Fix white space after comma > > We have a test scenario where there are 2 VIFs: one STA and one AP. > The STA is > not connected to anyone while the AP has a station connected to it. > The hardware > we are using currently has scan durations of ~8 sec and a new scan > request is > generated every 10 s. This results in a window of only 2 s when work > items can > be processed by ieee80211_iface_work. We came across scenarios where > the AP is > trying to tear down a AMPDU session, and the > IEEE80211_SDATA_QUEUE_AGG_STOP > event gets queued. However the work item for this gets ignored by the > ieee80211_iface_work > since a hw scan is in progress most of the time. When the scan > completes however > the work item for the AP does not get requeued, and by the time the > IEEE80211_SDATA_QUEUE_AGG_STOP gets processed in some other work items > context, > the TX frames just keep getting queued up, since the tid has not been > destroyed. > This results in disconnections since things like ARP timeouts etc start > happening. > --- > net/mac80211/mlme.c | 5 +++-- > 1 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c > index 931330b..49af420 100644 > --- a/net/mac80211/mlme.c > +++ b/net/mac80211/mlme.c > @@ -3647,9 +3647,10 @@ static void ieee80211_restart_sta_timer(struct > ieee80211_sub_if_data *sdata) > if (!(flags& IEEE80211_HW_CONNECTION_MONITOR)) > ieee80211_queue_work(&sdata->local->hw, > &sdata->u.mgd.monitor_work); > - /* and do all the other regular work too */ > - ieee80211_queue_work(&sdata->local->hw,&sdata->work); > } > + > + /* and do all the other regular work too */ > + ieee80211_queue_work(&sdata->local->hw,&sdata->work); > } > > #ifdef CONFIG_PM > > Sorry Johannes, it looks like my Thunderbird is removing the white space for some reason !! I will try to resend the patch by some other means soon.