1.安装RPM包

1 .查询最新的rpm包地址

 http://cicada-master.sh.intel.com/cicada/  #之前的       
 http://x-kcloud2.sh.intel.com/kernels/   #现在的

2 .选中最新的rpm包,右键,选择Copy shortcut(即复制了最新的rpm包地址)

3 .获取了最新的rpm包

wget http://cicada-master.sh.intel.com/kvm-3.10.0-ff907d18_3c4269a6_20171114.x86_64.rpm 《注意更换新地址》

4 .查看已安装的rpm包

  rpm -qa | grep kvm 

5 .如果上一步有已有的rpm包,就删除已有的

 rpm -e kvm-3.10.0-f68c1e4c_3c4269a6_20171109.x86_64 

6 .安装最新的rpm包

rpm -ivh kvm-3.10.0-ff907d18_3c4269a6_20171114-weekly-release.x86_64.rpm 《换地址》

7 .如果报错的话请安装

yum install ***

8 .注意:安装完RPM包之后电脑重启才会生效哦!

2.Qemu编译及其安装

1 . 下载qemu源码

    git clone git://vt-repo.sh.intel.com/qemu-cicada.git   //Internal User
    git clone https://cnrailvtf01.jfrail.intel.com/gerrit/repo21ef0978-main -b cicada-qemu         //External User  

2 . 进入下载的目录:

    cd qemu-cicada            //source code directory

3 . 进行配置./configure –target-list=x86_64-softmmu –enable-kvm –disable-tools //refer to ./configure -h to switch on/off more features

   ./configure --target-list=x86_64-softmmu --enable-kvm --disable-gtk --enable-sdl --disable-vnc --disable-docs --disable-tools  --enable-spice

4 . 如果有错误信息:错误:glib-2.22 gthread-2.0 is required to compile QEMU,请先安装这些库,例如在Ubuntu中运行follong命令:

  apt-get install libglib2.0-dev zlib1g-dev    

5 . 编译qemu

  make -j8

6 . 安装qemu

  make install

7 . 查看是否安装成功,返回0,表示成功!

  echo $? 

3 . sampling/replay

3.1 起guest

1 . 进入如下目录,查看要使用哪个镜像,复制镜像的名字,假设使用 “ ia32e_rhel7u3_kvm_kb.img ” 镜像

  /share/xvs/img

2 . 重新进入一个新的目录下,生成一个“.qcow”的临时的镜像文件,建议您根据访客映像文件创建.qcow文件。 所以你所做的任何更改只会影响.qcow而不是镜像文件。

  qemu-img create -b  /share/xvs/img/ia32e_rhel7u3_kvm_kb.img -f qcow2 ia32e_rhel7u3_pcm.qcow

3 . 起guest

  qemu-system-x86_64 --enable-kvm -m 1024 -smp 1 -cpu Skymeadow -M q35 -monitor stdio -net nic,model=e1000,macaddr=00:11:22:33:44:55 -net tap,script=/etc/kvm/qemu-ifup -hda ia32e_rhel7u3_pcm.qcow

4 . 如果报错,使用以下命令,查看是否已经有已经在运行的guest

  ps -ef | grep qemu

5 . 如果有正在运行的,杀死正在运行的guest,重新运行第3步

  kill -9 (pid号)

6 . 如果运行正常想要打开guest窗口,可以另外开启一个终端,执行:

  vncviewer :5900

3.2触发sampling

7 . 在第3部起guest成功后的那个终端,会有以“(qemu) ”开头引导,输入 pcm ,按两次 tab 键。会有一些命令提示,执行命令:

  pcm-auto-test-timer 456789 1000 1 100
  
  窗口采样间隔为100us,使用shm-key 456789的秘钥,运行1000次
  456789:表示秘钥
  1000:表示测试1000次
  '1'表示需要RCP,如果您只需要在没有Bochs replay的情况下进行采样,则可以将其指定为 '0'
  100:表示间隔为100us

8 .(首先新建一个终端)新建一个目录,来存放.log文件,如果已存在此目录,清空此目录的文件

  mkdir /rcp-replay-log  

9 . 进入如下目录《««<或者不进入目录直接输入rem按两次tab键就会出现remu命令,在第10步就不用加“./”了»»>》

  cd cicada-rcp-bochs

10 . 进入目录后执行以下命令,进行触发 ,会出现 “The init_rcp_shm has done successfully”

  ./remu $shm-key $times 1 1 $FLAG $LOG_SIZE 《《注意与第7步的次数一致》》

  $ FLAG:
  #0:即使不匹配,原始数据也不会保存
  #1:如果不匹配,则保存原始数据

  $LOG_SIZE:以MB为单位。

  例如:./remu 456789 1000 1 1 1 200 
  触发sampling,shm-key应该与guest相同,
  1000是replay次数,失败的快照将保存在/ rcp-replay-log ,
  log的存储空间是200M

11 . 运行一段时间后,手工结束以上开启的两个终端。进入/rcp-replay-log 目录,执行以下命令:

  ./check_replay_log.py -f 59313replay.log

注意:check_replay_log.py这个脚本是Jane的原始脚本,具体在192.168.199.43,进入终端目录下[root@cicada-nightly-bochs ~]# 有。