[pve-devel] [PATCH container 13/20] cgroup: add change_cpu_quota, change_cpu_shares

Wolfgang Bumiller w.bumiller at proxmox.com
Mon Apr 6 09:57:23 CEST 2020


On Sat, Apr 04, 2020 at 08:09:58PM +0200, Thomas Lamprecht wrote:
> On 4/3/20 4:37 PM, w.bumiller at proxmox.com wrote:
> > ...
> > +# Change the cpu "shares" for a container.
> > +#
> > +# In cgroupv1 we used a value in `[0..500000]` with a default of 1024.
> > +#
> > +# In cgroupv2 we do not have "shares", we have "weights" in the range
> > +# of `[1..10000]` with a default of 100.
> > +#
> > +# Since the default values don't match when scaling linearly, we use the
> > +# values we get as-is and simply error for values >10000 in cgroupv2.
> > +#
> > +# It is left to the user to figure this out for now.
> > +#
> > +# Dies on error (including a not-running or currently-shutting-down guest).
> > +sub change_cpu_shares {
> > +    my ($self, $shares, $cgroupv1_default) = @_;
> > +
> > +    if (cgroup_mode() == 2) {
> > +	if (defined(my $path = $self->get_path('cpu'))) {
> > +	    # the cgroupv2 documentation defines the default to 100
> > +	    $shares //= 100;
> > +	    die "cpu weight (shares) must be in range [1, 10000]\n" if $shares < 1 || $shares > 10000;
> 
> Wouldn't it be more sensible to existing setup when this just truncates those
> values which where valid for cgroupv1? I.e. >1000 -> 1000 and < 1 -> 1?

Maybe. I'm fine with either. Once decided we should also update the
API doc entries so it's not just a code comment anymore. :)




More information about the pve-devel mailing list