code: func setSupportedSubsystems(cgroupConfig *libcontainerconfigs.Cgroup) error {
  	for sys, required := range getSupportedSubsystems() {
  		if _, ok := cgroupConfig.Paths[sys.Name()]; !ok {
  			if required {
  				return fmt.Errorf("Failed to find subsystem mount for required subsystem: %v", sys.Name())
  			}
  			// the cgroup is not mounted, but its not required so continue...
  			klog.V(6).Infof("Unable to find subsystem mount for optional subsystem: %v", sys.Name())
  			continue
  		}
  		if err := sys.Set(cgroupConfig.Paths[sys.Name()], cgroupConfig); err != nil {
  			return fmt.Errorf("Failed to set config for supported subsystems : %v", err)
  		}
  	}
  	return nil
  }
docs: // setSupportedSubsystems sets cgroup resource limits only on the supported
  // subsystems. ie. cpu and memory. We don't use libcontainer's cgroup/fs/Set()
  // method as it doesn't allow us to skip updates on the devices cgroup
  // Allowing or denying all devices by writing 'a' to devices.allow or devices.deny is
  // not possible once the device cgroups has children. Once the pod level cgroup are
  // created under the QOS level cgroup we cannot update the QOS level device cgroup.
  // We would like to skip setting any values on the device cgroup in this case
  // but this is not possible with libcontainers Set() method
  // See https://github.com/opencontainers/runc/issues/932