public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Fiona Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH container 4/7] use helper from guest-common for cpuunits
Date: Fri,  7 Oct 2022 14:41:44 +0200	[thread overview]
Message-ID: <20221007124156.110246-8-f.ebner@proxmox.com> (raw)
In-Reply-To: <20221007124156.110246-1-f.ebner@proxmox.com>

to make behavior more consistent with what we do for VMs. The helper
will clamp the value as needed, rather than dying.

Allows starting existing containers with an out-of-range (for the
relevant cgroup version) value. It's also possible to end up with
out-of-range values via update/create API.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---

Dependency bump for guest-common needed.

 src/PVE/LXC.pm        | 5 ++---
 src/PVE/LXC/Config.pm | 5 ++++-
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
index fe63087..e143855 100644
--- a/src/PVE/LXC.pm
+++ b/src/PVE/LXC.pm
@@ -699,7 +699,7 @@ sub update_lxc_config {
 	    $raw .= "lxc.cgroup.cpu.cfs_quota_us = $value\n";
 	}
 
-	my $shares = $conf->{cpuunits} || 1024;
+	my $shares = PVE::GuestHelpers::get_cpuunits($conf->{cpuunits});
 	$raw .= "lxc.cgroup.cpu.shares = $shares\n";
     } elsif ($cgv2->{cpu}) {
 	# See PVE::CGroup
@@ -709,8 +709,7 @@ sub update_lxc_config {
 	}
 
 	if (defined(my $shares = $conf->{cpuunits})) {
-	    die "cpu weight (shares) must be in range [1, 10000]\n"
-		if $shares < 1 || $shares > 10000;
+	    $shares = PVE::GuestHelpers::get_cpuunits($shares);
 	    $raw .= "lxc.cgroup2.cpu.weight = $shares\n";
 	}
     }
diff --git a/src/PVE/LXC/Config.pm b/src/PVE/LXC/Config.pm
index b32eff6..7be6be1 100644
--- a/src/PVE/LXC/Config.pm
+++ b/src/PVE/LXC/Config.pm
@@ -504,7 +504,10 @@ my $confdesc = {
     cpuunits => {
 	optional => 1,
 	type => 'integer',
-	description => "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to the weights of all the other running VMs.",
+	description => "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
+	verbose_description => "CPU weight for a container. Argument is used in the kernel fair "
+	    ."scheduler. The larger the number is, the more CPU time this container gets. Number "
+	    ."is relative to the weights of all the other running guests.",
 	minimum => 0,
 	maximum => 500000,
 	default => 'cgroup v1: 1024, cgroup v2: 100',
-- 
2.30.2





  parent reply	other threads:[~2022-10-07 12:42 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-07 12:41 [pve-devel] [PATCH-SERIES docs/(guest-)common/qemu-server/container/manager] cpuunits improvements Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH docs 1/2] qm: resource limits: update systemd setting name for cpuunits Fiona Ebner
2022-10-19 12:04   ` [pve-devel] applied: " Thomas Lamprecht
2022-10-07 12:41 ` [pve-devel] [PATCH docs 2/2] pct/qm: update cpuunits default Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH guest-common 1/1] helpers: move get_cpuunits helper from qemu-server Fiona Ebner
2022-10-19 12:04   ` Thomas Lamprecht
2022-10-07 12:41 ` [pve-devel] [PATCH container 1/7] config: cpuunits: drop description for outdated special value Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH container 2/7] change cpu shares: hard-code cgroupv1 default parameter Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH container 3/7] config: cpuunits: update default description Fiona Ebner
2022-10-07 12:41 ` Fiona Ebner [this message]
2022-10-07 12:41 ` [pve-devel] [PATCH container 5/7] config: replace mentions of "VM" with "container" Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [RFC container 6/7] change cpu shares: drop superfluous parameter Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [RFC container 7/7] api: create/update vm: clamp cpuunit value Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH qemu-server 1/3] move get_cpuunits helper to guest-common Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [RFC qemu-server 2/3] change cpu shares: drop superfluous parameter Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [RFC qemu-server 3/3] api: create/update vm: clamp cpuunit value Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [RFC common 1/1] change cpu shares: drop unused $cgroupv1_default parameter Fiona Ebner
2022-11-07 15:30   ` [pve-devel] applied: " Thomas Lamprecht
2022-10-07 12:41 ` [pve-devel] [PATCH manager 1/5] ui: lxc: cpu edit: drop superfluous delete_if_default Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH manager 2/5] ui: qemu/lxc: cpu edit: fix 'create' parameter for delete_if_default() Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH manager 3/5] ui: lxc/qemu: cpu edit: use emptyText for cpuunits Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH v2 manager 4/5] cluster resources: add cgroup-mode to node properties Fiona Ebner
2022-11-02 12:24   ` Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH manager 5/5] ui: lxc/qemu: cpu edit: make cpuunits depend on node's cgroup version Fiona Ebner
2022-11-08 15:27 ` [pve-devel] partially-applied-series: [PATCH-SERIES docs/(guest-)common/qemu-server/container/manager] cpuunits improvements Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221007124156.110246-8-f.ebner@proxmox.com \
    --to=f.ebner@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal