All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sachin Kulkarni <Sachin.Kulkarni@imgtec.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH] mac80211: Requeue work for all iftypes after scan completion
Date: Mon, 21 Jul 2014 15:56:30 +0530	[thread overview]
Message-ID: <53CCEAD6.7030205@imgtec.com> (raw)
In-Reply-To: <1405935434.32255.2.camel@jlt4.sipsolutions.net>

On 07/21/2014 03:07 PM, Johannes Berg wrote:
> On Thu, 2014-07-10 at 21:32 +0530, Sachin Kulkarni wrote:
>> From: Sachin Kulkarni<sachin.kulkarni@imgtec.com>
>>
>> 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<sachin.kulkarni@imgtec.com>
>> Cc: linux-wireless@vger.kernel.org
>> Cc: johannes@sipsolutions.net
>> ---
>> 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);
> Please fix the space while at it. :)
Thanks for getting back Johannes. Just a quick question. When you said 
"..fix the space.." did you mean the spaces in the following lines:

   		if (!(flags&   IEEE80211_HW_CONNECTION_MONITOR))
   			ieee80211_queue_work(&sdata->local->hw,
   					&sdata->u.mgd.monitor_work);


or the newline I introduced here:

+
+	/* and do all the other regular work too */
+	ieee80211_queue_work(&sdata->local->hw,&sdata->work);


(I verified the patch with ./scripts/checkpatch.pl and it passed.)

Regards,
Sachin

  reply	other threads:[~2014-07-21 10:26 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <82A67CC48AF04D43A69EB66645975134218BA7EE@hbmail01.hb.imgtec.org>
2014-07-10 16:02 ` [PATCH] mac80211: Requeue work for all iftypes after scan completion Sachin Kulkarni
2014-07-10 17:47   ` Eliad Peller
2014-07-21  9:37   ` Johannes Berg
2014-07-21 10:26     ` Sachin Kulkarni [this message]
2014-07-21 10:30       ` Johannes Berg
2014-07-21 11:08   ` [PATCH-v2] " Sachin Kulkarni
2014-07-21 11:12     ` Sachin Kulkarni

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=53CCEAD6.7030205@imgtec.com \
    --to=sachin.kulkarni@imgtec.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    /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.