On Wed, Apr 20, 2022 at 03:22:41PM +0200, Claudio Imbrenda wrote: > On Wed, 20 Apr 2022 14:05:00 +0200 > Heiko Carstens <hca@xxxxxxxxxxxxx> wrote: > > > > +static inline bool kvm_s390_topology_changed(struct kvm_vcpu *vcpu) > > > +{ > > > + if (!test_kvm_facility(vcpu->kvm, 11)) > > > + return false; > > > + > > > + /* A new vCPU has been hotplugged */ > > > + if (vcpu->arch.prev_cpu == S390_KVM_TOPOLOGY_NEW_CPU) > > > + return true; > > > + > > > + /* The real CPU backing up the vCPU moved to another socket */ > > > + if (cpumask_test_cpu(vcpu->cpu, > > > + topology_core_cpumask(vcpu->arch.prev_cpu))) > > > + return true; > > > + > > > + return false; > > > +} > > > > This seems to be wrong. I'd guess that you need > > > > if (cpumask_test_cpu(vcpu->cpu, > > topology_core_cpumask(vcpu->arch.prev_cpu))) > > --> return false; > > --> return true; > > so if the CPU moved to a different socket, it's not a change? > and if nothing happened, it is a change? How do you translate the above code to your statement?