workqueue_set_max_active(wq, 0)?

From: Johannes Berg
Date: Fri Dec 09 2011 - 04:54:46 EST


Hi,

I know workqueue_set_max_active(wq, 0) isn't allowed, but I was just
playing with making mac80211 completely synchronous in the configuration
path. (The reason is that right now, we have a single-threaded workqueue
and configuration entry points, so it's *almost* single-threaded /
synchronous. This means that the non-synchronous nature rarely gets
tested.)

So I thought I could put a work struct onto the workqueue and then when
it executes it signals the configuration function & waits for that to
finish, etc., a bit like the rendezvous mechanism used to flush works.

But then I thought maybe this should be more generic, like
"workqueue_pause()" / "workqueue_resume()".

And then I found workqueue_set_max_active() but passing 0 isn't allowed.

Before I dive in more deeply I figured I'd ask if you think what a good
way of doing this would be (and whether I'm completely insane) :-)

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/