From nobody Thu May 14 00:30:46 2026 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gGB8C0ShJz6dJN2 for ; Thu, 14 May 2026 00:31:07 +0000 (UTC) (envelope-from rick.macklem@gmail.com) Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gGB8B1QX9z46c3 for ; Thu, 14 May 2026 00:31:06 +0000 (UTC) (envelope-from rick.macklem@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20251104 header.b="GZB/pHfn"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of rick.macklem@gmail.com designates 2a00:1450:4864:20::531 as permitted sender) smtp.mailfrom=rick.macklem@gmail.com; arc=pass ("google.com:s=arc-20240605:i=1") Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-67b8d9c26bbso13434868a12.2 for ; Wed, 13 May 2026 17:31:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1778718659; cv=none; d=google.com; s=arc-20240605; b=Np1xojr4PC5IdKD7h5aHOnyTUA3G3+3k+lMKJnuNVdc88hsq+8MsCQWdIYahCBc4ha hlpd4zU6mJBIZ6qvDOWHPw8JhGrvrZmv+XajUnN7T6I55eqn5ixQmwM8n+7VNf3o1xfX KS6wLpOPdAkZCEADA3ionfK1il0bwzez55WBydAneYl154Dt9DfkZLcJLPpog46DeHP4 R2T/FZxgBwKQLDv3mN0J14CGu5vIn54g7IADpQ52VUoVF9GFHUXdmWVZBNIGJ+Mhx3LK AOEe7Bp//FrRmiMG4hg6VIWlYA7Af+LpZIvonBOqFqt8SCOW/mfvMdcafX0UHpWPgafR Ql5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=3pJx8bPBgoY9misn8TPzu42VE62f21vWHWTZalKDBpQ=; fh=/2t7RDVHVL+DuRZdfZ/FkHktsvSS6cz2dKFTm0B9krs=; b=DCs5l3mgMHvTHt+4VoE6P8DoGJBOx43fbs5t3CRs2d040t4MeBF3v24RaA+iXXKZU3 VAStQx4VfoR9V+5az4F57nV6v+nLgb66RtJr+DLmZeN59dNdrlNXz+akNAqLyo6BjqI+ 9ljE3k0bZbaMTmwTpV8Q6B67hsEB+bbhZJ8pO1YcfQ6CwIqbOlugrii6Cs7WUbHxw+tr 2VKG1yCQDbb+ElHwJkbqvm4LLTyPLJtrLGdUQb7hjR45keymiXjo/xhFWru24UaGIqwL toi8IFS0n/BD4OXSGR5WC/LS7EDskT4TV55zA61W3VKlrCpIriMJop386q05Az9GpfVr JH3A==; darn=freebsd.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778718659; x=1779323459; darn=freebsd.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=3pJx8bPBgoY9misn8TPzu42VE62f21vWHWTZalKDBpQ=; b=GZB/pHfndOTFGgfLzsOp3FJHnvqFEEDKj0ofGek46RwY9hfWGWp2O7cJiKxnNljM+9 w0Tsra+RtO/l4fkXQKg7NjWljY3lElZi2qgdvn7zLLLC5elO0ygjQSrPbp2ySqb5mDm3 Zm1FSerPl00RkAhDOiug7r4Pna1K4UmAxy00itaIVwikLBGJr7MRYJOzl0beO/uLHIEx rpjbGOZFqVgzO/CQInNK5g3/TpfQZ4D7t9vseBBJMhwjbusrNGed7ezT1GndVTrq/VOb Si0Aru+Sn0xQ4rNNHptrvz9Bk71gxT8A7cpvcjvRDrXIJQmovQvSphKxUMGFG32Ij38T POTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778718659; x=1779323459; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=3pJx8bPBgoY9misn8TPzu42VE62f21vWHWTZalKDBpQ=; b=IFVyckYc8hxAebZja1rnrCzqGoiTD2k4NAc9muoONoIdqDawjCD5tuZZUEssufRFn/ gEPG7GPlZyT8MI3GXAw8FVt+Ai7cMWb9FUUSR+CdwZrUEyT8j7oVtmWoVvsCtkZpFJm4 1hghWGP405HDFdJACU8fUctZ6FZDEKjnfaOSA0shsnyGWIOouCgq1O+b3dGoxrFqYkOj 9bqJzp36UgK7+Ch9S8YK2ujvxtbpMyktz+udOcAl2ywdejC/jciN1yV0LxpXnT7xDQXC qvB+2GoMCTibnD03GL6B1qjP/rrpUaaXMx5vrL4ejkUuiCkMeg5UR8Qk4JaOI0fr7bof hPxQ== X-Gm-Message-State: AOJu0YzJx1KMXsCsFr/o7yMyri7iSD3wMj+P5acsQ6RLDjTH1+piA3a7 5JLfQTQ9aoyGmAfNEykT+RRA+HxQZPCixkdVL72xFEoBNlIamW/SeOkaEpY90fnkGyfA8ymrtUZ dG+pAXl7b23YwqwzSXoz28MXYs8xT9nSeauI= X-Gm-Gg: Acq92OHHiN0rydh9umINZV3rN9IbH3D7HFCBWGy9isRgpQnMj1/3DNoAEsVIW66cyxf OaqyL0D0DoY/9uWS9e7IfU8oLzI+yKPwE9euGSG2iugxoMn2XI1fzF24JHKwwznQDRZWvUV7PgJ R06FxxNLpKZv1zKFyWEk4nZdFOkiOpE8KVSgZZRybhT3mIT5qqaGsCEHNZtp79x6/o0JdxRDXzu PWUPOKiK1u0Bam+oEvD2u2hknOK/Zkl5jdZmCCaIoDTR6BdfqUbTE+V0ejKGofgHQoPhBMxMRPe e8hj2QdJmQTduiMvSey9n9dUiB6Cw72TFSNjBroADoNLwkojyA== X-Received: by 2002:a05:6402:e0f:b0:671:121e:dd4a with SMTP id 4fb4d7f45d1cf-682a6e08183mr2896406a12.5.1778718658430; Wed, 13 May 2026 17:30:58 -0700 (PDT) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 From: Rick Macklem Date: Wed, 13 May 2026 17:30:46 -0700 X-Gm-Features: AVHnY4LJTWnntYVwH0mCvwkxlgFTeRiF2tSmgp5SYLtn4Lq259AZt7TgtfFJ8v8 Message-ID: Subject: RFC: what to do about KASSERT() in allocuio()? To: FreeBSD CURRENT Content-Type: text/plain; charset="UTF-8" X-Spamd-Result: default: False [-2.39 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; SUBJECT_ENDS_QUESTION(1.00)[]; ARC_ALLOW(-1.00)[google.com:s=arc-20240605:i=1]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_SPAM_SHORT(0.61)[0.612]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4864::/56]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20251104]; MIME_GOOD(-0.10)[text/plain]; TO_DN_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_ONE(0.00)[1]; FREEMAIL_ENVFROM(0.00)[gmail.com]; FREEMAIL_FROM(0.00)[gmail.com]; TAGGED_FROM(0.00)[]; MISSING_XM_UA(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; MID_RHS_MATCH_FROMTLD(0.00)[]; RCVD_COUNT_ONE(0.00)[1]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::531:from] X-Spamd-Bar: -- X-Rspamd-Queue-Id: 4gGB8B1QX9z46c3 Hi, The following KASSERT() is at the beginning of allocuio(): KASSERT(iovcnt <= UIO_MAXIOV, ("Requested %u iovecs exceed UIO_MAXIOV", iovcnt)); This fails for the NFS server if it is configured for > 1Mbyte I/O size, since the number of elements (mbufs) for the VOP_READ() exceeds UIO_MAXIOV (1024). This shows up because ZFS does a cloneuio() call which calls allocuio(). Since UIO_MAXIOV is used is several places, including setting the limit for copyinuio() and freebsd32_copyinuio(), I don't think changing the value of UIO_MAXIOV is an appropriate fix. (ie. This changes the APIs, etc.) Now, since all that the above check does it set a sanity limit on how big the allocated uio can be, do you think it is reasonable to change the above KASSERT() to: KASSERT(iovcnt <= 4096, ("Requested %u iovecs exceed 4096", iovcnt)); which would allow a 4Mbyte NFS I/O to work. Note that copyinuio() and freebsd32_copyinuio() check the iov length for < UIO_MAXIOV before calling allocuio(), so those interfaces are not broken by this. So, what do others think? rick