On 12/11/12 01:00, scameron@xxxxxxxxxxxxxxxxxx wrote:
The driver, like nvme, has a submit and reply queue per cpu.
This is interesting. If my interpretation of the POSIX spec is correct then aio_write() allows to queue overlapping writes and all writes submitted by the same thread have to be performed in the order they were submitted by that thread. What if a thread submits a first write via aio_write(), gets rescheduled on another CPU and submits a second overlapping write also via aio_write() ? If a block driver uses one queue per CPU, does that mean that such writes that were issued in order can be executed in a different order by the driver and/or hardware than the order in which the writes were submitted ?
See also the aio_write() man page, The Open Group Base Specifications Issue 7, IEEE Std 1003.1-2008 (http://pubs.opengroup.org/onlinepubs/9699919799/functions/aio_write.html).
Bart. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html