virtio-fs tests between host(x86) and dpu(arm64)

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

 



Hello,

I see that you have added multi-queue support for virtio-fs, thanks for this work.
>From your patch's commit log, your host is x86-64, dpu is arm64, but there're
differences about O_DIRECT and O_DIRECTORY between these two architectures.

Test program:
#define _GNU_SOURCE

#include <stdio.h>
#include <fcntl.h>

int main(void)
{
        printf("O_DIRECT:%o\n", O_DIRECT);
        printf("O_DIRECTORY:%o\n", O_DIRECTORY);
        return 0;
}

In x86-64, this test program outputs:
O_DIRECT:40000
O_DIRECTORY:200000

But in arm64, it outpus:
O_DIRECT:200000
O_DIRECTORY:40000

In kernel fuse module, fuse_create_in->flags will used to hold open(2)'s flags, then
a O_DIRECT flag from host(x86) would be treated as O_DIRECTORY in dpu(arm64), which
seems a serious bug.

>From your fio job, you use libaio engine, so it's assumed that direct-io is
enabled, so I wonder why you don't get errors. Could you please try below
command in your virtio-fs mount point:
  dd if=/dev/zero of=tst_file bs=4096 count=1 oflag=direct
to see whether it occurs any error.

Regards,
Xiaoguang Wang




[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux