Hello, Inside ahci_qc_issue() function, I see that driver always write one bit to Px.CI register even enable the NCQ. AHCI allows to fire 32 commands at one time and AHCI driver also claims itself able to queue up to 31 commands. Inside ahci.c : static struct scsi_host_template ahci_sht = { ATA_NCQ_SHT(DRV_NAME), .can_queue = AHCI_MAX_CMDS - 1, ............ Why upper layer(Block or SCSI layer) does not fill up as many as possible commands into Command List before sending the commands out (Write to Px.CI register)? How do I configure my driver so that Block layer can queue more commands into queue list? Regards, BingJiun -- 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