|
From: | Daniel Henrique Barboza |
Subject: | Re: [Qemu-ppc] [PATCHv2 0/8] spapr: DRC cleanups (part VI) |
Date: | Thu, 13 Jul 2017 07:13:23 -0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 |
On 07/12/2017 09:57 PM, David Gibson wrote:
On Wed, Jul 12, 2017 at 10:48:38AM -0300, Daniel Henrique Barboza wrote:The dreaded Libvirt hotplug-migrate-hotunplug scenario is working nicely.Good to hear.device_add when the machine is in RUN_STATE_PRELAUNCH (-S) still doesn't work but it is expected - as discussed in "[RFC drcVI PATCH] spapr: reset DRCs on migration pre_load​", this scenario can't be fixed solely by this DRC cleanup.Hmm.. what's the exact test case you're using here? The prelaunch case I tried _did_ work (queueing the event during prelaunch, then completing the hotplug sequence once the guest had booted).
This is the test case:sudo ./qemu-system-ppc64 -name migrate_qemu -boot strict=on --enable-kvm -device nec-usb-xhci,id=usb,bus=pci.0,addr=0xf -device spapr-vscsi,id=scsi0,reg=0x2000 -smp 1,maxcpus=4,sockets=4,cores=1,threads=1 --machine pseries,accel=kvm,usb=off,dump-guest-core=off -m 4G,slots=32,maxmem=32G -drive file=/home/danielhb/vm_imgs/ubuntu1704.qcow2,format=qcow2,if=none,id=drive-virtio-disk0,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -nographic -S
QEMU 2.9.50 monitor - type 'help' for more information (qemu) (qemu) device_add host-spapr-cpu-core,id=core1,core-id=1 (qemu) cont (...) After OS boots: address@hidden:~$ lscpu Architecture: ppc64le Byte Order: Little Endian CPU(s): 1 On-line CPU(s) list: 0 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 1 NUMA node(s): 1 Model: 2.1 (pvr 004b 0201) Model name: POWER8E (raw), altivec supported Hypervisor vendor: horizontal Virtualization type: full L1d cache: 64K L1i cache: 32K NUMA node0 CPU(s): 0 address@hidden:~$ (qemu) (qemu) info cpus * CPU #0: nip=0xc0000000000a3e0c thread_id=6134 CPU #1: nip=0x0000000000000000 (halted) thread_id=6163 (qemu) info hotpluggable-cpus Hotpluggable CPUs: type: "host-spapr-cpu-core" vcpus_count: "1" CPUInstance Properties: core-id: "3" type: "host-spapr-cpu-core" vcpus_count: "1" CPUInstance Properties: core-id: "2" type: "host-spapr-cpu-core" vcpus_count: "1" qom_path: "/machine/peripheral/core1" CPUInstance Properties: core-id: "1" type: "host-spapr-cpu-core" vcpus_count: "1" qom_path: "/machine/unattached/device[0]" CPUInstance Properties: core-id: "0" (qemu)I am not aware of anyone (e.g. Libvirt) using device_add at that point so it's not
urgent to make this work AFAIC. I was just curious of why it doesn't. Daniel
Given that we'll review the DT code sometime in the future I guess we can postpone the fix for device_adding in pre-launch for that time. Tested-by: Daniel Barboza <address@hidden> On 07/12/2017 02:53 AM, David Gibson wrote:This sixth set of DRC cleanup patches is a complete rework of DRC state management. We stop tracking some unnecessary things, and change the basic state representation to a simpler and more robust model. Many of the patches in this set "break" migration from earlier git snapshots, but not from any released qemu version. The previous migration stream format had multiple problems, so better to fix them now, before 2.10 is out. Although there are certainly more things that can be improved in the DRC system, with this series we should have a solid foundation for migrating DRCs - the state trasferred is about as minimal and well defined as it's possible to be. Changes since v1: * Rebased onto current tree * Added cleanup to unplug path * Added restriction of DR-indicator to physical DRCs * Included revised version of Laurent's patch to correctly handle things "hot" plugged before incoming migration David Gibson (7): spapr: Remove 'awaiting_allocation' DRC flag spapr: Simplify unplug path spapr: Refactor spapr_drc_detach() spapr: Cleanups relating to DRC awaiting_release field spapr: Consolidate DRC state variables spapr: Remove sPAPRConfigureConnectorState sub-structure spapr: Implement DR-indicator for physical DRCs only Laurent Vivier (1): spapr: Treat devices added before inbound migration as coldplugged hw/ppc/spapr.c | 89 +++------- hw/ppc/spapr_drc.c | 399 ++++++++++++++++++++++++--------------------- hw/ppc/spapr_pci.c | 17 +- hw/ppc/trace-events | 3 +- include/hw/ppc/spapr_drc.h | 74 ++++++--- 5 files changed, 301 insertions(+), 281 deletions(-)
[Prev in Thread] | Current Thread | [Next in Thread] |