software scan fix - please test (Was: why we can't use the net80211 taskqueue for everything)

David Wolfskill david at catwhisker.org
Sat Feb 20 19:40:37 UTC 2016


On Sat, Feb 20, 2016 at 12:06:17PM +0200, Andriy Voskoboinyk wrote:
> > hi,
> >
> > andriy has a few reviews out that tidy up some things, which I'd reply
> > to, but .. reviews is offline. So, here's the 30 second version:
> >
> > * the net80211 taskqueue runs the software scan engine, and the
> > software scan engine currently sleeps whilst it's running.
> >
> > This means that if you put newstate, deferred transmit, etc into the
> > net80211 taskqueue, then it just won't run during scan.
> >
> > The net80211 software scan thing should be modified to not sleep
> > whilst it's waiting for scan results and instead just kick off another
> > timer event to finish that part of the loop. Then yes, we can just
> > migrate * to the net80211 task queue and use it for all serialisation
> > of a wifi driver.
> >
> > (And yes, I'd like to see that done ASAP..)
> >
> > Thanks,
> >
> >
> > -adrian
> 
> Hi,
> 
> I have replaced sleeping on conditional variable inside scan task
> with scan_curchan task rescheduling (so this problem should be fixed now).
> 
> For everyone, who wishes to test: apply the attached patch
> (merged from D5133, D5137, D5139, D5140, D5142, D5143, D5145, D5147, D5148  
> and D5152)
> and rebuild + install the kernel. Scan should work as before.
> ....

OK; I tried it (details of environment & method below); so far, I'm not
seeing a noticable difference in behavior.  (That said: I normally run
head only when I'm specifically testing something or -- rather more
often -- when I'm doing a daily src upgrade in-place at home.)  And
usually, home doesn't present a problem -- it's work that does that
(probably some timing issues with authentication catalyzing
wpa_supplicant to blacklist successive APs as they're tried.)

As for details: this was on my laptop, after "cloning" slice 4
(fresh-built head from this morning) to slice 3), then:

Script started on Sat Feb 20 10:50:35 2016
command: svn patch /tmp/patch-net80211-scan-sw.diff /S3/usr/src
U         /S3/usr/src/sys/net80211/ieee80211_output.c
U         /S3/usr/src/sys/net80211/ieee80211_scan.c
U         /S3/usr/src/sys/net80211/ieee80211_scan_sw.c

Script done on Sat Feb 20 10:50:35 2016
Script started on Sat Feb 20 10:50:35 2016
command: svn info /S3/usr/src
Path: /S3/usr/src
Working Copy Root Path: /S3/usr/src
URL: file:///svn/freebsd/src/base/head
Relative URL: ^/head
Repository Root: file:///svn/freebsd/src/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 295835
Node Kind: directory
Schedule: normal
Last Changed Author: skra
Last Changed Rev: 295834
Last Changed Date: 2016-02-19 23:45:21 -0800 (Fri, 19 Feb 2016)


Script done on Sat Feb 20 10:50:35 2016

Starting "uname -a" output:
FreeBSD g1-252.catwhisker.org 11.0-CURRENT FreeBSD 11.0-CURRENT #339  r295834M/295835:1100099: Sat Feb 20 04:51:08 PST 2016     root at g1-252.catwhisker.org:/common/S4/obj/usr/src/sys/CANARY  amd64

Ending "uname -a" output:
FreeBSD g1-252.catwhisker.org 11.0-CURRENT FreeBSD 11.0-CURRENT #340  r295834M/295835:1100099: Sat Feb 20 11:11:03 PST 2016     root at g1-252.catwhisker.org:/common/S3/obj/usr/src/sys/CANARY  amd64

> Thanks!

Thank you! :-)

Peace,
david
-- 
David H. Wolfskill				david at catwhisker.org
Those who would murder in the name of God or prophet are blasphemous cowards.

See http://www.catwhisker.org/~david/publickey.gpg for my public key.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 603 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-wireless/attachments/20160220/fc6015c3/attachment.sig>


More information about the freebsd-wireless mailing list