Re: [Qemu-devel] [RFC PATCH v1 00/13] CPU and Memory hotplug for PowerPC guests

2015-02-02 Thread Bharata B Rao
On Thu, Jan 29, 2015 at 06:46:30PM +0100, Andreas Färber wrote:
 Hi,
 
 Am 08.01.2015 um 07:10 schrieb Bharata B Rao:
  This patchset enables CPU and memory hotplug support for PowerPC guests.
  
  Changes in this patchset (v1):
  
  - Based on top of Michael Roth's tree
(https://github.com/mdroth/qemu/commits/spapr-hotplug-core) which serves
as base for his PCI hotplug patches too.
  - Switched to device_add/del semantics instead of cpu-add.
 
 Please don't forget to CC me on this. As previously discussed with Jason
 and Christian for s390x, there's certain topology modeling questions
 still unsolved for device-based QOM CPU hot-plug. I have an RFC in the
 works (again) that hopefully gets us a step closer.

I think you are referring to this discussion:
http://lists.gnu.org/archive/html/qemu-devel/2013-09/msg00778.html

Looking forward to your above mentioned RFC.

 
  - Supporting CPU hot unplug now.
  - Added patches to enable memory hotplug.
  - Added ibm,dynamic-reconfiguration-memory support which is needed for
memory hotplug.
  
  v0 - http://lists.nongnu.org/archive/html/qemu-devel/2014-09/msg00752.html
  
  CPU hotplug
  ---
  - Works with BE guest, has issues with LE guest. Has been tested on BE host
only.
  - Adding a core (and all its threads) in response to device_add command.
Similarly removing a core via device_del will remove all the threads.
 
 Earlier discussions concluded that hot-plug needs to happen on a socket
 level, not core. If you're assuming the socket to have one core (as we
 were planning for s390x), that doesn't make much of a difference
 number-wise, but it does in modeling terms. Think what you can
 physically plug onto the mainboard, that's the granularity that
 realized=true/false is going to operate on. A virtual socket may well
 correspond to a thread on some socket/node of the host, but you cannot
 add threads to a core or cores to a chip at runtime.

In PowerPC, guests conform to PAPR specifications and hence the hotplug
behaviour with the real hardware will not matter. For pseries guests
we add CPUs in core granularity.

By default if we don't specify sockets= explicitly, the guest comes with as
many sockets as there are cores with 1 core per socket. However we can
have a guest that has multiple cores in a socket too.

Hence if you have a CPU hotplug model where a socket is added at a time,
I can't see any issues of supporting that with PowerPC hotplug. Based on
the existing topology, we could hotplug as many cores in the socket as needed.
However I would like to hear from others who understand PowerPC architecture
to see if there are any caveats with this model.

Regards,
Bharata.




Re: [Qemu-devel] [RFC PATCH v1 00/13] CPU and Memory hotplug for PowerPC guests

2015-01-29 Thread Andreas Färber
Hi,

Am 08.01.2015 um 07:10 schrieb Bharata B Rao:
 This patchset enables CPU and memory hotplug support for PowerPC guests.
 
 Changes in this patchset (v1):
 
 - Based on top of Michael Roth's tree
   (https://github.com/mdroth/qemu/commits/spapr-hotplug-core) which serves
   as base for his PCI hotplug patches too.
 - Switched to device_add/del semantics instead of cpu-add.

Please don't forget to CC me on this. As previously discussed with Jason
and Christian for s390x, there's certain topology modeling questions
still unsolved for device-based QOM CPU hot-plug. I have an RFC in the
works (again) that hopefully gets us a step closer.

 - Supporting CPU hot unplug now.
 - Added patches to enable memory hotplug.
 - Added ibm,dynamic-reconfiguration-memory support which is needed for
   memory hotplug.
 
 v0 - http://lists.nongnu.org/archive/html/qemu-devel/2014-09/msg00752.html
 
 CPU hotplug
 ---
 - Works with BE guest, has issues with LE guest. Has been tested on BE host
   only.
 - Adding a core (and all its threads) in response to device_add command.
   Similarly removing a core via device_del will remove all the threads.

Earlier discussions concluded that hot-plug needs to happen on a socket
level, not core. If you're assuming the socket to have one core (as we
were planning for s390x), that doesn't make much of a difference
number-wise, but it does in modeling terms. Think what you can
physically plug onto the mainboard, that's the granularity that
realized=true/false is going to operate on. A virtual socket may well
correspond to a thread on some socket/node of the host, but you cannot
add threads to a core or cores to a chip at runtime.

On x86 this may become a functional limitation of what is possible
through cpu-add, so better avoid that mistake for ppc from the start.

Regards,
Andreas

 - Using Gu Zheng's reclaim vCPU objects patch to remove and reuse
   the vCPU objects after CPUs removal.
   (Gu Zheng's original patch:
http://lists.gnu.org/archive/html/qemu-devel/2014-12/msg01829.html)
[snip]

-- 
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Jennifer Guild, Dilip Upmanyu,
Graham Norton; HRB 21284 (AG Nürnberg)



signature.asc
Description: OpenPGP digital signature


Re: [Qemu-devel] [RFC PATCH v1 00/13] CPU and Memory hotplug for PowerPC guests

2015-01-29 Thread Tyrel Datwyler
On 01/07/2015 10:10 PM, Bharata B Rao wrote:
 This patchset enables CPU and memory hotplug support for PowerPC guests.

I missed seeing this as the qemu-ppc list was not included. Can you
please add myself and Nathan on Cc in the future as well.

Tyrel

 
 Changes in this patchset (v1):
 
 - Based on top of Michael Roth's tree
   (https://github.com/mdroth/qemu/commits/spapr-hotplug-core) which serves
   as base for his PCI hotplug patches too.
 - Switched to device_add/del semantics instead of cpu-add.
 - Supporting CPU hot unplug now.
 - Added patches to enable memory hotplug.
 - Added ibm,dynamic-reconfiguration-memory support which is needed for
   memory hotplug.
 
 v0 - http://lists.nongnu.org/archive/html/qemu-devel/2014-09/msg00752.html
 
 CPU hotplug
 ---
 - Works with BE guest, has issues with LE guest. Has been tested on BE host
   only.
 - Adding a core (and all its threads) in response to device_add command.
   Similarly removing a core via device_del will remove all the threads.
 - Using Gu Zheng's reclaim vCPU objects patch to remove and reuse
   the vCPU objects after CPUs removal.
   (Gu Zheng's original patch:
http://lists.gnu.org/archive/html/qemu-devel/2014-12/msg01829.html)
 
 Memory hotplug
 --
 - Able to get an LMB added with the current patchset, but there are issues
   which I am still debugging.
 - Re-using pc-dimm infrastructure (hw/mem/pc-dimm.c) to support memory
   hotplug on PowerPC.
 - Tested with Nathan Fontenot's memory hotplug kernel patches (with additions
   to drive memory hotplug from EPOW interrupt path)
   (https://www.marc.info/?l=linuxppc-embeddedm=141626066317143w=2)
 
 Bharata B Rao (11):
   spapr: Add DRC dt entries for CPUs
   spapr: Consider max_cpus during xics initialization
   spapr: Factor out CPU initialization code into realizefn
   spapr: Support ibm,lrdr-capacity device tree property
   spapr: CPU hotplug support
   spapr: Start all the threads of CPU core when core is hotplugged
   spapr: Enable CPU hotplug for POWER8 CPU family
   spapr: CPU hot unplug support
   spapr: Initialize hotplug memory address space
   spapr: Support ibm,dynamic-reconfiguration-memory
   spapr: Memory hotplug support
 
 Gu Zheng (1):
   cpus, spapr: reclaim allocated vCPU objects
 
 Michael Roth (1):
   spapr: enable PHB/CPU/LMB hotplug for pseries-2.3
 
  cpus.c|  44 +++
  default-configs/ppc64-softmmu.mak |   1 +
  hw/ppc/spapr.c| 744 
 ++
  hw/ppc/spapr_events.c |  11 +-
  hw/ppc/spapr_hcall.c  |  51 ++-
  hw/ppc/spapr_rtas.c   |  28 +-
  include/hw/ppc/spapr.h|  27 +-
  include/qom/cpu.h |  11 +
  include/sysemu/kvm.h  |   1 +
  kvm-all.c |  57 ++-
  target-ppc/translate_init.c   |  50 ++-
  11 files changed, 918 insertions(+), 107 deletions(-)
 




[Qemu-devel] [RFC PATCH v1 00/13] CPU and Memory hotplug for PowerPC guests

2015-01-07 Thread Bharata B Rao
This patchset enables CPU and memory hotplug support for PowerPC guests.

Changes in this patchset (v1):

- Based on top of Michael Roth's tree
  (https://github.com/mdroth/qemu/commits/spapr-hotplug-core) which serves
  as base for his PCI hotplug patches too.
- Switched to device_add/del semantics instead of cpu-add.
- Supporting CPU hot unplug now.
- Added patches to enable memory hotplug.
- Added ibm,dynamic-reconfiguration-memory support which is needed for
  memory hotplug.

v0 - http://lists.nongnu.org/archive/html/qemu-devel/2014-09/msg00752.html

CPU hotplug
---
- Works with BE guest, has issues with LE guest. Has been tested on BE host
  only.
- Adding a core (and all its threads) in response to device_add command.
  Similarly removing a core via device_del will remove all the threads.
- Using Gu Zheng's reclaim vCPU objects patch to remove and reuse
  the vCPU objects after CPUs removal.
  (Gu Zheng's original patch:
   http://lists.gnu.org/archive/html/qemu-devel/2014-12/msg01829.html)

Memory hotplug
--
- Able to get an LMB added with the current patchset, but there are issues
  which I am still debugging.
- Re-using pc-dimm infrastructure (hw/mem/pc-dimm.c) to support memory
  hotplug on PowerPC.
- Tested with Nathan Fontenot's memory hotplug kernel patches (with additions
  to drive memory hotplug from EPOW interrupt path)
  (https://www.marc.info/?l=linuxppc-embeddedm=141626066317143w=2)

Bharata B Rao (11):
  spapr: Add DRC dt entries for CPUs
  spapr: Consider max_cpus during xics initialization
  spapr: Factor out CPU initialization code into realizefn
  spapr: Support ibm,lrdr-capacity device tree property
  spapr: CPU hotplug support
  spapr: Start all the threads of CPU core when core is hotplugged
  spapr: Enable CPU hotplug for POWER8 CPU family
  spapr: CPU hot unplug support
  spapr: Initialize hotplug memory address space
  spapr: Support ibm,dynamic-reconfiguration-memory
  spapr: Memory hotplug support

Gu Zheng (1):
  cpus, spapr: reclaim allocated vCPU objects

Michael Roth (1):
  spapr: enable PHB/CPU/LMB hotplug for pseries-2.3

 cpus.c|  44 +++
 default-configs/ppc64-softmmu.mak |   1 +
 hw/ppc/spapr.c| 744 ++
 hw/ppc/spapr_events.c |  11 +-
 hw/ppc/spapr_hcall.c  |  51 ++-
 hw/ppc/spapr_rtas.c   |  28 +-
 include/hw/ppc/spapr.h|  27 +-
 include/qom/cpu.h |  11 +
 include/sysemu/kvm.h  |   1 +
 kvm-all.c |  57 ++-
 target-ppc/translate_init.c   |  50 ++-
 11 files changed, 918 insertions(+), 107 deletions(-)

-- 
2.1.0