Re: [PATCH 33/35] libata: take advantage of cmwq and remove concurrencylimitations

From: Jeff Garzik
Date: Mon Jun 28 2010 - 18:32:52 EST


On 06/28/2010 05:04 PM, Tejun Heo wrote:
libata has two concurrency related limitations.

a. ata_wq which is used for polling PIO has single thread per CPU. If
there are multiple devices doing polling PIO on the same CPU, they
can't be executed simultaneously.

b. ata_aux_wq which is used for SCSI probing has single thread. In
cases where SCSI probing is stalled for extended period of time
which is possible for ATAPI devices, this will stall all probing.

#a is solved by increasing maximum concurrency of ata_wq. Please note
that polling PIO might be used under allocation path and thus needs to
be served by a separate wq with a rescuer.

#b is solved by using the default wq instead and achieving exclusion
via per-port mutex.

Signed-off-by: Tejun Heo<tj@xxxxxxxxxx>
Cc: Jeff Garzik<jgarzik@xxxxxxxxx>

Acked-by: Jeff Garzik <jgarzik@xxxxxxxxxx>


--
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/