mirror of
https://github.com/kata-containers/kata-containers.git
synced 2026-01-21 13:57:27 +00:00
This reverts commitb0157ad73a. ``` commitb0157ad73aRefs: 3.3.0-alpha0-124-gb0157ad73 Author: Fabiano Fidêncio <fabiano.fidencio@intel.com> AuthorDate: Fri Aug 11 14:55:11 2023 +0200 Commit: Fabiano Fidêncio <fabiano.fidencio@intel.com> CommitDate: Fri Nov 10 12:58:20 2023 +0100 runtime: confidential: Do not set the max_vcpu to cpu We don't have to do this since we're relying on the `static_sandbox_resource_mgmt` feature, which gives us the correct amount of memory and CPUs to be allocated. Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com> ``` This commit was removing a requirement that was made previously, but due to the SMP issue we're facing with the QEMU used for TDX (see commit d1b54ede290e95762099fff4e0bcdad10f816126*), QEMU will fail to start due to: ``` Invalid CPU topology: product of the hierarchy must match maxcpus: sockets (1) * dies (1) * cores (1) * threads (1) != maxcpus (240)" ``` This has no affect on the SEV / SNP workflow and hopefully we'll be able to re-revet this soon enough, when this gets solved on te QEMU side. Last but not least, this is not a "clean" revert as we're using conf.NumVCPUs() instead of conf.NumVCPUs, to ensure we're dealing with uint32. Fixes: #8532 Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
72 lines
1.8 KiB
Go
72 lines
1.8 KiB
Go
// Copyright (c) 2022 Apple Inc.
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
package virtcontainers
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/kata-containers/kata-containers/src/runtime/pkg/device/config"
|
|
)
|
|
|
|
func validateHypervisorConfig(conf *HypervisorConfig) error {
|
|
|
|
if conf.RemoteHypervisorSocket != "" {
|
|
return nil
|
|
}
|
|
|
|
if conf.KernelPath == "" {
|
|
return fmt.Errorf("Missing kernel path")
|
|
}
|
|
|
|
if conf.ConfidentialGuest && conf.HypervisorMachineType == QemuCCWVirtio {
|
|
if conf.ImagePath != "" || conf.InitrdPath != "" {
|
|
fmt.Println("yes, failing")
|
|
return fmt.Errorf("Neither the image or initrd path may be set for Secure Execution")
|
|
}
|
|
} else if conf.ImagePath == "" && conf.InitrdPath == "" {
|
|
return fmt.Errorf("Missing image and initrd path")
|
|
} else if conf.ImagePath != "" && conf.InitrdPath != "" {
|
|
return fmt.Errorf("Image and initrd path cannot be both set")
|
|
}
|
|
|
|
if err := conf.CheckTemplateConfig(); err != nil {
|
|
return err
|
|
}
|
|
|
|
if conf.NumVCPUsF == 0 {
|
|
conf.NumVCPUsF = defaultVCPUs
|
|
}
|
|
|
|
if conf.MemorySize == 0 {
|
|
conf.MemorySize = defaultMemSzMiB
|
|
}
|
|
|
|
if conf.DefaultBridges == 0 {
|
|
conf.DefaultBridges = defaultBridges
|
|
}
|
|
|
|
if conf.BlockDeviceDriver == "" {
|
|
conf.BlockDeviceDriver = defaultBlockDriver
|
|
} else if conf.BlockDeviceDriver == config.VirtioBlock && conf.HypervisorMachineType == QemuCCWVirtio {
|
|
conf.BlockDeviceDriver = config.VirtioBlockCCW
|
|
}
|
|
|
|
if conf.DefaultMaxVCPUs == 0 || conf.DefaultMaxVCPUs > defaultMaxVCPUs {
|
|
conf.DefaultMaxVCPUs = defaultMaxVCPUs
|
|
}
|
|
|
|
if conf.ConfidentialGuest && conf.NumVCPUs() != conf.DefaultMaxVCPUs {
|
|
hvLogger.Warnf("Confidential guests do not support hotplugging of vCPUs. Setting DefaultMaxVCPUs to NumVCPUs (%d)", conf.NumVCPUs())
|
|
conf.DefaultMaxVCPUs = conf.NumVCPUs()
|
|
}
|
|
|
|
if conf.Msize9p == 0 && conf.SharedFS != config.VirtioFS {
|
|
conf.Msize9p = defaultMsize9p
|
|
}
|
|
|
|
return nil
|
|
}
|