Re: How to feel the real time feature of XFS from userspace

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

 



Am Samstag, 9. November 2013, 15:59:37 schrieb Jeff Liu:
> On 11/09/2013 01:23 PM, harryxiyou wrote:
> > Hi all,
> > 
> > I have format block device with XFS as follows.
> > 
> > root@node2:~# mkfs.xfs -f -r rtdev=/dev/sda3 /dev/sda4
> > 
> > meta-data=/dev/sda4              isize=256    agcount=4, agsize=56122440
> > blks> 
> >          =                       sectsz=512   attr=2, projid32bit=0
> > 
> > data     =                       bsize=4096   blocks=224489757, imaxpct=25
> > 
> >          =                       sunit=0      swidth=0 blks
> > 
> > naming   =version 2              bsize=4096   ascii-ci=0
> > 
> > log      =internal log           bsize=4096   blocks=109614, version=2
> > 
> >          =                       sectsz=512   sunit=0 blks, lazy-count=1
> > 
> > realtime =/dev/sda3              extsz=4096   blocks=14865657,
> > rtextents=14865657
> > 
> > 
> > And I also write user-space codes as follows.
> > 
> > root@node2:~/test# cat xfs.c
> > #include <stdio.h>
> > #include <unistd.h>
> > #include <sys/types.h>
> > #include <sys/stat.h>
> > #include <fcntl.h>
> > #include <xfs/xfs.h>
> > #include <xfs/xfs_fs.h>
> > 
> > int main(int argc, char **argv) {
> > int fd;
> > int xfs_ret = 0;
> > 
> > fd = open("./1", O_RDWR);
> > if (fd < 0) {
> > fprintf(stderr, "open error!\n");
> > return -1;
> > }
> > xfs_ret = xfsctl("./1", fd, XFS_IOC_FSGETXATTR, NULL);
> > 
> > return 0;
> > }
> > 
> > 
> > Now, I am wondering how to feel the real time feature of XFS from
> > userspace? Could anyone please give me some suggestions? Thanks in
> > advance.
> 
> Mount your realtime device at first:
> mount -o rtdev=/dev/sda3 /dev/sda4 /mount_point
> 
> Then you need to mark the attribute bit set with XFS_XFLAG_REALTIME via
> xfsctl(3) after file creation before writing any data to the file, hence
> your demo code would looks like:
> 
> struct fsxattr	attr;
> 
> attr.fsx_xflags |= XFS_XFLAG_REALTIME;
> xfs_ret = xfsctl(target_file_path, fd, XFS_IOC_FSSETXATTR, &attr);
> ...
> 
> I would suggest you take a look at the source of xfs_rctp(8) at xfsprogs to
> get more info.
> 
> BTW, I remember Dave once mentioned that the realtime feature on Linux is
> not widely tested and not recommended for production use.

Well, this sounds scary, except from xfs_rtcp(8):

CAVEATS
       Currently,  realtime  partitions  are not supported
       under the Linux version of XFS, and use of a  real‐
       time  partition  WILL  CAUSE CORRUPTION on the data
       partition. As such, this command is made  available
       for curious DEVELOPERS ONLY at this point in time.

Especially the corruption part of it.

Whats the current state? Would be interested to know it due to the Linux 
Performance Analysis & Tuning courses I hold.

Ciao,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs





[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux