Dan Ehrenberg <dehrenberg@xxxxxxxxxx> writes: > This code introduces a fast-path variant of __blockdev_direct_IO > for the special case where the request size is a multiple of the page > size, the inode block size is a page, the user memory is page-aligned, > the underlying storage is contiguous on disk and the file location is > already initialized. The special case decreases the amount of > bookkeeping required, which saves a significant amount of CPU time on > a fast device such as a ramdisk or an SSD. The patch is inspired by > earlier code by Ken Chen. Is it understood why your fast path is that much faster? i.e. what's the slow part in the normal path that it avoids? I am wondering if some of the improvements could be gotten even for less rigid pre conditions. > + /* > + * The i_alloc_sem will be released at I/O completion, > + * possibly in a different thread. > + */ > + down_read_non_owner(&inode->i_alloc_sem); There's just a patch kit posted from hch which removes that semaphore. -Andi -- ak@xxxxxxxxxxxxxxx -- Speaking for myself only -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html