kvm启动虚拟机流程(1)

来源:互联网 发布:线切割电脑上画图编程 编辑:程序博客网 时间:2024/06/05 22:37

3.1 启动虚拟机
virDomainCreate

#0  virDomainCreate (domain=0x697990) at libvirt.c:8133
#1  0x000000000042261f in cmdStart (ctl=0x7fffffffe230, cmd=0x696890)
    at virsh.c:3150
#2  0x000000000041cd1e in vshCommandRun (ctl=0x7fffffffe230, cmd=0x696890)
    at virsh.c:18449
#3  0x000000000042e2d6 in main (argc=3, argv=0x7fffffffe488) at virsh.c:20052


remote_driver.c
remoteDomainCreate
 call-> callWithFD-> virNetClientProgramCall-> virNetClientSendWithReply->
    virNetClientSendInternal-> virNetClientIO

qemu_driver.c
qemuDomainStart -> qemuDomainStartWithFlags -> qemuDomainObjStart
-> qemuProcessStart-> virCommandRun

剩余工作由qemu来完成,如分配内存qemu初始化时会调用pc_memory_init来分配内存。

qemu_domain.c中
qemuDomainObjBeginJobWithDriver

qemu_process.c中
qemuProcessStart

#0  qemuDomainStart (dom=0x7f34b4001090) at qemu/qemu_driver.c:4862
#1  0x00007f34defc1bef in virDomainCreate (domain=0x7f34b4001090)
    at libvirt.c:8153
#2  0x000000000043de40 in remoteDispatchDomainCreate (args=<optimized out>,
    rerr=<optimized out>, msg=<optimized out>, client=<optimized out>,
    server=<optimized out>) at remote_dispatch.h:852
#3  remoteDispatchDomainCreateHelper (server=<optimized out>,
    client=<optimized out>, msg=<optimized out>, rerr=0x7f34d9ed3c80,
    args=<optimized out>, ret=<optimized out>) at remote_dispatch.h:830
#4  0x00007f34df00ca61 in virNetServerProgramDispatchCall (
    msg=<optimized out>, client=<optimized out>, server=<optimized out>,
    prog=<optimized out>) at rpc/virnetserverprogram.c:416
#5  virNetServerProgramDispatch (prog=0x7956d0, server=0x78a4e0,
    client=0x790ec0, msg=0x7d58f0) at rpc/virnetserverprogram.c:289
#6  0x00007f34df007e51 in virNetServerHandleJob (jobOpaque=<optimized out>,
    opaque=0x78a4e0) at rpc/virnetserver.c:168
#7  0x00007f34def36f66 in virThreadPoolWorker (opaque=<optimized out>)
    at util/threadpool.c:144
#8  0x00007f34def36617 in virThreadHelper (data=<optimized out>)
    at util/threads-pthread.c:161
#9  0x00007f34dc635f05 in start_thread () from /lib64/libpthread.so.0
#10 0x00007f34dbf7153d in clone () from /lib64/libc.so.6

原创粉丝点击