From nobody Tue Mar 17 20:41:34 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 4fb3m55qX0z6Vb26 for ; Tue, 17 Mar 2026 20:41:57 +0000 (UTC) (envelope-from rick.macklem@gmail.com) Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) (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 4fb3m50YBqz45yG for ; Tue, 17 Mar 2026 20:41:57 +0000 (UTC) (envelope-from rick.macklem@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=fiCV2Xo4; dmarc=pass (policy=none) header.from=gmail.com; arc=pass ("google.com:s=arc-20240605:i=1"); spf=pass (mx1.freebsd.org: domain of rick.macklem@gmail.com designates 2a00:1450:4864:20::532 as permitted sender) smtp.mailfrom=rick.macklem@gmail.com Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-661be3380adso11333936a12.3 for ; Tue, 17 Mar 2026 13:41:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773780108; cv=none; d=google.com; s=arc-20240605; b=MNGVknJyHvWj3mzxPnvKqUblV/9VjUuMwjDRS3n5x4dpppvY/Ng7tNMSfWujKq9lHv BjTn9Y1vEsBiRv0RHPE+lroFSik+1gbE6zLm+AvsJ15Kh434Jt+t2cA/9kX+iZrzcukZ V8mmsGPxDdkcyq2uwzHPtKQ/C6rG4mZakZ9ip+KoTt2wpPXzcA6OWVjtk+AuWa+3wlsx txuKXd2ZW88XEcnDkrG1zzDWsPCtLyF11p9h9z2JaoDn2CF4fA6gU8Rf/rX1fwKw2+8W XW/RoKGQ2k/zLnoHnl4kYm11ZH4rJY4furN2xBFrLxW9EqMUefIXaAt/qBhIsn6I/7Ok /q8w== 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=20uplrSp7QQV7Wb7CYOi0SR1UsQ+wgGSCWBvtn6up9E=; fh=/2t7RDVHVL+DuRZdfZ/FkHktsvSS6cz2dKFTm0B9krs=; b=Cy9XCrtPjL8ufp6g3f2TfVA26XFypes4hYnIVlTqr6WSevUnMckGw15CKr31WtiRjT PxwdlzRwke0SkrnCX7KYTG7knAHah1Zwe2RHzqVgX6WrXje7h5xn9qL8hoEEh+a1ihUc 6uF3NRWKVULr2dVTlYX13xHji8V9iaJiSWvNSsOggkfzXt6S8uiGAcc1lI2tD4itEsLa FAFgapOeywA8JLdr6bxXYlmdt8VDghjQYsStObvy1W4lAWzNRrnNZ7o35Imca8P3OnWu s69x6pyelEC/ethlUbzVU77Cf9f4/5igBhcXF5e/jHs28ROH2tJdWwoyQQ/3GFIZzY9+ eeOg==; 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=20230601; t=1773780108; x=1774384908; darn=freebsd.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=20uplrSp7QQV7Wb7CYOi0SR1UsQ+wgGSCWBvtn6up9E=; b=fiCV2Xo4cocYXNnfg2SPCSJHvAE/Z7aeaZTBtWcJEOw7UX8kl508CgAm2RvMk9IeG5 piOUahZfWvDEqgrZzHHsrq8CoOESQrUqnzPkMH/L/M4YOrV1VTSaUssKgjnyrMwhkIYp YKC3hipa4oEP9OSV+UloguF2rSDDS0cMsDwKYpyWKIOxRiyZiSoEH3mLsfl43Fbsq759 Y3kaFNuIetxZ3jCw0bWIc7Vw9ceis8hPXnStBUXlWTAIvgoM7NiQiUVyk8KwWyMGUAfX OhVqY+gDtHV17FoGy4fr1pf9zpVeJd1xfAdmi2OsDSKw86Iy6mN4kkGQbAAbDGSfSsxc gC/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773780108; x=1774384908; 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=20uplrSp7QQV7Wb7CYOi0SR1UsQ+wgGSCWBvtn6up9E=; b=XE5PgyQ0lQ5EMnCsZ1Odv8Ce/725YGoTd7iBSVz+RZ6k7CpHmslru9D4W7ZWum7n+b Ba4BoB+YoJVHJzvIjhvKOn0xv5HiNAzYj+R6s7bp74IeVtliekI5rM7jAoTpmlRM/fLn pwl9v02ow39G64HdxbRlZSLg3gkK8K8snKPtbnzsW+rMODCQ4KRR4pjoFlsNwLNx4XHs qCqSlxqtnlX8EamGnWDuRKdWES7zmw2oqab+sPTQJUk1Sf9vw/+Qit//BNUVjSFsc8jG /MsQZlFjOzApsGzdZboNV7BiMF1evu7uFN+pH9eriVUGn4IS04erPA3gkidaGgvlSGIb Xc8g== X-Gm-Message-State: AOJu0YyXiEBIzV1sg175CbmyoM21nZS9QNFfGnr/QEVglK7m20DT+oSp ln7K9ib2kUJ4+3yl+s5PVFFwqPXCY2Sb7r+i5vApma180NImbnhWTIQs11R3aVjrhIWCAP9ORZZ M6yY81lzySKadLVzDKY0QXudX0d8pW/vFVXw= X-Gm-Gg: ATEYQzwkRBihVO98Wvp4ST+bq9PJCFc9M2i73cQIGrZ24tibtIbbFO97PQ7CZZYfzwR G92FHWIHZa/H4z8M4ArXEPq+ValD1puo8XqtSGLQnsBYGgtGjlc09Yy3QEQ8Ws84+v4N8adwybN ikCt9keJizB2u8K1PU0G76L6OkGCzsETKdQpr8i8m4JZIVF6j64/lMMsuK5wXRFBqKUiyZwCl05 BMO5hhVjJFlhen0ELn3kKfQrWqd4ErO/kPrf6tsLRGR5kJdpjEAQ3A4Y2Po5XwExonk6JEAvWfU H3zoOQU1EF9IKOTq0P4K9IY0HjtWOHnewoWdolhTiCxEe4QVhlo= X-Received: by 2002:a17:907:9722:b0:b97:d9d9:1ef4 with SMTP id a640c23a62f3a-b97f4a5ed2bmr40767466b.39.1773780108493; Tue, 17 Mar 2026 13:41:48 -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 MIME-Version: 1.0 From: Rick Macklem Date: Tue, 17 Mar 2026 13:41:34 -0700 X-Gm-Features: AaiRm529va_2cUYxZc05cqfGbY5Vo_K5aXqNL_IyP61PPFPffkXwaxN8R9ZVaLU Message-ID: Subject: RFC: Does allocuio() need the UIO_MAXIOV KASSERT? To: FreeBSD CURRENT Content-Type: text/plain; charset="UTF-8" X-Spamd-Result: default: False [-3.99 / 15.00]; SUBJECT_ENDS_QUESTION(1.00)[]; ARC_ALLOW(-1.00)[google.com:s=arc-20240605:i=1]; NEURAL_HAM_MEDIUM(-1.00)[-0.999]; NEURAL_HAM_LONG(-1.00)[-0.999]; NEURAL_HAM_SHORT(-0.99)[-0.993]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; TO_DN_ALL(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; RCPT_COUNT_ONE(0.00)[1]; TAGGED_FROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_FROM(0.00)[gmail.com]; FROM_HAS_DN(0.00)[]; MISSING_XM_UA(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; MID_RHS_MATCH_FROMTLD(0.00)[]; RCVD_COUNT_ONE(0.00)[1]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; FREEMAIL_ENVFROM(0.00)[gmail.com]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::532:from] X-Rspamd-Queue-Id: 4fb3m50YBqz45yG X-Spamd-Bar: --- 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