a question about use of CEPH_IOC_SYNCIO in write

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi:
        I want to ask a question about CEPH_IOC_SYNCIO flag.
        I know that when using O_SYNC flag or O_DIRECT flag, write call executes in other two code paths different than using CEPH_IOC_SYNCIO flag.
        And I find the comments about CEPH_IOC_SYNCIO here:

        /*
         * CEPH_IOC_SYNCIO - force synchronous IO
         *
         * This ioctl sets a file flag that forces the synchronous IO that
         * bypasses the page cache, even if it is not necessary.  This is
         * essentially the opposite behavior of IOC_LAZYIO.  This forces the
         * same read/write path as a file opened by multiple clients when one
         * or more of those clients is opened for write.
         *
         * Note that this type of sync IO takes a different path than a file
         * opened with O_SYNC/D_SYNC (writes hit the page cache and are
         * immediately flushed on page boundaries).  It is very similar to
         * O_DIRECT (writes bypass the page cache) except that O_DIRECT writes
         * are not copied (user page must remain stable) and O_DIRECT writes
         * have alignment restrictions (on the buffer and file offset).
         */
        #define CEPH_IOC_SYNCIO _IO(CEPH_IOCTL_MAGIC, 5)

        My question is: 
        1."This forces the same read/write path as a file opened by multiple clients when one or more of those clients is opened for write." -- Does this mean multiple clients can execute in the same code path when they all use the CEPH_IOC_SYNCIO flag? Will the use of CEPH_IOC_SYNCIO in all clients bring effects such as coherency and performance?
        2."...except that O_DIRECT writes are not copied (user page must remain stable)" -- As I know when threads write with CEPH_IOC_SYNCIO flag, the write call will block until ceph osd and mds send back responses. So even with CEPH_IOC_SYNCIO flag(the user pages are not locked here, I guess), but the user cannot use these pages. How can the use of CEPH_IOC_SYNCIO flag make better use of user space memory?

_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com



[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux