]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit73d8d3f88638478278770e84b216957801638948
tree398b8a3e8ab2e1de31a17104b92981b9960c3e39
parent5b0e37f29b98245ef5fdf86c91c22fc3a5b6c517
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