[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 0/1] Check SMT based on KVM_CAP_PPC_SMT_POSSIBLE
From: |
Jose Ricardo Ziviani |
Subject: |
[Qemu-ppc] [PATCH 0/1] Check SMT based on KVM_CAP_PPC_SMT_POSSIBLE |
Date: |
Fri, 5 Jan 2018 22:47:21 -0200 |
If one defines a P9 guest like -smp sockets=1,cores=1,threads=8 QEMU will
silently changes threads to 4:
(guest) # lscpu
Architecture: ppc64le
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 4
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
...
(qemu) info cpus
* CPU #0: nip=0xc0000000000db9cc thread_id=9440
CPU #1: nip=0xc0000000000db9cc thread_id=9441
CPU #2: nip=0xc0000000000db9cc thread_id=9442
CPU #3: nip=0xc0000000000db9cc thread_id=9443
CPU #4: nip=0x0000000000000100 (halted) thread_id=9444
CPU #5: nip=0x0000000000000100 (halted) thread_id=9445
CPU #6: nip=0x0000000000000100 (halted) thread_id=9446
CPU #7: nip=0x0000000000000100 (halted) thread_id=9447
This behavior is causing confusion and QEMU will crash if one tries to hotplug
a CPU. QEMU already has a number of SMT sane checking and this patch adds
another one: it verifies if KVM supports (KVM_CAP_PPC_SMT_POSSIBLE) the
required number of threads instead of impose a value defined in the compat
table.
Result:
(guest) # lscpu
Architecture: ppc64le
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 8
Core(s) per socket: 1
Socket(s): 1
...
(qemu) info cpus
* CPU #0: nip=0xc0000000000d30ac thread_id=80197
CPU #1: nip=0xc0000000000d30ac thread_id=80198
CPU #2: nip=0xc0000000000d30ac thread_id=80199
CPU #3: nip=0xc0000000000d30ac thread_id=80200
CPU #4: nip=0xc0000000000d30ac thread_id=80201
CPU #5: nip=0xc0000000000d30ac thread_id=80202
CPU #6: nip=0xc0000000000d30ac thread_id=80203
CPU #7: nip=0xc0000000000d30ac thread_id=80204
This patch is based on ppc-for-2.12
Jose Ricardo Ziviani (1):
spapr: Check SMT based on KVM_CAP_PPC_SMT_POSSIBLE
hw/ppc/spapr.c | 14 +++++++++++++-
hw/ppc/trace-events | 1 +
target/ppc/kvm.c | 5 +++++
target/ppc/kvm_ppc.h | 6 ++++++
4 files changed, 25 insertions(+), 1 deletion(-)
--
2.14.1
- [Qemu-ppc] [PATCH 0/1] Check SMT based on KVM_CAP_PPC_SMT_POSSIBLE,
Jose Ricardo Ziviani <=