[Virtio-fs] [Qemu] how to use viriofs in qemu without NUMA

Vivek Goyal vgoyal at redhat.com
Tue Jul 12 12:33:18 UTC 2022


On Tue, Jul 12, 2022 at 07:06:50AM +0000, Zhao, Shirley wrote:
> Hi, all, 
> 
> I have another question want to consult you. 
> To enable DAX in virtiofs, according to the memu https://virtio-fs.gitlab.io/howto-qemu.html. 
> I need to add "cache-size=2G" as below. 
> -device vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=myfs,cache-size=2G
> 
> My qemu command is: 
> sudo qemu-system-x86_64 -M pc -cpu host --enable-kvm -smp 2 -m 4G -drive if=virtio,file=ubuntu.img -object memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on -machine q35,memory-backend=mem -chardev socket,id=char0,path=/tmp/vhostqemu -device vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=myfs_root,cache-size=2G -chardev stdio,mux=on,id=mon -mon chardev=mon,mode=readline -device virtio-serial-pci -device virtconsole,chardev=mon -vga none -display none
> 
> And virtiofsd command is:
> sudo ./virtiofsd --socket-path=/tmp/vhostqemu -o source=/home/shirley/testdir -o cache=always
> 
> But there is no option of "cache-size" in qemu 6.0, like below. So how to enable it? 

Hi Shirley,

DAX support in qemu is not upstream yet. We are carrying DAX patches
out of the tree on a branch here.

https://gitlab.com/virtio-fs/qemu/-/commits/virtio-fs-dev

There are some changes required and David Gilbert is looking into
making these changes. I am hoping at some point of time these patches
will make into upstream.

So for the time being, to test DAX, you will have to fetch above branch,
build it and use that qemu.

Thanks
Vivek

> qemu-6.0.0$ qemu-system-x86_64 -device vhost-user-fs-pci,help
> vhost-user-fs-pci options:
>   acpi-index=<uint32>    -  (default: 0)
>   addr=<int32>           - Slot and optional function number, example: 06.0 or 06 (default: -1)
>   aer=<bool>             - on/off (default: false)
>   any_layout=<bool>      - on/off (default: true)
>   ats=<bool>             - on/off (default: false)
>   bootindex=<int32>
>   chardev=<str>          - ID of a chardev to use as a backend
>   event_idx=<bool>       - on/off (default: true)
>   failover_pair_id=<str>
>   indirect_desc=<bool>   - on/off (default: true)
>   iommu_platform=<bool>  - on/off (default: false)
>   migrate-extra=<bool>   - on/off (default: true)
>   modern-pio-notify=<bool> - on/off (default: false)
>   multifunction=<bool>   - on/off (default: false)
>   notify_on_empty=<bool> - on/off (default: true)
>   num-request-queues=<uint16> -  (default: 1)
>   packed=<bool>          - on/off (default: false)
>   page-per-vq=<bool>     - on/off (default: false)
>   queue-size=<uint16>    -  (default: 128)
>   rombar=<uint32>        -  (default: 1)
>   romfile=<str>
>   romsize=<uint32>       -  (default: 4294967295)
>   tag=<str>
>   use-disabled-flag=<bool> -  (default: true)
>   use-started=<bool>     -  (default: true)
>   vectors=<uint32>       -  (default: 4294967295)
>   virtio-backend=<child<vhost-user-fs-device>>
>   virtio-pci-bus-master-bug-migration=<bool> - on/off (default: false)
>   x-ats-page-aligned=<bool> - on/off (default: true)
>   x-disable-legacy-check=<bool> -  (default: false)
>   x-disable-pcie=<bool>  - on/off (default: false)
>   x-ignore-backend-features=<bool> -  (default: false)
>   x-pcie-deverr-init=<bool> - on/off (default: true)
>   x-pcie-extcap-init=<bool> - on/off (default: true)
>   x-pcie-flr-init=<bool> - on/off (default: true)
>   x-pcie-lnkctl-init=<bool> - on/off (default: true)
>   x-pcie-lnksta-dllla=<bool> - on/off (default: true)
>   x-pcie-pm-init=<bool>  - on/off (default: true) 
> 
> 
> -----Original Message-----
> From: Zhao, Shirley 
> Sent: Friday, July 8, 2022 8:40 AM
> To: Dr. David Alan Gilbert <dgilbert at redhat.com>
> Cc: Thomas Huth <thuth at redhat.com>; qemu-devel at nongnu.org; virtio-fs at redhat.com; Stefan Hajnoczi <stefanha at redhat.com>
> Subject: RE: [Qemu] how to use viriofs in qemu without NUMA
> 
> Yes, the qemu version is too old. 
> My previous qemu version is 4.2, and I upgraded it into 6.0, and it worked now. 
> Thanks a lot. 
> 
> - Shirley 
> 
> -----Original Message-----
> From: Dr. David Alan Gilbert <dgilbert at redhat.com>
> Sent: Tuesday, July 5, 2022 5:37 PM
> To: Zhao, Shirley <shirley.zhao at intel.com>
> Cc: Thomas Huth <thuth at redhat.com>; qemu-devel at nongnu.org; virtio-fs at redhat.com; Stefan Hajnoczi <stefanha at redhat.com>
> Subject: Re: [Qemu] how to use viriofs in qemu without NUMA
> 
> * Zhao, Shirley (shirley.zhao at intel.com) wrote:
> > Thanks for the information. 
> > Yes, I also found the memory backend options on s390x, and also copy the command to x86, but failed. 
> > 
> > The following is the command used to start qemu + virtiofs + ubuntu 20.04. 
> > One is worked well using NUMA, another one is failed without NUMA. 
> > Is there anything wrong? 
> > 
> > The worked one with NUMA options: 
> > 
> > qemu-system-x86_64 -M pc -cpu host --enable-kvm -smp 2 -m 4G -object 
> > memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on -numa 
> > node,memdev=mem -chardev socket,id=char0,path=/tmp/vfsd.sock -device 
> > vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=myfs -chardev 
> > stdio,mux=on,id=mon -mon chardev=mon,mode=readline -device 
> > virtio-serial-pci -device virtconsole,chardev=mon -vga none -display 
> > none -drive if=virtio,file=ubuntu.img
> > 
> > The failed one without NUMA options: 
> > 
> > qemu-system-x86_64 -M pc -cpu host --enable-kvm -smp 2 -m 4G -object 
> > memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on -machine 
> > q35,memory-backend=mem -chardev socket,id=char0,path=/tmp/vfsd.sock
> > -device vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=myfs
> > -chardev stdio,mux=on,id=mon -mon chardev=mon,mode=readline -device 
> > virtio-serial-pci -device virtconsole,chardev=mon -vga none -display 
> > none -drive if=virtio,file=ubuntu.img
> 
> What error did it give?
> 
> 20.04 is quite old, what qemu version is it?
> 
> I'd have to check when the memdev= went in.
> 
> Dave
> 
> > 
> > Thanks. 
> > - Shirley
> > 
> > -----Original Message-----
> > From: Dr. David Alan Gilbert <dgilbert at redhat.com>
> > Sent: Tuesday, July 5, 2022 4:04 PM
> > To: Thomas Huth <thuth at redhat.com>
> > Cc: Zhao, Shirley <shirley.zhao at intel.com>; qemu-devel at nongnu.org; 
> > virtio-fs at redhat.com; Stefan Hajnoczi <stefanha at redhat.com>
> > Subject: Re: [Qemu] how to use viriofs in qemu without NUMA
> > 
> > * Thomas Huth (thuth at redhat.com) wrote:
> > > On 05/07/2022 03.02, Zhao, Shirley wrote:
> > > > Hi, all,
> > > > 
> > > > I want to use virtiofs to share folder between host and guest.
> > > > 
> > > >  From the guide, it must set the NUMA node.
> > > > https://virtio-fs.gitlab.io/howto-qemu.html
> > > > 
> > > > But my guest doesn’t support NUMA.
> > > > 
> > > > Is there any guide to use qemu + virtiofs without NUMA?
> > > > 
> > > > Or does qemu have any plan to support it?
> > > 
> > >  Hi!
> > > 
> > > At least on s390x, you can also specify the memory backend via the 
> > > -machine option instead of using the -numa option, e.g.:
> > > 
> > >  qemu-system-s390x -machine memory-backend=mem \
> > >   -object memory-backend-file,id=mem,...
> > > 
> > > Not sure whether that works on other architectures, too, though. 
> > > Stefan, David, do you know?
> > 
> > Right, that's the way I do it on x86.
> > We wrote virtiofs before the memory-backend option existed, which is why the old docs talk about using the NUMA stuff.
> > 
> > Dave
> > 
> > >  Thomas
> > > 
> > --
> > Dr. David Alan Gilbert / dgilbert at redhat.com / Manchester, UK
> > 
> --
> Dr. David Alan Gilbert / dgilbert at redhat.com / Manchester, UK
> 
> _______________________________________________
> Virtio-fs mailing list
> Virtio-fs at redhat.com
> https://listman.redhat.com/mailman/listinfo/virtio-fs


More information about the Virtio-fs mailing list