On 08/09/2013 02:23 AM, Alexander Gordeev wrote: > On Mon, Jul 29, 2013 at 07:46:53AM -0400, Tejun Heo wrote: >> One thing which would probably be worthwhile tho is getting rid of the >> bitmap based qc tag allocator in libata. That one is just borderline >> stupid to keep around on any setup which is supposed to be scalable. > > Hi Tejun, > > How about this approach? > > @@ -5639,6 +5627,12 @@ struct ata_port *ata_port_alloc(struct ata_host *host) > if (!ap) > return NULL; > > + ap->qc_tags = blk_mq_init_tags(ATA_MAX_QUEUE, 1, NUMA_NO_NODE); > + if (!ap->qc_tags) { > + kfree(ap); > + return NULL; > + } This should be blk_mq_init_tags(ATA_MAX_QUEUE - 1, 1, ...) since the total depth is normal_tags + reserved_tags. Apart from that, I think it looks alright based on a cursory look. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html