Documentation
¶
Index ¶
- Constants
- func GetApiResourceData(dev IDevice) *jsonutils.JSONDict
- func GetUSBDevId(vendorId, devId, bus, addr string) string
- func GetUSBDevQemuOptions(vendorDevId string, addr string) (map[string]string, error)
- func NewGPUHPCDevice(dev *PCIDevice) *sGPUHPCDevice
- func NewSRIOVNicDevice(dev *PCIDevice, devType, wireId, pfName string, virtfn int) *sSRIOVNicDevice
- func ParseOutput(output []byte, doTrim bool) []string
- func SyncDeviceInfo(session *mcclient.ClientSession, hostId string, dev IDevice) (jsonutils.JSONObject, error)
- type CloudDeviceInfo
- type HotPlugOption
- type HotUnplugOption
- type IDevice
- type IHost
- type IOMMUGroup
- type IsolatedDeviceManager
- type PCIDevice
- type QemuParams
Constants ¶
View Source
const ( CLASS_CODE_VGA = "0300" CLASS_CODE_3D = "0302" )
View Source
const ( BUSID_REGEX = `[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\.[0-9a-fA-F]` CODE_REGEX = `[0-9a-fA-F]{4}` LABEL_REGEX = `[\w+\ \.\,\:\+\&\-\/\[\]\(\)]+` VFIO_PCI_KERNEL_DRIVER = "vfio-pci" DEFAULT_VGA_CMD = " -vga std" // 在qemu/kvm下模拟Windows Hyper-V的一些半虚拟化特性,以便更好地使用Win虚拟机 // http://blog.wikichoon.com/2014/07/enabling-hyper-v-enlightenments-with-kvm.html // 但实际测试不行,虚拟机不能运行nvidia驱动 // DEFAULT_CPU_CMD = "host,kvm=off,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time" DEFAULT_CPU_CMD = "host,kvm=off" )
View Source
const (
RESOURCE = "isolated_devices"
)
Variables ¶
This section is empty.
Functions ¶
func GetApiResourceData ¶
func GetUSBDevId ¶
func GetUSBDevQemuOptions ¶
func NewGPUHPCDevice ¶
func NewGPUHPCDevice(dev *PCIDevice) *sGPUHPCDevice
func NewSRIOVNicDevice ¶
func ParseOutput ¶
func SyncDeviceInfo ¶
func SyncDeviceInfo(session *mcclient.ClientSession, hostId string, dev IDevice) (jsonutils.JSONObject, error)
Types ¶
type CloudDeviceInfo ¶
type HotPlugOption ¶
type HotUnplugOption ¶
type HotUnplugOption struct {
Id string
}
type IDevice ¶
type IDevice interface { String() string GetCloudId() string GetHostId() string SetHostId(hId string) GetGuestId() string GetWireId() string GetVendorDeviceId() string GetAddr() string GetDeviceType() string GetModelName() string CustomProbe(idx int) error SetDeviceInfo(info CloudDeviceInfo) SetDetectedOnHost(isDetected bool) DetectByAddr() error GetPassthroughOptions() map[string]string GetPassthroughCmd(index int) string GetIOMMUGroupDeviceCmd() string GetIOMMUGroupRestAddrs() []string GetVGACmd() string GetCPUCmd() string GetQemuId() string // sriov nic GetPfName() string GetVirtfn() int GetHotPlugOptions(isolatedDev *desc.SGuestIsolatedDevice) ([]*HotPlugOption, error) GetHotUnplugOptions(isolatedDev *desc.SGuestIsolatedDevice) ([]*HotUnplugOption, error) }
type IHost ¶
type IHost interface { GetHostId() string GetSession() *mcclient.ClientSession }
type IOMMUGroup ¶
type IOMMUGroup struct {
// contains filtered or unexported fields
}
func NewIOMMUGroup ¶
func NewIOMMUGroup() (*IOMMUGroup, error)
func (*IOMMUGroup) FindSameGroupDevs ¶
func (g *IOMMUGroup) FindSameGroupDevs(devAddr string, vendorId string) []*PCIDevice
func (*IOMMUGroup) ListDevices ¶
func (g *IOMMUGroup) ListDevices(groupNum, selfAddr, vendorId string) []*PCIDevice
func (*IOMMUGroup) String ¶
func (g *IOMMUGroup) String() string
type IsolatedDeviceManager ¶
type IsolatedDeviceManager interface { GetDevices() []IDevice GetDeviceByIdent(vendorDevId string, addr string) IDevice GetDeviceByAddr(addr string) IDevice ProbePCIDevices(skipGPUs, skipUSBs, skipSRIOVNics bool, nics [][2]string) error StartDetachTask() BatchCustomProbe() error AppendDetachedDevice(dev *CloudDeviceInfo) GetQemuParams(devAddrs []string) *QemuParams }
func NewManager ¶
func NewManager(host IHost) IsolatedDeviceManager
type PCIDevice ¶
type PCIDevice struct { Addr string `json:"bus_id"` ClassName string `json:"class_name"` ClassCode string `json:"class_code"` VendorName string `json:"vendor_name"` VendorId string `json:"vendor_id"` DeviceName string `json:"device_name"` DeviceId string `json:"device_id"` SubvendorName string `json:"subvendor_name"` SubvendorId string `json:"subvendor_id"` SubdeviceName string `json:"subdevice_name"` SubdeviceId string `json:"subdevice_id"` ModelName string `json:"model_name"` RestIOMMUGroupDevs []*PCIDevice `json:"-"` }
func NewPCIDevice ¶
func NewPCIDevice2 ¶
func (*PCIDevice) GetVendorDeviceId ¶
func (*PCIDevice) IsVFIOPCIDriverUsed ¶
type QemuParams ¶
Click to show internal directories.
Click to hide internal directories.