All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Berg <johannes@sipsolutions.net>
To: Ben Greear <greearb@candelatech.com>
Cc: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Subject: Re: Add a new work-queue for destructing stations?
Date: Thu, 13 Dec 2012 18:59:01 +0100	[thread overview]
Message-ID: <1355421541.9463.8.camel@jlt4.sipsolutions.net> (raw)
In-Reply-To: <50CA1470.4030107@candelatech.com> (sfid-20121213_184629_945929_240FAE82)

On Thu, 2012-12-13 at 09:46 -0800, Ben Greear wrote:
> As previously posted, there can be cases where the RTNL is held for a
> very long time when trying to do the:  flush_workqueue(local->workqueue);
> in mac80211_do_stop because there are lots of 'slow' work-items queued up.
> 
> I'd like to work on making this faster...
> 
> My first idea is to add a second work-queue to the 'local' for high-priority
> items that can be executed independently from the current local->workqueue,
> and put the free_sta_rcu work() in that queue.
> 
> I'm guessing that to be safe, the do_stop() code would need to selectively
> purge any work items in the local->workqueue that relate to the sdata
> being destroyed, as well.  I'm not sure how possible that would be...

I don't think that's easy, but you're welcome to try. The
free_sta_work() function references the sdata so it absolutely must run
at this point.

The only/easiest thing that seems vaguely safe would be a per-vif
workqueue for this? But that's really annoying too, since it needs an
extra thread etc.

johannes


  reply	other threads:[~2012-12-13 17:58 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-13 17:46 Add a new work-queue for destructing stations? Ben Greear
2012-12-13 17:59 ` Johannes Berg [this message]
2012-12-13 18:19   ` Ben Greear
2012-12-13 18:24     ` Johannes Berg
2012-12-13 18:27       ` Johannes Berg
2012-12-13 18:36         ` Johannes Berg
2012-12-13 18:30       ` Ben Greear
2012-12-13 18:37         ` Johannes Berg
2012-12-13 18:39           ` Ben Greear
2012-12-13 18:41             ` Johannes Berg
2012-12-13 18:47               ` Ben Greear
2012-12-13 18:49                 ` Johannes Berg
2012-12-13 18:53                   ` Johannes Berg
2012-12-13 19:00                     ` Ben Greear
2012-12-13 19:11                       ` Johannes Berg
2012-12-13 19:17                         ` Ben Greear

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=1355421541.9463.8.camel@jlt4.sipsolutions.net \
    --to=johannes@sipsolutions.net \
    --cc=greearb@candelatech.com \
    --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.