Messages in this thread | | | Date | Tue, 12 Oct 2010 15:55:13 +0200 | From | Tejun Heo <> | Subject | Re: [PATCH] firewire: sbp2: parallelize login/inquiry, reconnect, and shutdown |
| |
Hello,
On 10/11/2010 11:39 PM, Stefan Richter wrote: > Stefan Richter wrote: >> There are indeed situations where the last module reference was already >> put down before the work is run for the last time. Thanks for the hint. >> >> What is preferable, an own workqueue instance whose destroy_workqueue() >> lets sbp2_cleanup wait for unfinished work, or module ref-counting like >> below? > > Anoher thing: Somebody might have swap space on a FireWire disk.
It doesn't have to be swap. Having a rw filesystem mounted is enough to be in the memory reclaim path.
> Yet the system workqueues that firewire-core and (perhaps) > firewire-sbp2 are using are created without WQ_RESCUER. > > Does this --- fringe use case as it might be --- call for private > workqueues in firewire-core (for fw_device.work) and firewire-sbp2 (for > sbp2_logical_unit.work)? > > Besides the less interesting cases of device discovery and shutdown, > both of these works are also involved in SBP reconnect which needs to be > performed at each FireWire bus reset (which can happen anytime for a > variety of reasons).
Yes, it would definitely be better to put them in a workqueue with WQ_RESCUER (or the new WQ_MEM_RECLAIM).
Thanks.
-- tejun
| |