Date: Tue, 17 Mar 2026 13:41:34 -0700 From: Rick Macklem <rick.macklem@gmail.com> To: FreeBSD CURRENT <freebsd-current@freebsd.org> Subject: RFC: Does allocuio() need the UIO_MAXIOV KASSERT? Message-ID: <CAM5tNy4NuApQqXH05e9AjHGxVdidpBXKZaYR45pkzSc6b8XVmw@mail.gmail.com>
index | next in thread | raw e-mail
Hi,
There has been a push in the NFSv4 world to support
I/O RPCs even larger than 1Mbyte, which is currently
the limit in FreeBSD.
But increasing this, there is a glitch..
ZFS calls cloneuio(), which calls allocuio() that
triggers this KASSERT().
KASSERT(iovcnt <= UIO_MAXIOV,
("Requested %u iovecs exceed UIO_MAXIOV", iovcnt));
For a large write RPC, the server handles a list of
mbuf clusters as the iov. A 4Mbyte write will be in more
than 2K clusters.
Note that copyinuio() and copyoutuio() check for the
length exceeding UIO_MAXIOV, so I don't see any
reason for allocuio() needing this KASSERT()?
Can I get rid of it? rick
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAM5tNy4NuApQqXH05e9AjHGxVdidpBXKZaYR45pkzSc6b8XVmw>
