firewire: fw-sbp2: use an own workqueue (fix system responsiveness)
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Sun, 12 Aug 2007 10:51:18 +0000 (12:51 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Tue, 16 Oct 2007 22:00:04 +0000 (00:00 +0200)
commitdf8ec2490fed5dd23316bbb2c2e90e59e7d37126
tree398b8a3e8ab2e1de31a17104b92981b9960c3e39
parent2df222b8f8fe9e18c9c9fdfd46f60dad55f5ac14
firewire: fw-sbp2: use an own workqueue (fix system responsiveness)

Firewire-sbp2 did very uncooperative things in the kernel's shared
workqueue:  Sleeping until reception of management status from the
target for up to 2 seconds, and performing SCSI inquiry and all of the
setup of SCSI command set drivers via scsi_add_device.  If there were
transient or permanent error conditions, this caused long blockage of
the kernel's events process, noticeable e.g. by blocked keyboard input.

We now allocate a workqueue process exclusive to fw-sbp2.  As a side
effect, this also increases parallelism of fw-sbp2's login and reconnect
work versus fw-core's device discovery and device update work which is
performed in the shared workqueue.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Kristian Høgsberg <krh@redhat.com>
drivers/firewire/fw-sbp2.c