On Tue, 31 Mar 2020 07:01:23 -0400 Janosch Frank <[email protected]> wrote:
> The cpu number reporting is handled by KVM and QEMU only fills in the > VM name, uuid and other values. > > Unfortunately KVM doesn't report reserved cpus and doesn't even know > they exist until the are created via the ioctl. > > So let's fix up the cpu values after KVM has written its values to the > 3.2.2 sysib. To be consistent We use the same code to retrieve the cpu "...consistent, we..." (fixed up while applying) > numbers as the STSI TCG code in target/s390x/misc_helper.c:HELPER(stsi). > > Signed-off-by: Janosch Frank <[email protected]> > Reviewed-by: David Hildenbrand <[email protected]> > --- > > * Fixed commit message and add rev-by > * Calculating total_cpus from configured + reserved > > --- > target/s390x/kvm.c | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c > index 3630c15f45a48864..69881a0da0b31f72 100644 > --- a/target/s390x/kvm.c > +++ b/target/s390x/kvm.c > @@ -1819,8 +1819,10 @@ static int handle_tsch(S390CPU *cpu) > > static void insert_stsi_3_2_2(S390CPU *cpu, __u64 addr, uint8_t ar) > { > + const MachineState *ms = MACHINE(qdev_get_machine()); > + uint16_t conf_cpus = 0, reserved_cpus = 0; > SysIB_322 sysib; > - int del; > + int del, i; > > if (s390_is_pv()) { > s390_cpu_pv_mem_read(cpu, 0, &sysib, sizeof(sysib)); This is against s390-next; rebased and applied to s390-fixes (please double check). [I'm holding off rebasing s390-next on top of s390-fixes resp. master; I'll rather do that once after all pieces including the headers update are in place.]
