On 4/20/22 20:25, Heiko Carstens wrote:
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?
Take care that the comment is also wrong.
I will of course change it too.
--
Pierre Morel
IBM Lab Boeblingen