Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
3a441522
L
libvirt
项目概览
openeuler
/
libvirt
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
libvirt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3a441522
编写于
3月 12, 2010
作者:
C
Cole Robinson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
qemu: Add some debugging at domain startup
上级
f92c041a
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
23 addition
and
1 deletion
+23
-1
src/qemu/qemu_driver.c
src/qemu/qemu_driver.c
+23
-1
未找到文件。
src/qemu/qemu_driver.c
浏览文件 @
3a441522
...
...
@@ -2695,6 +2695,8 @@ static int qemudStartVMDaemon(virConnectPtr conn,
FD_ZERO
(
&
keepfd
);
DEBUG0
(
"Beginning VM startup process"
);
if
(
virDomainObjIsActive
(
vm
))
{
qemuReportError
(
VIR_ERR_OPERATION_INVALID
,
"%s"
,
_
(
"VM is already active"
));
...
...
@@ -2703,22 +2705,27 @@ static int qemudStartVMDaemon(virConnectPtr conn,
/* If you are using a SecurityDriver with dynamic labelling,
then generate a security label for isolation */
DEBUG0
(
"Generating domain security label (if required)"
);
if
(
driver
->
securityDriver
&&
driver
->
securityDriver
->
domainGenSecurityLabel
&&
driver
->
securityDriver
->
domainGenSecurityLabel
(
vm
)
<
0
)
return
-
1
;
DEBUG0
(
"Generating setting domain security labels (if required)"
);
if
(
driver
->
securityDriver
&&
driver
->
securityDriver
->
domainSetSecurityAllLabel
&&
driver
->
securityDriver
->
domainSetSecurityAllLabel
(
vm
)
<
0
)
goto
cleanup
;
/* Ensure no historical cgroup for this VM is lieing around bogus settings */
/* Ensure no historical cgroup for this VM is lying around bogus
* settings */
DEBUG0
(
"Ensuring no historical cgroup is lying around"
);
qemuRemoveCgroup
(
driver
,
vm
,
1
);
if
((
vm
->
def
->
ngraphics
==
1
)
&&
vm
->
def
->
graphics
[
0
]
->
type
==
VIR_DOMAIN_GRAPHICS_TYPE_VNC
&&
vm
->
def
->
graphics
[
0
]
->
data
.
vnc
.
autoport
)
{
DEBUG0
(
"Determining VNC port"
);
int
port
=
qemudNextFreeVNCPort
(
driver
);
if
(
port
<
0
)
{
qemuReportError
(
VIR_ERR_INTERNAL_ERROR
,
...
...
@@ -2735,6 +2742,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
goto
cleanup
;
}
DEBUG0
(
"Creating domain log file"
);
if
((
logfile
=
qemudLogFD
(
driver
,
vm
->
def
->
name
))
<
0
)
goto
cleanup
;
...
...
@@ -2751,14 +2759,17 @@ static int qemudStartVMDaemon(virConnectPtr conn,
goto
cleanup
;
}
DEBUG0
(
"Determing emulator version"
);
if
(
qemudExtractVersionInfo
(
emulator
,
NULL
,
&
qemuCmdFlags
)
<
0
)
goto
cleanup
;
DEBUG0
(
"Setting up domain cgroup (if required)"
);
if
(
qemuSetupCgroup
(
driver
,
vm
)
<
0
)
goto
cleanup
;
DEBUG0
(
"Preparing host devices"
);
if
(
qemuPrepareHostDevices
(
driver
,
vm
->
def
)
<
0
)
goto
cleanup
;
...
...
@@ -2767,6 +2778,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
goto
cleanup
;
}
DEBUG0
(
"Preparing monitor state"
);
if
(
qemuPrepareMonitorChr
(
driver
,
priv
->
monConfig
,
vm
->
def
->
name
)
<
0
)
goto
cleanup
;
...
...
@@ -2798,6 +2810,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
* use in hotplug
*/
if
(
qemuCmdFlags
&
QEMUD_CMD_FLAG_DEVICE
)
{
DEBUG0
(
"Assigning domain PCI addresses"
);
/* Populate cache with current addresses */
if
(
priv
->
pciaddrs
)
{
qemuDomainPCIAddressSetFree
(
priv
->
pciaddrs
);
...
...
@@ -2816,6 +2829,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
priv
->
persistentAddrs
=
0
;
}
DEBUG0
(
"Building emulator command line"
);
vm
->
def
->
id
=
driver
->
nextvmid
++
;
if
(
qemudBuildCommandLine
(
conn
,
driver
,
vm
->
def
,
priv
->
monConfig
,
priv
->
monJSON
,
qemuCmdFlags
,
&
argv
,
&
progenv
,
...
...
@@ -2899,25 +2913,31 @@ static int qemudStartVMDaemon(virConnectPtr conn,
if
(
ret
==
-
1
)
/* The VM failed to start */
goto
cleanup
;
DEBUG0
(
"Waiting for monitor to show up"
);
if
(
qemudWaitForMonitor
(
driver
,
vm
,
pos
)
<
0
)
goto
abort
;
DEBUG0
(
"Detecting VCPU PIDs"
);
if
(
qemuDetectVcpuPIDs
(
driver
,
vm
)
<
0
)
goto
abort
;
DEBUG0
(
"Setting CPU affinity"
);
if
(
qemudInitCpuAffinity
(
vm
)
<
0
)
goto
abort
;
DEBUG0
(
"Setting any required VM passwords"
);
if
(
qemuInitPasswords
(
conn
,
driver
,
vm
,
qemuCmdFlags
)
<
0
)
goto
abort
;
/* If we have -device, then addresses are assigned explicitly.
* If not, then we have to detect dynamic ones here */
if
(
!
(
qemuCmdFlags
&
QEMUD_CMD_FLAG_DEVICE
))
{
DEBUG0
(
"Determining domain device PCI addresses"
);
if
(
qemuInitPCIAddresses
(
driver
,
vm
)
<
0
)
goto
abort
;
}
DEBUG0
(
"Setting initial memory amount"
);
qemuDomainObjEnterMonitorWithDriver
(
driver
,
vm
);
if
(
qemuMonitorSetBalloon
(
priv
->
mon
,
vm
->
def
->
memory
)
<
0
)
{
qemuDomainObjExitMonitorWithDriver
(
driver
,
vm
);
...
...
@@ -2925,6 +2945,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
}
if
(
migrateFrom
==
NULL
)
{
DEBUG0
(
"Starting domain CPUs"
);
/* Allow the CPUS to start executing */
if
(
qemuMonitorStartCPUs
(
priv
->
mon
,
conn
)
<
0
)
{
if
(
virGetLastError
()
==
NULL
)
...
...
@@ -2937,6 +2958,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
qemuDomainObjExitMonitorWithDriver
(
driver
,
vm
);
DEBUG0
(
"Writing domain status to disk"
);
if
(
virDomainSaveStatus
(
driver
->
caps
,
driver
->
stateDir
,
vm
)
<
0
)
goto
abort
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录