Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Feb 2026 17:54:37 +0300
From:      Oleg Sidorkin <osidorkin@gmail.com>
To:        Mario Marietto <marietto2008@gmail.com>
Cc:        Emil Tsalapatis <emil@etsalapatis.com>,  FreeBSD virtualization <freebsd-virtualization@freebsd.org>
Subject:   Re: RFC: Kernel virtiofs driver
Message-ID:  <CAGw%2BupJwd_1EMi9az3CRKcNoDa7W4fk1jaMsQ13O_2eopeh4tg@mail.gmail.com>
In-Reply-To: <CA%2B1FSihMEBiJcnxHii5YkynsvD7FNJsv2BXP10L9-wfZyrGZ4Q@mail.gmail.com>
References:  <CABFh=a5HoDOHthe%2BavAAxpb3YN4W3FAGqCysdbyrBbr4Rw7rMg@mail.gmail.com> <CA%2B1FSijd9Cgr7KAL_pD0ACCr7%2BGTMoXR9zQ=skNVFdkstP6KJA@mail.gmail.com> <CAGw%2BupJBFpm3ghkHqxO27TEqS_y2ruvPm=%2B76fmSFKCU-qYmmg@mail.gmail.com> <CA%2B1FSihMEBiJcnxHii5YkynsvD7FNJsv2BXP10L9-wfZyrGZ4Q@mail.gmail.com>

index | next in thread | previous in thread | raw e-mail

чт, 12 февр. 2026 г. в 20:15, Mario Marietto <marietto2008@gmail.com>:
>
> --> Panics guest system in a few minutes (everything is ok when /obj is...
>
> FreeBSD 16 is working in progress ; virtiofs is work in progress...what do you expect ?

p9fs has been in the base system since 15.0 AFAIK, and it doesn't
receive many fixes.
virtiofs (a.k.a. fuse over virtual socket) was created in linux world
because plan9 abstractions didn't fit linux VFS layer well.
Since Linux VFS and FreeBSD VFS both have to handle POSIX API, they
have to be a little similar.
So I expect less bugs.

>
> On Thu, Feb 12, 2026 at 3:01 PM Oleg Sidorkin <osidorkin@gmail.com> wrote:
>>
>> Hello.
>>
>> My favorite test to run in bhyve guest:
>>
>> root@:/usr/src # uname -a
>> FreeBSD  16.0-CURRENT FreeBSD 16.0-CURRENT #1
>> main-n283712-16c902f05853: Sat Feb  7 02:10:47 MSK 2026
>> olsi@:/usr/obj/usr/src/amd64.amd64/sys/QUADKERNEL amd64
>> root@:/usr/src # mount
>> /dev/vtbd0p2 on / (ufs, local, soft-updates, journaled soft-updates)
>> devfs on /dev (devfs)
>> obj on /usr/obj (p9fs, local)
>> 192.168.2.1:/vms/freebsd-current/usr/home on /usr/home (nfs)
>> 192.168.2.1:/vms/freebsd-current/usr/src on /usr/src (nfs)
>> 192.168.2.1:/vms/freebsd-current/usr/lib/debug on /usr/lib/debug (nfs)
>> 192.168.2.1:/usr/ports/distfiles on /usr/ports/distfiles (nfs)
>> root@:/usr/src # make -j4 buildworld buildkernel
>>
>> Panics guest system in a few minutes (everything is ok when /obj is
>> mounted over nfs):
>>
>> db> bt
>> Tracing pid 2248 tid 100165 td 0xfffff80100eb8780
>> kdb_enter() at kdb_enter+0x33/frame 0xfffffe006833e560
>> panic() at panic+0x43/frame 0xfffffe006833e5c0
>> freevnode() at freevnode+0x2d5/frame 0xfffffe006833e620
>> vput_final() at vput_final+0x96/frame 0xfffffe006833e670
>> vfs_hash_insert() at vfs_hash_insert+0x226/frame 0xfffffe006833e6c0
>> p9fs_vget_common() at p9fs_vget_common+0x39b/frame 0xfffffe006833e770
>> p9fs_lookup() at p9fs_lookup+0x4ad/frame 0xfffffe006833e8c0
>> VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0x57/frame 0xfffffe006833e8f0
>> vfs_lookup() at vfs_lookup+0x5aa/frame 0xfffffe006833e980
>> namei() at namei+0x35d/frame 0xfffffe006833e9e0
>> kern_execve() at kern_execve+0x2d1/frame 0xfffffe006833ed80
>> sys_execve() at sys_execve+0x54/frame 0xfffffe006833ee00
>> amd64_syscall() at amd64_syscall+0x169/frame 0xfffffe006833ef30
>> fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe006833ef30
>> --- syscall (59, FreeBSD ELF64, execve), rip = 0x2cc73682f46a, rsp =
>> 0x2cc731eb2028, rbp = 0x2cc731eb2170 ---
>> db>
>>
>> I'll be really happy to test virtiofs and I hope it will do better.
>>
>> Thanks
>>
>> вт, 10 февр. 2026 г. в 09:57, Mario Marietto <marietto2008@gmail.com>:
>> >
>> > Hello Emil,
>> >
>> > Inside a FreeBSD guest OS (15.0-RELEASE) I do :
>> >
>> > kldload virtio_p9fs
>> >
>> > kldload p9fs_load
>> >
>> > mount -t p9fs sharename /mnt/host
>> >
>> > This works for me,I can share files between FreeBSD 15.0 guest and FreeBSD 14.3 host os. So,what's missing in this case and which features you added ?
>> >
>> > Thanks.
>> >
>> >
>> >
>> > On Tue, Feb 10, 2026 at 4:05 AM Emil Tsalapatis <emil@etsalapatis.com> wrote:
>> >>
>> >> Hi everyone,
>> >>
>> >>     I recently finished the virtiofs driver and it is now ready for review. The device allows for sharing directories between a FreeBSD guest and a host.
>> >>
>> >> The driver really is two components:
>> >>
>> >> 1) The virtio device that sends FUSE tickets to and from the host: D46295
>> >> 2) The file system that gets mounted in the guest: D46296.
>> >>
>> >> To test it you need a couple additional fixes/workarounds for FUSE-related issues. You can grab a working tree here or apply diffs D55047 and D55046. D55046 is a workaround, but still prevents an assertion failure related to FUSE caching until the underlying issue is properly fixed on HEAD.
>> >>
>> >> To use it, make sure you are creating virtiofs device on the host then from the FreeBSD guest run
>> >>
>> >> mount -t virtiofs <tag> <mountpoint>
>> >>
>> >> where <tag> is the name tag you gave to the virtiofs device in the host VMM.
>> >>
>> >> Reviews and testing welcome!
>> >>
>> >> Thanks,
>> >> Emil
>> >>
>> >>
>> >
>> >
>> > --
>> > Mario.
>>
>>
>>
>> --
>> Oleg Sidorkin
>
>
>
> --
> Mario.



-- 
Oleg Sidorkin


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGw%2BupJwd_1EMi9az3CRKcNoDa7W4fk1jaMsQ13O_2eopeh4tg>