Hide Forgot
Description: guest can't start nomarly after change the max memmory with the command setmaxmem. Like do this use setmaxmem set the guest's memory 1G --> 4G start normally 4G --> 400MB start normally 400MB --> 4G guest kernel panic How reproduce: 100% Version: libvirt-0.9.8-1.el6.x86_64 qemu-kvm-0.12.1.2-2.209.el6.x86_64 kernel-2.6.32-220.el6.x86_64 --------------------------------------------------------------------------------- Steps: 1. Have a healthy shut down guest. [root@timesu tmp]# virsh dominfo rhel6 Id: - Name: rhel6 UUID: 075d6f58-cb21-2cbc-796c-60b389457912 OS Type: hvm State: shut off CPU(s): 2 Max memory: 1048576 kB Used memory: 1048576 kB Persistent: yes Autostart: disable Managed save: no Security model: selinux Security DOI: 0 [root@timesu ~]# free total used free shared buffers cached Mem: 7949448 1297032 6652416 0 182496 522712 -/+ buffers/cache: 591824 7357624 Swap: 0 0 0 Note:My guest have 1G memory with both Max and Used.It's important for the step next. -------------------------------------------------------------------------------------- 2.Set the guest's Max memory to 4G and make sure it can start normally. [root@timesu tmp]# virsh setmaxmem rhel6 4194300 [root@timesu tmp]# virsh start rhel6 Domain rhel6 started [root@timesu tmp]# virsh dominfo rhel6 Id: 53 Name: rhel6 UUID: 075d6f58-cb21-2cbc-796c-60b389457912 OS Type: hvm State: running CPU(s): 2 CPU time: 12.7s Max memory: 4194300 kB Used memory: 1048576 kB Persistent: yes Autostart: disable Managed save: no Security model: selinux Security DOI: 0 Security label: system_u:system_r:svirt_t:s0:c746,c927 (enforcing) [root@timesu ~]# free total used free shared buffers cached Mem: 7949448 1986112 5963336 0 182496 522388 -/+ buffers/cache: 1281228 6668220 Swap: 0 0 0 [root@timesu tmp]# virsh destroy rhel6 Domain rhel6 destroyed ---------------------------------------------------------------------------------- 3. set the guest's Max memory to 400M and make sure it can start normally. And make sure set 400M not 800M or bigger too. I will explain the reason in Additional info. [root@timesu tmp]# virsh setmaxmem rhel6 419430 [root@timesu tmp]# virsh start rhel6 Domain rhel6 started [root@timesu tmp]# virsh dominfo rhel6 Id: 54 Name: rhel6 UUID: 075d6f58-cb21-2cbc-796c-60b389457912 OS Type: hvm State: running CPU(s): 2 CPU time: 19.7s Max memory: 419430 kB Used memory: 419432 kB Persistent: yes Autostart: disable Managed save: no Security model: selinux Security DOI: 0 Security label: system_u:system_r:svirt_t:s0:c471,c643 (enforcing) [root@timesu ~]# free total used free shared buffers cached Mem: 7949448 1362224 6587224 0 182496 523288 -/+ buffers/cache: 656440 7293008 Swap: 0 0 0 [root@timesu tmp]# virsh destroy rhel6 Domain rhel6 destroyed Note:Here is a question. when the guest fully started , i use dominfo to get the information above. the Used is bigger than the Max.But the guest works fine. ------------------------------------------------------------------------------------ 4.set the guest's Max memory to 4G and I hope it can start normally - -. [root@timesu tmp]# virsh setmaxmem rhel6 4194300 [root@timesu tmp]# virsh start rhel6 Domain rhel6 started [root@timesu tmp]# virsh dominfo rhel6 Id: 55 Name: rhel6 UUID: 075d6f58-cb21-2cbc-796c-60b389457912 OS Type: hvm State: running CPU(s): 2 CPU time: 42.1s Max memory: 4194300 kB Used memory: 465916 kB Persistent: yes Autostart: disable Managed save: no Security model: selinux Security DOI: 0 Security label: system_u:system_r:svirt_t:s0:c279,c620 (enforcing) [root@timesu ~]# free total used free shared buffers cached Mem: 7949448 2034736 5914712 0 182496 522888 -/+ buffers/cache: 1329352 6620096 Swap: 0 0 0 ================================================================================ At this time , the guest was hung.There was NO error log in libvirt.log and the rhel6.log. ================================================================================ [root@timesu tmp]# virsh destroy rhel6 Domain rhel6 destroyed Note:I upload a snapshot of my guest when it hung in attachment. -------------------------------------------------------------------------------------- PS: For restore the guest , you can do this. [root@timesu tmp]# virsh setmaxmem rhel6 1024100 [root@timesu tmp]# virsh start rhel6 Domain rhel6 started [root@timesu tmp]# virsh dominfo rhel6 Id: 56 Name: rhel6 UUID: 075d6f58-cb21-2cbc-796c-60b389457912 OS Type: hvm State: running CPU(s): 2 CPU time: 9.8s Max memory: 1024100 kB Used memory: 419432 kB Persistent: yes Autostart: disable Managed save: no Security model: selinux Security DOI: 0 Security label: system_u:system_r:svirt_t:s0:c626,c822 (enforcing) Now it becomes healthy again.If you want to hung it again , just repeat the step 2-4. -------------------------------------------------------------------------------- Actual result the guest can't start normally. -------------------------------------------------------------------------------- Expect result the guest can start normally. -------------------------------------------------------------------------------- Additional info: For step 3:If set max's memory to 800M , the guest can work well. For reproduce the issue , you need change the max's by a wide margin. I don't know the accurate value, but 400M to 4G is enough to reproduce the problem. -------------------------------------------------------------------------------- Here is the guest's qemu log when it hung: LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none /usr/libexec/qemu-kvm -S -M rhel6.2.0 -enable-kvm -m 4096 -smp 2,sockets=2,cores=1,threads=1 -name rhel6 -uuid 075d6f58-cb21-2cbc-796c-60b389457912 -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/rhel6.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -drive file=/var/lib/libvirt/images/rhel6.img,if=none,id=drive-virtio-disk0,format=raw,cache=none -device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=26,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:48:c7:68,bus=pci.0,addr=0x7 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -usb -device usb-tablet,id=input0 -vnc 127.0.0.1:0 -vga cirrus -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 char device redirected to /dev/pts/1 qemu: terminating on signal 15 from pid 25848
Seems like you booted a 4G guest and allowed it only 400M using the balloon driver. You can't expect the VM to live w/ any number of RAM.