O_DIRECT tends to be used in specialised applications. They're
being silly if they're reading from holes.
> And on the grounds that a memset() is going to be a lot faster
> than a read from device I don't see why it shouldn't be done.
It's actually tons more expensive - wiping the page by hand
goes against the whole reason for using O_DIRECT.
But it is the expected behaviour of the read() system call
so yeah, I'll do it.
> ...
> [ get_blocks() stuff ]
>
This is going to be fairly involved. Probably the top-level
IO code gets ripped up and redone to expect a get_blocks()
interface. A default implementation of get_blocks() would
be provided for naive filesystems - it just calls get_block()
a lot. Quite possibly, we say to heck with purity and get_block()
and get_blocks() become a_ops, too.
I'd really like to see a solid reason for doing all this.
That means numbers ;) Even good old ext2 would be able to show
benefit from batching up the get_block() work, but not a lot.
You won't buy much on writes, I expect - 8k write requests
will probably remain the ideal size.
-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/