Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Feb 2026 18:14:40 +0100
From:      Mario Marietto <marietto2008@gmail.com>
To:        Oleg Sidorkin <osidorkin@gmail.com>
Cc:        Emil Tsalapatis <emil@etsalapatis.com>,  FreeBSD virtualization <freebsd-virtualization@freebsd.org>
Subject:   Re: RFC: Kernel virtiofs driver
Message-ID:  <CA%2B1FSihMEBiJcnxHii5YkynsvD7FNJsv2BXP10L9-wfZyrGZ4Q@mail.gmail.com>
In-Reply-To: <CAGw%2BupJBFpm3ghkHqxO27TEqS_y2ruvPm=%2B76fmSFKCU-qYmmg@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>

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

[-- Attachment #1 --]
--> 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 ?

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.

[-- Attachment #2 --]
<div dir="ltr"><div>--&gt; Panics guest system in a few minutes (everything is ok when /obj is...</div><div><br></div><div>FreeBSD 16 is working in progress ; virtiofs is work in progress...what do you expect ? </div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Thu, Feb 12, 2026 at 3:01 PM Oleg Sidorkin &lt;<a href="mailto:osidorkin@gmail.com">osidorkin@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello.<br>
<br>
My favorite test to run in bhyve guest:<br>
<br>
root@:/usr/src # uname -a<br>
FreeBSD  16.0-CURRENT FreeBSD 16.0-CURRENT #1<br>
main-n283712-16c902f05853: Sat Feb  7 02:10:47 MSK 2026<br>
olsi@:/usr/obj/usr/src/amd64.amd64/sys/QUADKERNEL amd64<br>
root@:/usr/src # mount<br>
/dev/vtbd0p2 on / (ufs, local, soft-updates, journaled soft-updates)<br>
devfs on /dev (devfs)<br>
obj on /usr/obj (p9fs, local)<br>
192.168.2.1:/vms/freebsd-current/usr/home on /usr/home (nfs)<br>
192.168.2.1:/vms/freebsd-current/usr/src on /usr/src (nfs)<br>
192.168.2.1:/vms/freebsd-current/usr/lib/debug on /usr/lib/debug (nfs)<br>
192.168.2.1:/usr/ports/distfiles on /usr/ports/distfiles (nfs)<br>
root@:/usr/src # make -j4 buildworld buildkernel<br>
<br>
Panics guest system in a few minutes (everything is ok when /obj is<br>
mounted over nfs):<br>
<br>
db&gt; bt<br>
Tracing pid 2248 tid 100165 td 0xfffff80100eb8780<br>
kdb_enter() at kdb_enter+0x33/frame 0xfffffe006833e560<br>
panic() at panic+0x43/frame 0xfffffe006833e5c0<br>
freevnode() at freevnode+0x2d5/frame 0xfffffe006833e620<br>
vput_final() at vput_final+0x96/frame 0xfffffe006833e670<br>
vfs_hash_insert() at vfs_hash_insert+0x226/frame 0xfffffe006833e6c0<br>
p9fs_vget_common() at p9fs_vget_common+0x39b/frame 0xfffffe006833e770<br>
p9fs_lookup() at p9fs_lookup+0x4ad/frame 0xfffffe006833e8c0<br>
VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0x57/frame 0xfffffe006833e8f0<br>
vfs_lookup() at vfs_lookup+0x5aa/frame 0xfffffe006833e980<br>
namei() at namei+0x35d/frame 0xfffffe006833e9e0<br>
kern_execve() at kern_execve+0x2d1/frame 0xfffffe006833ed80<br>
sys_execve() at sys_execve+0x54/frame 0xfffffe006833ee00<br>
amd64_syscall() at amd64_syscall+0x169/frame 0xfffffe006833ef30<br>
fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe006833ef30<br>
--- syscall (59, FreeBSD ELF64, execve), rip = 0x2cc73682f46a, rsp =<br>
0x2cc731eb2028, rbp = 0x2cc731eb2170 ---<br>
db&gt;<br>
<br>
I&#39;ll be really happy to test virtiofs and I hope it will do better.<br>
<br>
Thanks<br>
<br>
вт, 10 февр. 2026 г. в 09:57, Mario Marietto &lt;<a href="mailto:marietto2008@gmail.com" target="_blank">marietto2008@gmail.com</a>&gt;:<br>
&gt;<br>
&gt; Hello Emil,<br>
&gt;<br>
&gt; Inside a FreeBSD guest OS (15.0-RELEASE) I do :<br>
&gt;<br>
&gt; kldload virtio_p9fs<br>
&gt;<br>
&gt; kldload p9fs_load<br>
&gt;<br>
&gt; mount -t p9fs sharename /mnt/host<br>
&gt;<br>
&gt; This works for me,I can share files between FreeBSD 15.0 guest and FreeBSD 14.3 host os. So,what&#39;s missing in this case and which features you added ?<br>
&gt;<br>
&gt; Thanks.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Feb 10, 2026 at 4:05 AM Emil Tsalapatis &lt;<a href="mailto:emil@etsalapatis.com" target="_blank">emil@etsalapatis.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi everyone,<br>
&gt;&gt;<br>
&gt;&gt;     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.<br>
&gt;&gt;<br>
&gt;&gt; The driver really is two components:<br>
&gt;&gt;<br>
&gt;&gt; 1) The virtio device that sends FUSE tickets to and from the host: D46295<br>
&gt;&gt; 2) The file system that gets mounted in the guest: D46296.<br>
&gt;&gt;<br>
&gt;&gt; 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.<br>
&gt;&gt;<br>
&gt;&gt; To use it, make sure you are creating virtiofs device on the host then from the FreeBSD guest run<br>
&gt;&gt;<br>
&gt;&gt; mount -t virtiofs &lt;tag&gt; &lt;mountpoint&gt;<br>
&gt;&gt;<br>
&gt;&gt; where &lt;tag&gt; is the name tag you gave to the virtiofs device in the host VMM.<br>
&gt;&gt;<br>
&gt;&gt; Reviews and testing welcome!<br>
&gt;&gt;<br>
&gt;&gt; Thanks,<br>
&gt;&gt; Emil<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Mario.<br>
<br>
<br>
<br>
-- <br>
Oleg Sidorkin<br>
</blockquote></div><div><br clear="all"></div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature">Mario.<br></div>
home | help

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