func (task *Task) buildExplicitLinuxCPUSpec() (specs.LinuxCPU, error) {
	if task.CPU > maxTaskVCPULimit {
		return specs.LinuxCPU{},
			errors.Errorf("task CPU spec builder: unsupported CPU limits, requested=%f, max-supported=%d",
				task.CPU, maxTaskVCPULimit)
	}
	taskCPUPeriod := uint64(defaultCPUPeriod / time.Microsecond)
	taskCPUQuota := int64(task.CPU * float64(taskCPUPeriod))

	// TODO: DefaultCPUPeriod only permits 10VCPUs.
	// Adaptive calculation of CPUPeriod required for further support
	// (samuelkarp) The largest available EC2 instance in terms of CPU count is a x1.32xlarge,
	// with 128 vCPUs. If we assume a fixed evaluation period of 100ms (100000us),
	// we'd need a quota of 12800000us, which is longer than the maximum of 1000000.
	// For 128 vCPUs, we'd probably need something like a 1ms (1000us - the minimum)
	// evaluation period, an 128000us quota in order to stay within the min/max limits.
	return specs.LinuxCPU{
		Quota:  &taskCPUQuota,
		Period: &taskCPUPeriod,
	}, nil
}
func (task *Task) buildExplicitLinuxCPUSpec() (specs.LinuxCPU, error) {
	if task.CPU > maxTaskVCPULimit {
		return specs.LinuxCPU{},
			errors.Errorf("task CPU spec builder: unsupported CPU limits, requested=%f, max-supported=%d",
				task.CPU, maxTaskVCPULimit)
	}
	taskCPUPeriod := uint64(defaultCPUPeriod / time.Microsecond)
	taskCPUQuota := int64(task.CPU * float64(taskCPUPeriod))

	
	
	
	
	
	
	
	return specs.LinuxCPU{
		Quota:  &taskCPUQuota,
		Period: &taskCPUPeriod,
	}, nil
}
func ( task * Task ) buildExplicitLinuxCPUSpec ( ) ( specs . LinuxCPU , error ) { if task . CPU > maxTaskVCPULimit { return specs . LinuxCPU { } , errors . Errorf ( " " , task . CPU , maxTaskVCPULimit ) } taskCPUPeriod := uint64 ( defaultCPUPeriod / time . Microsecond ) taskCPUQuota := int64 ( task . CPU * float64 ( taskCPUPeriod ) ) // TODO: DefaultCPUPeriod only permits 10VCPUs. // Adaptive calculation of CPUPeriod required for further support // (samuelkarp) The largest available EC2 instance in terms of CPU count is a x1.32xlarge, // with 128 vCPUs. If we assume a fixed evaluation period of 100ms (100000us), // we'd need a quota of 12800000us, which is longer than the maximum of 1000000. // For 128 vCPUs, we'd probably need something like a 1ms (1000us - the minimum) // evaluation period, an 128000us quota in order to stay within the min/max limits. return specs . LinuxCPU { Quota : & taskCPUQuota , Period : & taskCPUPeriod , } , nil }
// buildExplicitLinuxCPUSpec builds CPU spec when task CPU limits are
// explicitly requested
buildExplicitLinuxCPUSpec builds CPU spec when task CPU limits are explicitly requested