libata: switch pio task from workqueue to slow-work libata-pio
authorJens Axboe <jens.axboe@oracle.com>
Thu, 27 Aug 2009 11:26:05 +0000 (13:26 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Thu, 27 Aug 2009 11:55:29 +0000 (13:55 +0200)
commitf2a2bac1a09d89f2ae7bc73a6ad54ed5006d0006
tree8af2df1288ca83d99068937e68f790f102b51d24
parent70784d657687d0aea36d18e296be081847d6308f
libata: switch pio task from workqueue to slow-work

A workqueue isn't a good fit for the pio task:

- It does not require per-CPU support, thus wasting many threads.
- The pio task would like to have more than one thread per CPU
  in some cases, for the single CPU case of having more than one
  pio device active.

So convert to slow-work instead, this is now possible with support
for delayed slow work and cancellation.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
drivers/ata/Kconfig
drivers/ata/libata-core.c
drivers/ata/libata-sff.c
drivers/ata/libata.h
include/linux/libata.h