code: func (m *cgroupManagerImpl) Update(cgroupConfig *CgroupConfig) error {
  	start := time.Now()
  	defer func() {
  		metrics.CgroupManagerDuration.WithLabelValues("update").Observe(metrics.SinceInSeconds(start))
  		metrics.DeprecatedCgroupManagerLatency.WithLabelValues("update").Observe(metrics.SinceInMicroseconds(start))
  	}()
  
  	// Extract the cgroup resource parameters
  	resourceConfig := cgroupConfig.ResourceParameters
  	resources := m.toResources(resourceConfig)
  
  	cgroupPaths := m.buildCgroupPaths(cgroupConfig.Name)
  
  	libcontainerCgroupConfig := &libcontainerconfigs.Cgroup{
  		Resources: resources,
  		Paths:     cgroupPaths,
  	}
  	// libcontainer consumes a different field and expects a different syntax
  	// depending on the cgroup driver in use, so we need this conditional here.
  	if m.adapter.cgroupManagerType == libcontainerSystemd {
  		updateSystemdCgroupInfo(libcontainerCgroupConfig, cgroupConfig.Name)
  	} else {
  		libcontainerCgroupConfig.Path = cgroupConfig.Name.ToCgroupfs()
  	}
  
  	if utilfeature.DefaultFeatureGate.Enabled(kubefeatures.SupportPodPidsLimit) && cgroupConfig.ResourceParameters != nil && cgroupConfig.ResourceParameters.PidsLimit != nil {
  		libcontainerCgroupConfig.PidsLimit = *cgroupConfig.ResourceParameters.PidsLimit
  	}
  
  	if err := setSupportedSubsystems(libcontainerCgroupConfig); err != nil {
  		return fmt.Errorf("failed to set supported cgroup subsystems for cgroup %v: %v", cgroupConfig.Name, err)
  	}
  	return nil
  }
docs: // Update updates the cgroup with the specified Cgroup Configuration