code: func (task *Task) buildLinuxMemorySpec() (specs.LinuxMemory, error) {
  	// If task memory limit is not present, cgroup parent memory is not set
  	// If task memory limit is set, ensure that no container
  	// of this task has a greater request
  	for _, container := range task.Containers {
  		containerMemoryLimit := int64(container.Memory)
  		if containerMemoryLimit > task.Memory {
  			return specs.LinuxMemory{},
  				errors.Errorf("task memory spec builder: container memory limit(%d) greater than task memory limit(%d)",
  					containerMemoryLimit, task.Memory)
  		}
  	}
  
  	// Kernel expects memory to be expressed in bytes
  	memoryBytes := task.Memory * bytesPerMegabyte
  	return specs.LinuxMemory{
  		Limit: &memoryBytes,
  	}, nil
  }
docs: // buildLinuxMemorySpec validates and builds the task memory spec