All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 0/7] modify boot order of guest, and take effect after rebooting
@ 2014-07-26  4:45 arei.gonglei
  2014-07-26  4:45 ` [Qemu-devel] [PATCH v3 1/7] bootindex: add modify_boot_device_path function arei.gonglei
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: arei.gonglei @ 2014-07-26  4:45 UTC (permalink / raw)
  To: qemu-devel
  Cc: chenliang88, weidong.huang, mst, aik, hutao, armbru, kraxel,
	akong, agraf, Gonglei, aliguori, gaowanlong, ehabkost, luonengjun,
	peter.huangpeng, hani, stefanha, pbonzini, lcapitulino, kwolf,
	peter.crosthwaite, imammedo, afaerber

From: Gonglei <arei.gonglei@huawei.com>

Sometimes, we want to modify boot order of a guest, but no need to
shutdown it. We can call dynamic changing bootindex of a guest, which
can be assured taking effect just after the guest rebooting.

For example, in P2V scene, we boot a guest and then attach a
new system disk, for copying some thing. We want to assign the
new disk as the booting disk, which means its bootindex=1.

Different nics can be assigen different bootindex dynamically
also make sense.

The patchsets add one qmp interface, and add an fw_cfg_machine_reset()
to achieve it.

Steps of testing:

./qemu-system-x86_64 -enable-kvm -m 4096 -smp 4 -name redhat6.2 -drive \
file=/home/redhat6.2.img,if=none,id=drive-ide0-0-0 \
-device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \
-drive file=/home/RH-DVD1.iso,if=none,id=drive-ide0-0-1 \
-device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1,bootindex=4 \
-vnc 0.0.0.0:10 -netdev type=user,id=net0 \
-device virtio-net-pci,netdev=net0,bootindex=3,id=nic1 \
-netdev type=user,id=net1 -device e1000,netdev=net1,bootindex=2,id=nic2 -monitor stdio
QEMU 2.0.93 monitor - type 'help' for more information
(qemu) set-bootindex ide0-0-1 1
The bootindex 1 has already been used
(qemu) set-bootindex ide0-0-1 5 "/disk@1"
(qemu) set-bootindex ide0-0-1 0
(qemu) system_reset
(qemu) set-bootindex ide0-0-1 1
The bootindex 1 has already been used
(qemu) set-bootindex nic2 0
The bootindex 0 has already been used
(qemu) set-bootindex ide0-0-1 -1
(qemu) set-bootindex nic2 0
(qemu) system_reset
(qemu)

Changes since v1:
 *rework by Gerd's suggestion:
 - split modify and del fw_boot_order for single function.
 - change modify bootindex's realization which simply lookup
   the device and modify the bootindex. if the new bootindex
   has already used by another device just throw an error.
 - change to del_boot_device_path(DeviceState *dev) and simply delete all
   entries belonging to the device.

Changes since v2:
 *address Gerd's reviewing suggestion:
 - use the old entry's suffix, if the caller do not pass it in.
 - call del_boot_device_path() from device_finalize() instead
   of placing it into each individual device.

  Thanks Gerd.

Gonglei (7):
  bootindex: add modify_boot_device_path function
  bootindex: add del_boot_device_path function
  fw_cfg: add fw_cfg_machine_reset function
  bootindex: delete bootindex when device is removed
  qmp: add set-bootindex command
  qemu-monitor: HMP set-bootindex wrapper
  spapr: fix possible memory leak

 hmp-commands.hx           | 15 ++++++++++
 hmp.c                     | 13 ++++++++
 hmp.h                     |  1 +
 hw/core/qdev.c            |  2 ++
 hw/nvram/fw_cfg.c         | 54 +++++++++++++++++++++++++++++-----
 hw/ppc/spapr.c            |  1 +
 include/hw/nvram/fw_cfg.h |  2 ++
 include/sysemu/sysemu.h   |  3 ++
 qapi-schema.json          | 16 ++++++++++
 qmp-commands.hx           | 24 +++++++++++++++
 qmp.c                     | 17 +++++++++++
 vl.c                      | 75 +++++++++++++++++++++++++++++++++++++++++++++++
 12 files changed, 216 insertions(+), 7 deletions(-)

-- 
1.7.12.4

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2014-08-01 14:11 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-26  4:45 [Qemu-devel] [PATCH v3 0/7] modify boot order of guest, and take effect after rebooting arei.gonglei
2014-07-26  4:45 ` [Qemu-devel] [PATCH v3 1/7] bootindex: add modify_boot_device_path function arei.gonglei
2014-07-27  3:51   ` 陈梁
2014-07-28  2:57     ` Gonglei (Arei)
2014-07-26  4:45 ` [Qemu-devel] [PATCH v3 2/7] bootindex: add del_boot_device_path function arei.gonglei
2014-07-31  2:21   ` Eric Blake
2014-07-31  2:24     ` Gonglei (Arei)
2014-08-01 14:06   ` Eduardo Habkost
2014-07-26  4:45 ` [Qemu-devel] [PATCH v3 3/7] fw_cfg: add fw_cfg_machine_reset function arei.gonglei
2014-07-26  4:45 ` [Qemu-devel] [PATCH v3 4/7] bootindex: delete bootindex when device is removed arei.gonglei
2014-07-26  4:45 ` [Qemu-devel] [PATCH v3 5/7] qmp: add set-bootindex command arei.gonglei
2014-07-30 22:36   ` Eric Blake
2014-07-31  1:22     ` Gonglei (Arei)
2014-07-26  4:45 ` [Qemu-devel] [PATCH v3 6/7] qemu-monitor: HMP set-bootindex wrapper arei.gonglei
2014-07-26  4:45 ` [Qemu-devel] [PATCH v3 7/7] spapr: fix possible memory leak arei.gonglei

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.