qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 063cac: target-ppc: Fix number of threads per


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 063cac: target-ppc: Fix number of threads per core limit
Date: Tue, 15 Jul 2014 09:00:06 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 063cac5326518abfcd4f3f0eaace3fa9b1a97424
      
https://github.com/qemu/qemu/commit/063cac5326518abfcd4f3f0eaace3fa9b1a97424
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2014-07-15 (Tue, 15 Jul 2014)

  Changed paths:
    M target-ppc/translate_init.c

  Log Message:
  -----------
  target-ppc: Fix number of threads per core limit

The number of threads per core is different for POWER6/7/8 CPUs.
Guest systems do not expect to see more threads per core than
a specific CPU supports so we need to limit this number.
This limit is implemented by ppc_get_compat_smt_threads().

However it has a problem as it checks for PCR (Processor Compatibility
Register) mask, 2.05 means 2 threads per core, 2.06 - 4 threads.
For POWER8 one would expect PCR_COMPAT_2_07 bit set and
ppc_get_compat_smt_threads() checking for it to return 8 threads
per core. But the latest PowerISA spec now is 2.07 and there is
no 2.07 compatibility mode defined, QEMU does not define it either
(will be in PowerISA 2.08).

Instead of relying on a PCR mask, this uses kvmppc_smt_threads()
which returns the maximum supported threads number for KVM or
1 for TCG.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: e938ba0c35b0a6732a380b712b0f19511375a6a4
      
https://github.com/qemu/qemu/commit/e938ba0c35b0a6732a380b712b0f19511375a6a4
  Author: Shreyas B. Prabhu <address@hidden>
  Date:   2014-07-15 (Tue, 15 Jul 2014)

  Changed paths:
    M hw/ppc/e500.c
    M hw/ppc/mac_newworld.c
    M hw/ppc/mac_oldworld.c
    M hw/ppc/ppc405_boards.c
    M hw/ppc/ppc405_uc.c
    M hw/ppc/ppc4xx_devs.c
    M hw/ppc/prep.c
    M hw/ppc/virtex_ml507.c

  Log Message:
  -----------
  ppc: memory: Replace memory_region_init_ram with 
memory_region_allocate_system_memory

Commit 0b183fc871:"memory: move mem_path handling to
memory_region_allocate_system_memory" split memory_region_init_ram and
memory_region_init_ram_from_file. Also it moved mem-path handling a step
up from memory_region_init_ram to memory_region_allocate_system_memory.

Therefore for any board that uses memory_region_init_ram directly,
-mem-path is not supported.

Fix this by replacing memory_region_init_ram with
memory_region_allocate_system_memory.

Signed-off-by: Shreyas B. Prabhu <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 658fa66b8192e4b755880609f2845aef9797d048
      
https://github.com/qemu/qemu/commit/658fa66b8192e4b755880609f2845aef9797d048
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2014-07-15 (Tue, 15 Jul 2014)

  Changed paths:
    M hw/ppc/spapr.c
    M target-ppc/kvm.c
    M target-ppc/kvm_ppc.h

  Log Message:
  -----------
  spapr: Move RMA memory region registration code

PPC970 does not support VRMA (virtual RMA) so real memory required
for SLOF to execute must be allocated by the KVM_ALLOCATE_RMA ioctl.
Later this memory is used as a part of the guest RAM area.
The RMA allocating code also registers a memory region for this piece
of RAM.

We are going to simplify memory regions layout: RMA memory region
will be a subregion in the RAM memory region, both starting from zero.
This way we will not have to take care of start address alignment for
the piece of RAM next to the RMA.

This moves memory region business closer to the RAM memory region
creation/allocation code.

As this is a mechanical patch, no change in behaviour is expected.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
[agraf: fix compilation on non-kvm systems]
Signed-off-by: Alexander Graf <address@hidden>


  Commit: f92f5da108225fc7dcc5f357fdc473083890fe3f
      
https://github.com/qemu/qemu/commit/f92f5da108225fc7dcc5f357fdc473083890fe3f
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2014-07-15 (Tue, 15 Jul 2014)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: Enable use of huge pages

0b183fc87 "memory: move mem_path handling to
memory_region_allocate_system_memory" disabled -mempath use for all
machines that do not use memory_region_allocate_system_memory() to
register RAM. Since SPAPR uses memory_region_init_ram(), the huge pages
support was disabled for it.

This replaces memory_region_init_ram()+vmstate_register_ram_global() with
memory_region_allocate_system_memory() to get huge pages back.

This changes RAM size from (ram_limit - rma_alloc_size) to ram_limit as
the previous patch moved RMA memory region allocation after RAM allocation
and therefore this change does not have immediate effect but simplifies
the code.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 27e27782f78212cbd97170b0854c35a0738cfd34
      
https://github.com/qemu/qemu/commit/27e27782f78212cbd97170b0854c35a0738cfd34
  Author: Gavin Shan <address@hidden>
  Date:   2014-07-15 (Tue, 15 Jul 2014)

  Changed paths:
    M hw/misc/vfio.c
    M hw/ppc/spapr_iommu.c

  Log Message:
  -----------
  sPAPR/IOMMU: Fix TCE entry permission

The permission of TCE entry should exclude physical base address.
Otherwise, unmapping TCE entry can be interpreted to mapping TCE
entry wrongly for VFIO devices.

Signed-off-by: Gavin Shan <address@hidden>
Acked-by: Alex Williamson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 146ae00192ffcbd78f6b11fa78c72d1b3d628d8a
      
https://github.com/qemu/qemu/commit/146ae00192ffcbd78f6b11fa78c72d1b3d628d8a
  Author: Peter Maydell <address@hidden>
  Date:   2014-07-15 (Tue, 15 Jul 2014)

  Changed paths:
    M hw/misc/vfio.c
    M hw/ppc/e500.c
    M hw/ppc/mac_newworld.c
    M hw/ppc/mac_oldworld.c
    M hw/ppc/ppc405_boards.c
    M hw/ppc/ppc405_uc.c
    M hw/ppc/ppc4xx_devs.c
    M hw/ppc/prep.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_iommu.c
    M hw/ppc/virtex_ml507.c
    M target-ppc/kvm.c
    M target-ppc/kvm_ppc.h
    M target-ppc/translate_init.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/agraf/tags/signed-ppc-for-upstream' 
into staging

Patch queue for ppc - 2014-07-15

Some more bug fixes during the RC phase:

  - Fix huge page mapping regressions
  - Fix Book3S thread number enumeration
  - Fix Book3S VFIO permission issue

# gpg: Signature made Tue 15 Jul 2014 15:13:54 BST using RSA key ID 03FEDC60
# gpg: Can't check signature: public key not found

* remotes/agraf/tags/signed-ppc-for-upstream:
  sPAPR/IOMMU: Fix TCE entry permission
  spapr: Enable use of huge pages
  spapr: Move RMA memory region registration code
  ppc: memory: Replace memory_region_init_ram with 
memory_region_allocate_system_memory
  target-ppc: Fix number of threads per core limit

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/2c65ebe64656...146ae00192ff

reply via email to

[Prev in Thread] Current Thread [Next in Thread]