On Tue, 2006-04-11 at 23:06 +0900, Tejun Heo wrote: > 1438492c4408fc908d3fb5865fd56231360a2fcd > diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c > index 0206791..610f963 100644 > --- a/drivers/scsi/libata-core.c > +++ b/drivers/scsi/libata-core.c > @@ -72,6 +72,8 @@ static void ata_dev_xfermask(struct ata_ > static unsigned int ata_unique_id = 1; > static struct workqueue_struct *ata_wq; > > +struct workqueue_struct *ata_hotplug_wq; > + > int atapi_enabled = 1; > module_param(atapi_enabled, int, 0444); > MODULE_PARM_DESC(atapi_enabled, "Enable discovery of ATAPI devices (0=off, 1=on)"); > @@ -5300,6 +5302,12 @@ static int __init ata_init(void) > if (!ata_wq) > return -ENOMEM; > > + ata_hotplug_wq = create_workqueue("ata_hotplug"); > + if (!ata_hotplug_wq) { > + destroy_workqueue(ata_wq); > + return -ENOMEM; > + } > + > printk(KERN_DEBUG "libata version " DRV_VERSION " loaded.\n"); > return 0; > } create_workqueue() creates one workqueue for each logic CPU in the system, so when loading libata.ko in a system with 8 CPU's 8 work queues for ata_hotplug will be created. Does it make sense to use create_singlethread_workqueue() to create only one workqueue for ata_hotplug since hotplug is not the operation happened with high frequency? Thanks, Forrest - : 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