From nobody Sat May 30 15:30:18 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1779902353; cv=none; d=zohomail.com; s=zohoarc; b=m9JHUDGNLcA2bkPyY9RsVkYYwtLo7RVeKtoSktZ1+SXZsQ3CIh0UFgENZ2YqDEKyGeXYb7GUh7TmQgF6/3N6AdTNDntIRxafZEKEVm5zRDKRv/7r0DgK6VyDIn6UcFcwhPepX1D7IYlASfpBG/ZBjLBiCKSBlEDlW611BX7y1iU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779902353; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=PxxFtwVuspj7S9YB1TMucsUusldXggzOEQsy3NiQwNU=; b=aHh/hWs2Z8U+dvxutTiTHwMbcOuVQ9ZOevugle1ZOx0ocFM6NU2LXSgcwwT2hieCoPzDIkbB37j4mUlI5Foy9WRSn/qcRgkla3IwCkSXfbXqu3QcF19wxJCf/0qpWN6Il2Fx/2kaoDZEVLTCFVmyybSyhivnnzW2D25od9AXYrQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1779902353598685.260388707889; Wed, 27 May 2026 10:19:13 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 65CB941B8D; Wed, 27 May 2026 13:19:12 -0400 (EDT) Received: from [172.19.199.5] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 2ABFF41D78; Wed, 27 May 2026 13:18:12 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 8132041B0B; Wed, 27 May 2026 13:18:04 -0400 (EDT) Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id A52C63F8B3 for ; Wed, 27 May 2026 13:18:03 -0400 (EDT) Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-689be822f34so5466817a12.0 for ; Wed, 27 May 2026 10:18:03 -0700 (PDT) Received: from tulp.my.domain (2001-1c02-1a15-3000-ee82-4536-a8f2-9e22.cable.dynamic.v6.ziggo.nl. [2001:1c02:1a15:3000:ee82:4536:a8f2:9e22]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-68a6fac081esm914803a12.8.2026.05.27.10.18.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 May 2026 10:18:01 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779902282; x=1780507082; darn=lists.libvirt.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=PxxFtwVuspj7S9YB1TMucsUusldXggzOEQsy3NiQwNU=; b=GRmWk1DzX/RJIFQg0uddei3ZCuqbWgCFtFl5RzY4wrcLLBPTckowwpTcdKmVyMBxvS tB67u2XMf/aXC9wO/xAQjbQrcdU2cLu7ZwQsBhOIgwU1v8gmTJDbmXqpPsiF29Ow40cK VVWBJ3iTUhGcSMy5wTWJXaAZibBrl5qyTB8Gn3f+IICc7yfmuQgOASP/i8XM8Z3+Z0sf mwqVbt420psxgRFa7mNjjOmj/kAZCgW/MP/h/r9SyCjKE4gB0dkvyP3UOAaXjFEznagM s3TLfVgUGjZr6jSnid+szz69IVDJgVi9Th4+FX/Yyw0T7YMDisEoYBCiiZIIQbttnjFj YugQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779902282; x=1780507082; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=PxxFtwVuspj7S9YB1TMucsUusldXggzOEQsy3NiQwNU=; b=J4uUp6NPNDeJr3xlVW3h4fMw2VOxrQaOYk2AI5wKiA7kdD96zHETrTWoixv721xGNK iWZr58vIzs6llmdHZZnKYgAogPNyXmWr4gVEIXVU2TvqO2AFMF6HyjNO5Ib7+HS/KX3W MlWeWLMOHdAt0qdbssQCorNpY3jq3kaHjzHPvNZaaJAJa/+zpV43BUqsqluKlwTGxcYs 653bfpqv5gMyFZ27kC3ljR9Ix+LDdx/UiVs7DH3n8Y6aD6gQHKhrYHEVE+zFWYHiSsbX kp9rfInZ192+Cukekw+udFXjqDA37rfFWaIMXE8YIJsyUGASfZLUA95V6knYSRYT+17T Xrrg== X-Gm-Message-State: AOJu0YxaluhcgQq/CmQn5hJ+ITq0pWgSsVqewiRrSIhpi7al1RNHpl0G KI70emqs3pO2/rPPE6je0vBX64BPIm4B7twCkhdspeZ14XPE6DB1EZQviquHGBIH X-Gm-Gg: Acq92OEHfzBeVcjSVtJ3WAlFCclKUGT9TZbI+Q5ZfJEdBoCx1dT1GhKjJDoAUDRVKCN bN/mFrujq+1a9H4T5KUIaNA3gh8RTroV6vMUL4E4t7NgHD5gagg8Bkg90cRHtK0N+dhholIVZva q2X3pD3VBqQnKIiGT5N0HIFw+TZoKvnjJgz0ieZ4rRNdJqyL5T7yrK/Q5+f1TmB2doXpK8YecG0 oQocq8P29e7EkiGUUf4YZQx1E0ElmhqKXK+nysDE8eiB/RlsIvj+nD+l84tdU3q6OdHA2rrjMIj yCIDwOfGC5UbUZFZAneBtZGJaV1MPNyOu4Xtdx890cyL7/xLPAgSv0Fsy9gdPhMCIdLh9eS7Tas GAHmS52GOX+4EA/gR8d19zFTeFZGUQghgokteUK4pJ12qwyb8cl7q7R8Csbi+duZ1XUgkgSAKgJ l13yUsjvhLlHGIZBQfVuLwWA6B8i7rAx/jqI3hvcG5bu/XVPW1pRwSRHQm4/R8DmxIQbHeUHKY9 GvkUxETmmXpunoAMWM+f2Akvk/mGndVIZkp2Kbj7+RG2NTg X-Received: by 2002:a05:6402:1f89:b0:689:6c2e:6cdf with SMTP id 4fb4d7f45d1cf-6896c2e6e5dmr8568964a12.22.1779902281946; Wed, 27 May 2026 10:18:01 -0700 (PDT) From: Roman Bogorodskiy To: devel@lists.libvirt.org Subject: [PATCH] docs: drvbhyve: reorganize sections about resource limits Date: Wed, 27 May 2026 19:17:54 +0200 Message-ID: <20260527171754.90975-1-bogorodskiy@gmail.com> X-Mailer: git-send-email 2.52.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 5BUHXUPTLWFHTYMS7TGCSCQJJANHXLMS X-Message-ID-Hash: 5BUHXUPTLWFHTYMS7TGCSCQJJANHXLMS X-MailFrom: bogorodskiy@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Roman Bogorodskiy X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1779902355289154100 Content-Type: text/plain; charset="utf-8" Sections about resource limits are currently placed across the file in between various device examples. To make it easier to follow, group them into a single section. This also allows to give an introduction on the rctl(8) framework once instead of repeating it for every resource type. Also, document the memory limitation support added in libvirt 12.4.0. Signed-off-by: Roman Bogorodskiy Reviewed-by: Michal Privoznik --- docs/drvbhyve.rst | 75 +++++++++++++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 25 deletions(-) diff --git a/docs/drvbhyve.rst b/docs/drvbhyve.rst index 79418537df..2e5e361115 100644 --- a/docs/drvbhyve.rst +++ b/docs/drvbhyve.rst @@ -773,26 +773,6 @@ Example: Please refer to ``cam(4)``, ``ctl(4)``, and ``ctld(8)`` manual pages for more details on CAM and CTL. =20 -vCPU pinning -~~~~~~~~~~~~ - -:since:`Since 12.1.0`, it is possible to pin domain vCPUs -to the specific host CPUs. - -Example: - -:: - - - ... - 2 - - - - - ... - - NUMA domains configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~ =20 @@ -835,13 +815,43 @@ Example:: =20 Bhyve supports up to 16 ports per console. =20 -Block I/O Tuning -~~~~~~~~~~~~~~~~ -:since:`Since 12.3.0`, it is possible to tune domain I/O. -This works on top of the +Resource tuning and limiting +---------------------------- +The libvirt bhyve driver supports tuning and limiting resources such as +CPU, memory, and I/O. + +For managing the memory and I/O limits, the bhyve driver uses the `rctl(4) `__ framework. -Sample configuration:: + +As of `FreeBSD 15.0-RELEASE`, rctl is not enabled by default. +Please refer to the manual page above and the +`FreeBSD Handbook `__ +on how to enable it. + +CPU tuning does not require any additional configuration. + +vCPU pinning +~~~~~~~~~~~~ +Pinning domain vCPUs to the specific host CPUs is supported :since:`since = 12.1.0`. + +Example: + +:: + + + ... + 2 + + + + + ... + + +Block I/O tuning +~~~~~~~~~~~~~~~~ +Block I/O tuning is supported :since:`since 12.3.0`. Sample configuration:: =20 @@ -857,6 +867,21 @@ The ``*`` path here means that the limits are applied = to the domain as a whole. Currently, it is not possible to apply limits to the individual devices of the domain. =20 +Memory limitation +~~~~~~~~~~~~~~~~~ +Setting a memory hard limit for a domain is supported :since:`since 12.4.0= `. +Example:: + + + 512 + + +Please refer to the `format domain `__ pa= ge +for considerations on setting ``hard_limit``. + +Currently, other memory tuning options (``soft_limit``, ``swap_hard_limit`= `, +and ``min_guarantee``) are not supported. + Guest-specific considerations ----------------------------- =20 --=20 2.52.0