On Thu, Jan 20, 2022 at 06:36:03PM -0800, Darrick J. Wong wrote:
> Sure.  How's this?  I couldn't think of a real case of directio
> requiring different alignments for pos and bytecount, so the only real
> addition here is the alignment requirements for best performance.

While I see some benefits of adding the information to a catchall like
statx we really need to be careful to not bloat the structure like
crazy.

> struct statx {
> ...
>       /* 0x90 */
>       __u64   stx_mnt_id;
> 
>       /* Memory buffer alignment required for directio, in bytes. */
>       __u32   stx_dio_mem_align;
> 
>       /* File range alignment required for directio, in bytes. */
>       __u32   stx_dio_fpos_align_min;

So this really needs a good explanation why we need both iven that we
had no real use case for this.

>       /* File range alignment needed for best performance, in bytes. */
>       __u32   stx_dio_fpos_align_opt;

And why we really care about this.  I guess you want to allow sector
size dio in reflink setups, but discourage it.  But is this really as
important?

>       /* Maximum size of a directio request, in bytes. */
>       __u32   stx_dio_max_iosize;

I know XFS_IOC_DIOINFO had this, but does it really make much sense?
Why do we need it for direct I/O and not buffered I/O?


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to