diff for duplicates of <20170829095859.GT24649@cbox> diff --git a/a/1.txt b/N1/1.txt index 3a2093f..12d1031 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -173,7 +173,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > +++ b/arch/powerpc/kvm/book3s_xics.c > @@ -966,7 +966,7 @@ static int xics_debug_show(struct seq_file *m, void *private) > -> seq_printf(m, "=====\nICP state\n=====\n"); +> seq_printf(m, "=========\nICP state\n=========\n"); > > - kvm_for_each_vcpu(i, vcpu, kvm) { > + kvm_for_each_vcpu(vcpu, kvm) { @@ -192,7 +192,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > > - kvm_for_each_vcpu(i, vcpu, kvm) { > + kvm_for_each_vcpu(vcpu, kvm) { -> if (vcpu->arch.icp && nr = vcpu->arch.icp->server_num) +> if (vcpu->arch.icp && nr == vcpu->arch.icp->server_num) > return vcpu->arch.icp; > } > diff --git a/arch/powerpc/kvm/book3s_xive.c b/arch/powerpc/kvm/book3s_xive.c @@ -273,7 +273,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > if (!kvm) > return 0; > -> seq_printf(m, "=====\nVCPU state\n=====\n"); +> seq_printf(m, "=========\nVCPU state\n=========\n"); > > - kvm_for_each_vcpu(i, vcpu, kvm) { > + kvm_for_each_vcpu(vcpu, kvm) { @@ -292,7 +292,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > > - kvm_for_each_vcpu(i, vcpu, kvm) { > + kvm_for_each_vcpu(vcpu, kvm) { -> if (vcpu->arch.xive_vcpu && nr = vcpu->arch.xive_vcpu->server_num) +> if (vcpu->arch.xive_vcpu && nr == vcpu->arch.xive_vcpu->server_num) > return vcpu; > } > diff --git a/arch/powerpc/kvm/e500_emulate.c b/arch/powerpc/kvm/e500_emulate.c @@ -312,7 +312,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > - kvm_for_each_vcpu(i, cvcpu, vcpu->kvm) { > + kvm_for_each_vcpu(cvcpu, vcpu->kvm) { > int cpir = cvcpu->arch.shared->pir; -> if ((param & PPC_DBELL_MSG_BRDCAST) || (cpir = pir)) { +> if ((param & PPC_DBELL_MSG_BRDCAST) || (cpir == pir)) { > set_bit(prio, &cvcpu->arch.pending_exceptions); > diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c > index 1c563545473c..633d3bb501c1 100644 @@ -555,11 +555,11 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > > if (vpidx < KVM_MAX_VCPUS) > vcpu = kvm_get_vcpu(kvm, vpidx); -> if (vcpu && vcpu_to_hv_vcpu(vcpu)->vp_index = vpidx) +> if (vcpu && vcpu_to_hv_vcpu(vcpu)->vp_index == vpidx) > return vcpu; > - kvm_for_each_vcpu(i, vcpu, kvm) > + kvm_for_each_vcpu(vcpu, kvm) -> if (vcpu_to_hv_vcpu(vcpu)->vp_index = vpidx) +> if (vcpu_to_hv_vcpu(vcpu)->vp_index == vpidx) > return vcpu; > return NULL; > diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c @@ -843,7 +843,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > list_for_each_entry(kvm, &vm_list, vm_list) { > - kvm_for_each_vcpu(i, vcpu, kvm) { > + kvm_for_each_vcpu(vcpu, kvm) { -> if (!stable && vcpu->cpu = smp_processor_id()) +> if (!stable && vcpu->cpu == smp_processor_id()) > kvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu); > if (stable && vcpu->arch.last_host_tsc > local_tsc) { > @@ -7850,7 +7846,7 @@ int kvm_arch_hardware_enable(void) @@ -925,11 +925,11 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > - idx++; \ > - if (idx >= atomic_read(&kvm->online_vcpus)) \ > - idx = 0; \ -> - if (idx = from) \ +> - if (idx == from) \ > + vcpup = list_entry_rcu(vcpup->vcpu_list.next, typeof(*vcpup), vcpu_list); \ -> + if (&vcpup->vcpu_list = &kvm->vcpu_list) \ +> + if (&vcpup->vcpu_list == &kvm->vcpu_list) \ > + vcpup = list_entry_rcu(kvm->vcpu_list.next, typeof(*vcpup), vcpu_list); \ -> + if (vcpup = from) \ +> + if (vcpup == from) \ > vcpup = NULL; \ > - else \ > - vcpup = kvm_get_vcpu(kvm, idx); \ @@ -945,11 +945,11 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > return NULL; > @@ -522,7 +518,7 @@ static inline struct kvm_vcpu *kvm_get_vcpu_by_id(struct kvm *kvm, int id) > vcpu = kvm_get_vcpu(kvm, id); -> if (vcpu && vcpu->vcpu_id = id) +> if (vcpu && vcpu->vcpu_id == id) > return vcpu; > - kvm_for_each_vcpu(i, vcpu, kvm) > + kvm_for_each_vcpu(vcpu, kvm) -> if (vcpu->vcpu_id = id) +> if (vcpu->vcpu_id == id) > return vcpu; > return NULL; > diff --git a/virt/kvm/arm/arch_timer.c b/virt/kvm/arm/arch_timer.c @@ -1047,7 +1047,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > mpidr &= MPIDR_HWID_BITMASK; > - kvm_for_each_vcpu(i, vcpu, kvm) { > + kvm_for_each_vcpu(vcpu, kvm) { -> if (mpidr = kvm_vcpu_get_mpidr_aff(vcpu)) +> if (mpidr == kvm_vcpu_get_mpidr_aff(vcpu)) > return vcpu; > } > diff --git a/virt/kvm/arm/pmu.c b/virt/kvm/arm/pmu.c @@ -1086,7 +1086,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > - kvm_for_each_vcpu(i, tmp, kvm) { > + kvm_for_each_vcpu(tmp, kvm) { > mpidr = kvm_vcpu_get_mpidr_aff(tmp); -> if ((mpidr & target_affinity_mask) = target_affinity) { +> if ((mpidr & target_affinity_mask) == target_affinity) { > matching_cpus++; > @@ -169,7 +169,6 @@ static unsigned long kvm_psci_vcpu_affinity_info(struct kvm_vcpu *vcpu) > @@ -1198,7 +1198,7 @@ unlock_all_vcpus ? > + kvm_for_each_vcpu(tmp_vcpu, kvm) { > + mutex_unlock(&tmp_vcpu->mutex); > + -> + if (tmp_vcpu = last_locked) +> + if (tmp_vcpu == last_locked) > + return; > + } > } diff --git a/a/content_digest b/N1/content_digest index 7d96eb0..c713870 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -2,7 +2,7 @@ "ref\020170821203530.9266-9-rkrcmar@redhat.com\0" "From\0Christoffer Dall <cdall@linaro.org>\0" "Subject\0Re: [PATCH RFC v3 8/9] KVM: implement kvm_for_each_vcpu with a list\0" - "Date\0Tue, 29 Aug 2017 09:58:59 +0000\0" + "Date\0Tue, 29 Aug 2017 11:58:59 +0200\0" "To\0Radim Kr\304\215m\303\241\305\231 <rkrcmar@redhat.com>\0" "Cc\0linux-kernel@vger.kernel.org" kvm@vger.kernel.org @@ -195,7 +195,7 @@ "> +++ b/arch/powerpc/kvm/book3s_xics.c\n" "> @@ -966,7 +966,7 @@ static int xics_debug_show(struct seq_file *m, void *private)\n" "> \n" - "> \tseq_printf(m, \"=====\\nICP state\\n=====\\n\");\n" + "> \tseq_printf(m, \"=========\\nICP state\\n=========\\n\");\n" "> \n" "> -\tkvm_for_each_vcpu(i, vcpu, kvm) {\n" "> +\tkvm_for_each_vcpu(vcpu, kvm) {\n" @@ -214,7 +214,7 @@ "> \n" "> -\tkvm_for_each_vcpu(i, vcpu, kvm) {\n" "> +\tkvm_for_each_vcpu(vcpu, kvm) {\n" - "> \t\tif (vcpu->arch.icp && nr = vcpu->arch.icp->server_num)\n" + "> \t\tif (vcpu->arch.icp && nr == vcpu->arch.icp->server_num)\n" "> \t\t\treturn vcpu->arch.icp;\n" "> \t}\n" "> diff --git a/arch/powerpc/kvm/book3s_xive.c b/arch/powerpc/kvm/book3s_xive.c\n" @@ -295,7 +295,7 @@ "> \tif (!kvm)\n" "> \t\treturn 0;\n" "> \n" - "> \tseq_printf(m, \"=====\\nVCPU state\\n=====\\n\");\n" + "> \tseq_printf(m, \"=========\\nVCPU state\\n=========\\n\");\n" "> \n" "> -\tkvm_for_each_vcpu(i, vcpu, kvm) {\n" "> +\tkvm_for_each_vcpu(vcpu, kvm) {\n" @@ -314,7 +314,7 @@ "> \n" "> -\tkvm_for_each_vcpu(i, vcpu, kvm) {\n" "> +\tkvm_for_each_vcpu(vcpu, kvm) {\n" - "> \t\tif (vcpu->arch.xive_vcpu && nr = vcpu->arch.xive_vcpu->server_num)\n" + "> \t\tif (vcpu->arch.xive_vcpu && nr == vcpu->arch.xive_vcpu->server_num)\n" "> \t\t\treturn vcpu;\n" "> \t}\n" "> diff --git a/arch/powerpc/kvm/e500_emulate.c b/arch/powerpc/kvm/e500_emulate.c\n" @@ -334,7 +334,7 @@ "> -\tkvm_for_each_vcpu(i, cvcpu, vcpu->kvm) {\n" "> +\tkvm_for_each_vcpu(cvcpu, vcpu->kvm) {\n" "> \t\tint cpir = cvcpu->arch.shared->pir;\n" - "> \t\tif ((param & PPC_DBELL_MSG_BRDCAST) || (cpir = pir)) {\n" + "> \t\tif ((param & PPC_DBELL_MSG_BRDCAST) || (cpir == pir)) {\n" "> \t\t\tset_bit(prio, &cvcpu->arch.pending_exceptions);\n" "> diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c\n" "> index 1c563545473c..633d3bb501c1 100644\n" @@ -577,11 +577,11 @@ "> \n" "> \tif (vpidx < KVM_MAX_VCPUS)\n" "> \t\tvcpu = kvm_get_vcpu(kvm, vpidx);\n" - "> \tif (vcpu && vcpu_to_hv_vcpu(vcpu)->vp_index = vpidx)\n" + "> \tif (vcpu && vcpu_to_hv_vcpu(vcpu)->vp_index == vpidx)\n" "> \t\treturn vcpu;\n" "> -\tkvm_for_each_vcpu(i, vcpu, kvm)\n" "> +\tkvm_for_each_vcpu(vcpu, kvm)\n" - "> \t\tif (vcpu_to_hv_vcpu(vcpu)->vp_index = vpidx)\n" + "> \t\tif (vcpu_to_hv_vcpu(vcpu)->vp_index == vpidx)\n" "> \t\t\treturn vcpu;\n" "> \treturn NULL;\n" "> diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c\n" @@ -865,7 +865,7 @@ "> \tlist_for_each_entry(kvm, &vm_list, vm_list) {\n" "> -\t\tkvm_for_each_vcpu(i, vcpu, kvm) {\n" "> +\t\tkvm_for_each_vcpu(vcpu, kvm) {\n" - "> \t\t\tif (!stable && vcpu->cpu = smp_processor_id())\n" + "> \t\t\tif (!stable && vcpu->cpu == smp_processor_id())\n" "> \t\t\t\tkvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu);\n" "> \t\t\tif (stable && vcpu->arch.last_host_tsc > local_tsc) {\n" "> @@ -7850,7 +7846,7 @@ int kvm_arch_hardware_enable(void)\n" @@ -947,11 +947,11 @@ "> -\t\tidx++; \\\n" "> -\t\tif (idx >= atomic_read(&kvm->online_vcpus)) \\\n" "> -\t\t\tidx = 0; \\\n" - "> -\t\tif (idx = from) \\\n" + "> -\t\tif (idx == from) \\\n" "> +\t\tvcpup = list_entry_rcu(vcpup->vcpu_list.next, typeof(*vcpup), vcpu_list); \\\n" - "> +\t\tif (&vcpup->vcpu_list = &kvm->vcpu_list) \\\n" + "> +\t\tif (&vcpup->vcpu_list == &kvm->vcpu_list) \\\n" "> +\t\t\tvcpup = list_entry_rcu(kvm->vcpu_list.next, typeof(*vcpup), vcpu_list); \\\n" - "> +\t\tif (vcpup = from) \\\n" + "> +\t\tif (vcpup == from) \\\n" "> \t\t\tvcpup = NULL; \\\n" "> -\t\telse \\\n" "> -\t\t\tvcpup = kvm_get_vcpu(kvm, idx); \\\n" @@ -967,11 +967,11 @@ "> \t\treturn NULL;\n" "> @@ -522,7 +518,7 @@ static inline struct kvm_vcpu *kvm_get_vcpu_by_id(struct kvm *kvm, int id)\n" "> \t\tvcpu = kvm_get_vcpu(kvm, id);\n" - "> \tif (vcpu && vcpu->vcpu_id = id)\n" + "> \tif (vcpu && vcpu->vcpu_id == id)\n" "> \t\treturn vcpu;\n" "> -\tkvm_for_each_vcpu(i, vcpu, kvm)\n" "> +\tkvm_for_each_vcpu(vcpu, kvm)\n" - "> \t\tif (vcpu->vcpu_id = id)\n" + "> \t\tif (vcpu->vcpu_id == id)\n" "> \t\t\treturn vcpu;\n" "> \treturn NULL;\n" "> diff --git a/virt/kvm/arm/arch_timer.c b/virt/kvm/arm/arch_timer.c\n" @@ -1069,7 +1069,7 @@ "> \tmpidr &= MPIDR_HWID_BITMASK;\n" "> -\tkvm_for_each_vcpu(i, vcpu, kvm) {\n" "> +\tkvm_for_each_vcpu(vcpu, kvm) {\n" - "> \t\tif (mpidr = kvm_vcpu_get_mpidr_aff(vcpu))\n" + "> \t\tif (mpidr == kvm_vcpu_get_mpidr_aff(vcpu))\n" "> \t\t\treturn vcpu;\n" "> \t}\n" "> diff --git a/virt/kvm/arm/pmu.c b/virt/kvm/arm/pmu.c\n" @@ -1108,7 +1108,7 @@ "> -\tkvm_for_each_vcpu(i, tmp, kvm) {\n" "> +\tkvm_for_each_vcpu(tmp, kvm) {\n" "> \t\tmpidr = kvm_vcpu_get_mpidr_aff(tmp);\n" - "> \t\tif ((mpidr & target_affinity_mask) = target_affinity) {\n" + "> \t\tif ((mpidr & target_affinity_mask) == target_affinity) {\n" "> \t\t\tmatching_cpus++;\n" "> @@ -169,7 +169,6 @@ static unsigned long kvm_psci_vcpu_affinity_info(struct kvm_vcpu *vcpu)\n" "> \n" @@ -1220,7 +1220,7 @@ "> +\t\tkvm_for_each_vcpu(tmp_vcpu, kvm) {\n" "> +\t\t\tmutex_unlock(&tmp_vcpu->mutex);\n" "> +\n" - "> +\t\t\tif (tmp_vcpu = last_locked)\n" + "> +\t\t\tif (tmp_vcpu == last_locked)\n" "> +\t\t\t\treturn;\n" "> +\t\t}\n" "> \t}\n" @@ -1263,4 +1263,4 @@ "Thanks,\n" -Christoffer -9e7b7a9049eef7b5681a42051d96fe763c5e9ced2ee038f91c749eb38d0a0b52 +d0b38047f0e46bc8459ddce2762814de316f3786025bcffee1432b1797d0b39c
diff --git a/a/1.txt b/N2/1.txt index 3a2093f..003f24f 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -1,4 +1,4 @@ -On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: +On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Kr?m?? wrote: > Going through all VCPUs is more natural with a list and the RCU list can > work as lockless with our constraints. > @@ -9,7 +9,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > ARM code was changed a bit to cope with the loss when working with a > range 0-n and most other places switched to vcpu->vcpus_idx. > -> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> +> Signed-off-by: Radim Kr?m?? <rkrcmar@redhat.com> > --- > arch/mips/kvm/mips.c | 4 +--- > arch/powerpc/kvm/book3s_32_mmu.c | 3 +-- @@ -173,7 +173,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > +++ b/arch/powerpc/kvm/book3s_xics.c > @@ -966,7 +966,7 @@ static int xics_debug_show(struct seq_file *m, void *private) > -> seq_printf(m, "=====\nICP state\n=====\n"); +> seq_printf(m, "=========\nICP state\n=========\n"); > > - kvm_for_each_vcpu(i, vcpu, kvm) { > + kvm_for_each_vcpu(vcpu, kvm) { @@ -192,7 +192,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > > - kvm_for_each_vcpu(i, vcpu, kvm) { > + kvm_for_each_vcpu(vcpu, kvm) { -> if (vcpu->arch.icp && nr = vcpu->arch.icp->server_num) +> if (vcpu->arch.icp && nr == vcpu->arch.icp->server_num) > return vcpu->arch.icp; > } > diff --git a/arch/powerpc/kvm/book3s_xive.c b/arch/powerpc/kvm/book3s_xive.c @@ -273,7 +273,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > if (!kvm) > return 0; > -> seq_printf(m, "=====\nVCPU state\n=====\n"); +> seq_printf(m, "=========\nVCPU state\n=========\n"); > > - kvm_for_each_vcpu(i, vcpu, kvm) { > + kvm_for_each_vcpu(vcpu, kvm) { @@ -292,7 +292,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > > - kvm_for_each_vcpu(i, vcpu, kvm) { > + kvm_for_each_vcpu(vcpu, kvm) { -> if (vcpu->arch.xive_vcpu && nr = vcpu->arch.xive_vcpu->server_num) +> if (vcpu->arch.xive_vcpu && nr == vcpu->arch.xive_vcpu->server_num) > return vcpu; > } > diff --git a/arch/powerpc/kvm/e500_emulate.c b/arch/powerpc/kvm/e500_emulate.c @@ -312,7 +312,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > - kvm_for_each_vcpu(i, cvcpu, vcpu->kvm) { > + kvm_for_each_vcpu(cvcpu, vcpu->kvm) { > int cpir = cvcpu->arch.shared->pir; -> if ((param & PPC_DBELL_MSG_BRDCAST) || (cpir = pir)) { +> if ((param & PPC_DBELL_MSG_BRDCAST) || (cpir == pir)) { > set_bit(prio, &cvcpu->arch.pending_exceptions); > diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c > index 1c563545473c..633d3bb501c1 100644 @@ -555,11 +555,11 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > > if (vpidx < KVM_MAX_VCPUS) > vcpu = kvm_get_vcpu(kvm, vpidx); -> if (vcpu && vcpu_to_hv_vcpu(vcpu)->vp_index = vpidx) +> if (vcpu && vcpu_to_hv_vcpu(vcpu)->vp_index == vpidx) > return vcpu; > - kvm_for_each_vcpu(i, vcpu, kvm) > + kvm_for_each_vcpu(vcpu, kvm) -> if (vcpu_to_hv_vcpu(vcpu)->vp_index = vpidx) +> if (vcpu_to_hv_vcpu(vcpu)->vp_index == vpidx) > return vcpu; > return NULL; > diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c @@ -843,7 +843,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > list_for_each_entry(kvm, &vm_list, vm_list) { > - kvm_for_each_vcpu(i, vcpu, kvm) { > + kvm_for_each_vcpu(vcpu, kvm) { -> if (!stable && vcpu->cpu = smp_processor_id()) +> if (!stable && vcpu->cpu == smp_processor_id()) > kvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu); > if (stable && vcpu->arch.last_host_tsc > local_tsc) { > @@ -7850,7 +7846,7 @@ int kvm_arch_hardware_enable(void) @@ -925,11 +925,11 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > - idx++; \ > - if (idx >= atomic_read(&kvm->online_vcpus)) \ > - idx = 0; \ -> - if (idx = from) \ +> - if (idx == from) \ > + vcpup = list_entry_rcu(vcpup->vcpu_list.next, typeof(*vcpup), vcpu_list); \ -> + if (&vcpup->vcpu_list = &kvm->vcpu_list) \ +> + if (&vcpup->vcpu_list == &kvm->vcpu_list) \ > + vcpup = list_entry_rcu(kvm->vcpu_list.next, typeof(*vcpup), vcpu_list); \ -> + if (vcpup = from) \ +> + if (vcpup == from) \ > vcpup = NULL; \ > - else \ > - vcpup = kvm_get_vcpu(kvm, idx); \ @@ -945,11 +945,11 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > return NULL; > @@ -522,7 +518,7 @@ static inline struct kvm_vcpu *kvm_get_vcpu_by_id(struct kvm *kvm, int id) > vcpu = kvm_get_vcpu(kvm, id); -> if (vcpu && vcpu->vcpu_id = id) +> if (vcpu && vcpu->vcpu_id == id) > return vcpu; > - kvm_for_each_vcpu(i, vcpu, kvm) > + kvm_for_each_vcpu(vcpu, kvm) -> if (vcpu->vcpu_id = id) +> if (vcpu->vcpu_id == id) > return vcpu; > return NULL; > diff --git a/virt/kvm/arm/arch_timer.c b/virt/kvm/arm/arch_timer.c @@ -1047,7 +1047,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > mpidr &= MPIDR_HWID_BITMASK; > - kvm_for_each_vcpu(i, vcpu, kvm) { > + kvm_for_each_vcpu(vcpu, kvm) { -> if (mpidr = kvm_vcpu_get_mpidr_aff(vcpu)) +> if (mpidr == kvm_vcpu_get_mpidr_aff(vcpu)) > return vcpu; > } > diff --git a/virt/kvm/arm/pmu.c b/virt/kvm/arm/pmu.c @@ -1086,7 +1086,7 @@ On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Krčmář wrote: > - kvm_for_each_vcpu(i, tmp, kvm) { > + kvm_for_each_vcpu(tmp, kvm) { > mpidr = kvm_vcpu_get_mpidr_aff(tmp); -> if ((mpidr & target_affinity_mask) = target_affinity) { +> if ((mpidr & target_affinity_mask) == target_affinity) { > matching_cpus++; > @@ -169,7 +169,6 @@ static unsigned long kvm_psci_vcpu_affinity_info(struct kvm_vcpu *vcpu) > @@ -1198,7 +1198,7 @@ unlock_all_vcpus ? > + kvm_for_each_vcpu(tmp_vcpu, kvm) { > + mutex_unlock(&tmp_vcpu->mutex); > + -> + if (tmp_vcpu = last_locked) +> + if (tmp_vcpu == last_locked) > + return; > + } > } diff --git a/a/content_digest b/N2/content_digest index 7d96eb0..9460cab 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,26 +1,12 @@ "ref\020170821203530.9266-1-rkrcmar@redhat.com\0" "ref\020170821203530.9266-9-rkrcmar@redhat.com\0" - "From\0Christoffer Dall <cdall@linaro.org>\0" - "Subject\0Re: [PATCH RFC v3 8/9] KVM: implement kvm_for_each_vcpu with a list\0" - "Date\0Tue, 29 Aug 2017 09:58:59 +0000\0" - "To\0Radim Kr\304\215m\303\241\305\231 <rkrcmar@redhat.com>\0" - "Cc\0linux-kernel@vger.kernel.org" - kvm@vger.kernel.org - linux-mips@linux-mips.org - kvm-ppc@vger.kernel.org - linux-s390@vger.kernel.org - linux-arm-kernel@lists.infradead.org - Paolo Bonzini <pbonzini@redhat.com> - David Hildenbrand <david@redhat.com> - Marc Zyngier <marc.zyngier@arm.com> - Christian Borntraeger <borntraeger@de.ibm.com> - Cornelia Huck <cohuck@redhat.com> - James Hogan <james.hogan@imgtec.com> - Paul Mackerras <paulus@ozlabs.org> - " Alexander Graf <agraf@suse.com>\0" + "From\0cdall@linaro.org (Christoffer Dall)\0" + "Subject\0[PATCH RFC v3 8/9] KVM: implement kvm_for_each_vcpu with a list\0" + "Date\0Tue, 29 Aug 2017 11:58:59 +0200\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" - "On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Kr\304\215m\303\241\305\231 wrote:\n" + "On Mon, Aug 21, 2017 at 10:35:29PM +0200, Radim Kr?m?? wrote:\n" "> Going through all VCPUs is more natural with a list and the RCU list can\n" "> work as lockless with our constraints.\n" "> \n" @@ -31,7 +17,7 @@ "> ARM code was changed a bit to cope with the loss when working with a\n" "> range 0-n and most other places switched to vcpu->vcpus_idx.\n" "> \n" - "> Signed-off-by: Radim Kr\304\215m\303\241\305\231 <rkrcmar@redhat.com>\n" + "> Signed-off-by: Radim Kr?m?? <rkrcmar@redhat.com>\n" "> ---\n" "> arch/mips/kvm/mips.c | 4 +---\n" "> arch/powerpc/kvm/book3s_32_mmu.c | 3 +--\n" @@ -195,7 +181,7 @@ "> +++ b/arch/powerpc/kvm/book3s_xics.c\n" "> @@ -966,7 +966,7 @@ static int xics_debug_show(struct seq_file *m, void *private)\n" "> \n" - "> \tseq_printf(m, \"=====\\nICP state\\n=====\\n\");\n" + "> \tseq_printf(m, \"=========\\nICP state\\n=========\\n\");\n" "> \n" "> -\tkvm_for_each_vcpu(i, vcpu, kvm) {\n" "> +\tkvm_for_each_vcpu(vcpu, kvm) {\n" @@ -214,7 +200,7 @@ "> \n" "> -\tkvm_for_each_vcpu(i, vcpu, kvm) {\n" "> +\tkvm_for_each_vcpu(vcpu, kvm) {\n" - "> \t\tif (vcpu->arch.icp && nr = vcpu->arch.icp->server_num)\n" + "> \t\tif (vcpu->arch.icp && nr == vcpu->arch.icp->server_num)\n" "> \t\t\treturn vcpu->arch.icp;\n" "> \t}\n" "> diff --git a/arch/powerpc/kvm/book3s_xive.c b/arch/powerpc/kvm/book3s_xive.c\n" @@ -295,7 +281,7 @@ "> \tif (!kvm)\n" "> \t\treturn 0;\n" "> \n" - "> \tseq_printf(m, \"=====\\nVCPU state\\n=====\\n\");\n" + "> \tseq_printf(m, \"=========\\nVCPU state\\n=========\\n\");\n" "> \n" "> -\tkvm_for_each_vcpu(i, vcpu, kvm) {\n" "> +\tkvm_for_each_vcpu(vcpu, kvm) {\n" @@ -314,7 +300,7 @@ "> \n" "> -\tkvm_for_each_vcpu(i, vcpu, kvm) {\n" "> +\tkvm_for_each_vcpu(vcpu, kvm) {\n" - "> \t\tif (vcpu->arch.xive_vcpu && nr = vcpu->arch.xive_vcpu->server_num)\n" + "> \t\tif (vcpu->arch.xive_vcpu && nr == vcpu->arch.xive_vcpu->server_num)\n" "> \t\t\treturn vcpu;\n" "> \t}\n" "> diff --git a/arch/powerpc/kvm/e500_emulate.c b/arch/powerpc/kvm/e500_emulate.c\n" @@ -334,7 +320,7 @@ "> -\tkvm_for_each_vcpu(i, cvcpu, vcpu->kvm) {\n" "> +\tkvm_for_each_vcpu(cvcpu, vcpu->kvm) {\n" "> \t\tint cpir = cvcpu->arch.shared->pir;\n" - "> \t\tif ((param & PPC_DBELL_MSG_BRDCAST) || (cpir = pir)) {\n" + "> \t\tif ((param & PPC_DBELL_MSG_BRDCAST) || (cpir == pir)) {\n" "> \t\t\tset_bit(prio, &cvcpu->arch.pending_exceptions);\n" "> diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c\n" "> index 1c563545473c..633d3bb501c1 100644\n" @@ -577,11 +563,11 @@ "> \n" "> \tif (vpidx < KVM_MAX_VCPUS)\n" "> \t\tvcpu = kvm_get_vcpu(kvm, vpidx);\n" - "> \tif (vcpu && vcpu_to_hv_vcpu(vcpu)->vp_index = vpidx)\n" + "> \tif (vcpu && vcpu_to_hv_vcpu(vcpu)->vp_index == vpidx)\n" "> \t\treturn vcpu;\n" "> -\tkvm_for_each_vcpu(i, vcpu, kvm)\n" "> +\tkvm_for_each_vcpu(vcpu, kvm)\n" - "> \t\tif (vcpu_to_hv_vcpu(vcpu)->vp_index = vpidx)\n" + "> \t\tif (vcpu_to_hv_vcpu(vcpu)->vp_index == vpidx)\n" "> \t\t\treturn vcpu;\n" "> \treturn NULL;\n" "> diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c\n" @@ -865,7 +851,7 @@ "> \tlist_for_each_entry(kvm, &vm_list, vm_list) {\n" "> -\t\tkvm_for_each_vcpu(i, vcpu, kvm) {\n" "> +\t\tkvm_for_each_vcpu(vcpu, kvm) {\n" - "> \t\t\tif (!stable && vcpu->cpu = smp_processor_id())\n" + "> \t\t\tif (!stable && vcpu->cpu == smp_processor_id())\n" "> \t\t\t\tkvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu);\n" "> \t\t\tif (stable && vcpu->arch.last_host_tsc > local_tsc) {\n" "> @@ -7850,7 +7846,7 @@ int kvm_arch_hardware_enable(void)\n" @@ -947,11 +933,11 @@ "> -\t\tidx++; \\\n" "> -\t\tif (idx >= atomic_read(&kvm->online_vcpus)) \\\n" "> -\t\t\tidx = 0; \\\n" - "> -\t\tif (idx = from) \\\n" + "> -\t\tif (idx == from) \\\n" "> +\t\tvcpup = list_entry_rcu(vcpup->vcpu_list.next, typeof(*vcpup), vcpu_list); \\\n" - "> +\t\tif (&vcpup->vcpu_list = &kvm->vcpu_list) \\\n" + "> +\t\tif (&vcpup->vcpu_list == &kvm->vcpu_list) \\\n" "> +\t\t\tvcpup = list_entry_rcu(kvm->vcpu_list.next, typeof(*vcpup), vcpu_list); \\\n" - "> +\t\tif (vcpup = from) \\\n" + "> +\t\tif (vcpup == from) \\\n" "> \t\t\tvcpup = NULL; \\\n" "> -\t\telse \\\n" "> -\t\t\tvcpup = kvm_get_vcpu(kvm, idx); \\\n" @@ -967,11 +953,11 @@ "> \t\treturn NULL;\n" "> @@ -522,7 +518,7 @@ static inline struct kvm_vcpu *kvm_get_vcpu_by_id(struct kvm *kvm, int id)\n" "> \t\tvcpu = kvm_get_vcpu(kvm, id);\n" - "> \tif (vcpu && vcpu->vcpu_id = id)\n" + "> \tif (vcpu && vcpu->vcpu_id == id)\n" "> \t\treturn vcpu;\n" "> -\tkvm_for_each_vcpu(i, vcpu, kvm)\n" "> +\tkvm_for_each_vcpu(vcpu, kvm)\n" - "> \t\tif (vcpu->vcpu_id = id)\n" + "> \t\tif (vcpu->vcpu_id == id)\n" "> \t\t\treturn vcpu;\n" "> \treturn NULL;\n" "> diff --git a/virt/kvm/arm/arch_timer.c b/virt/kvm/arm/arch_timer.c\n" @@ -1069,7 +1055,7 @@ "> \tmpidr &= MPIDR_HWID_BITMASK;\n" "> -\tkvm_for_each_vcpu(i, vcpu, kvm) {\n" "> +\tkvm_for_each_vcpu(vcpu, kvm) {\n" - "> \t\tif (mpidr = kvm_vcpu_get_mpidr_aff(vcpu))\n" + "> \t\tif (mpidr == kvm_vcpu_get_mpidr_aff(vcpu))\n" "> \t\t\treturn vcpu;\n" "> \t}\n" "> diff --git a/virt/kvm/arm/pmu.c b/virt/kvm/arm/pmu.c\n" @@ -1108,7 +1094,7 @@ "> -\tkvm_for_each_vcpu(i, tmp, kvm) {\n" "> +\tkvm_for_each_vcpu(tmp, kvm) {\n" "> \t\tmpidr = kvm_vcpu_get_mpidr_aff(tmp);\n" - "> \t\tif ((mpidr & target_affinity_mask) = target_affinity) {\n" + "> \t\tif ((mpidr & target_affinity_mask) == target_affinity) {\n" "> \t\t\tmatching_cpus++;\n" "> @@ -169,7 +169,6 @@ static unsigned long kvm_psci_vcpu_affinity_info(struct kvm_vcpu *vcpu)\n" "> \n" @@ -1220,7 +1206,7 @@ "> +\t\tkvm_for_each_vcpu(tmp_vcpu, kvm) {\n" "> +\t\t\tmutex_unlock(&tmp_vcpu->mutex);\n" "> +\n" - "> +\t\t\tif (tmp_vcpu = last_locked)\n" + "> +\t\t\tif (tmp_vcpu == last_locked)\n" "> +\t\t\t\treturn;\n" "> +\t\t}\n" "> \t}\n" @@ -1263,4 +1249,4 @@ "Thanks,\n" -Christoffer -9e7b7a9049eef7b5681a42051d96fe763c5e9ced2ee038f91c749eb38d0a0b52 +b36e388b139fdc2ebe432ef650ed4f5e031ecf834b06b3dbc038a3f70e3f266c
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.