diff for duplicates of <546631A0.4050301@arm.com> diff --git a/a/content_digest b/N1/content_digest index 75c9366..17a8ef2 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,8 +1,23 @@ + "ref\01415930268-7674-1-git-send-email-m.smarduch@samsung.com\0" "ref\01415930268-7674-8-git-send-email-m.smarduch@samsung.com\0" "From\0Marc Zyngier <marc.zyngier@arm.com>\0" "Subject\0Re: [PATCH v14 7/7] KVM: arm: page logging 2nd stage fault handling\0" "Date\0Fri, 14 Nov 2014 16:45:20 +0000\0" - "To\0kvm-ia64@vger.kernel.org\0" + "To\0Mario Smarduch <m.smarduch@samsung.com>\0" + "Cc\0pbonzini@redhat.com <pbonzini@redhat.com>" + james.hogan@imgtec.com <james.hogan@imgtec.com> + christoffer.dall@linaro.org <christoffer.dall@linaro.org> + agraf@suse.de <agraf@suse.de> + cornelia.huck@de.ibm.com <cornelia.huck@de.ibm.com> + borntraeger@de.ibm.com <borntraeger@de.ibm.com> + Catalin Marinas <Catalin.Marinas@arm.com> + kvmarm@lists.cs.columbia.edu <kvmarm@lists.cs.columbia.edu> + kvm@vger.kernel.org <kvm@vger.kernel.org> + kvm-ppc@vger.kernel.org <kvm-ppc@vger.kernel.org> + kvm-ia64@vger.kernel.org <kvm-ia64@vger.kernel.org> + linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org> + Steve Capper <Steve.Capper@arm.com> + " peter.maydell@linaro.org <peter.maydell@linaro.org>\0" "\00:1\0" "b\0" "Hi Mario,\n" @@ -186,4 +201,4 @@ "-- \n" Jazz is not dead. It just smells funny... -bf1eed95e1502205f33c727729104046d0109c2ad5b0772c4d41bbd9549827fc +6a5e860ac126040ba22b2ac8551028ca392d84b0c175d0029f816ca64b2833df
diff --git a/a/1.txt b/N2/1.txt index de806b2..fc8aa0a 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -5,7 +5,7 @@ On 14/11/14 01:57, Mario Smarduch wrote: > it disables faulting in huge pages, and dissolves huge pages to page tables. > In case migration is canceled huge pages are used again. > -> Reviewed-by: Christoffer Dall <christoffer.dall at linaro.org> +> Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org> > Signed-off-by: Mario Smarduch <m.smarduch@samsung.com> > --- > arch/arm/kvm/mmu.c | 56 ++++++++++++++++++++++++++++++++++++++++++++-------- @@ -101,7 +101,7 @@ and this to be: > > write_fault = kvm_is_write_fault(kvm_vcpu_get_hsr(vcpu)); -> if (fault_status = FSC_PERM && !write_fault) { +> if (fault_status == FSC_PERM && !write_fault) { > @@ -918,7 +948,7 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, > /* Let's check if we will get back a huge page backed by hugetlbfs */ > down_read(¤t->mm->mmap_sem); @@ -125,12 +125,12 @@ and this to be: > } else { > pte_t new_pte = pfn_pte(pfn, mem_type); > + unsigned long flags = SET_SPTE_FLAGS(logging_active, -> + mem_type = PAGE_S2_DEVICE); +> + mem_type == PAGE_S2_DEVICE); ... you can convert this to: unsigned long flags = logging_active; - if (mem_type = PAGE_S2_DEVICE) + if (mem_type == PAGE_S2_DEVICE) flags |= KVM_S2PTE_FLAG_IS_IOMAP; Yes, this is more verbose, but I can decipher it without any effort. @@ -142,7 +142,7 @@ Call me lazy! ;-) > } > coherent_cache_guest_page(vcpu, hva, PAGE_SIZE); > - ret = stage2_set_pte(kvm, memcache, fault_ipa, &new_pte, -> - mem_type = PAGE_S2_DEVICE); +> - mem_type == PAGE_S2_DEVICE); > + ret = stage2_set_pte(kvm, memcache, fault_ipa, &new_pte, flags); > } > @@ -158,7 +158,7 @@ Call me lazy! ;-) > > - stage2_set_pte(kvm, NULL, gpa, pte, false); > + /* -> + * We can always call stage2_set_pte with logging_active = false, +> + * We can always call stage2_set_pte with logging_active == false, > + * because MMU notifiers will have unmapped a huge PMD before calling > + * ->change_pte() (which in turn calls kvm_set_spte_hva()) and therefore > + * stage2_set_pte() never needs to clear out a huge PMD through this diff --git a/a/content_digest b/N2/content_digest index 75c9366..6c22aee 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,8 +1,9 @@ + "ref\01415930268-7674-1-git-send-email-m.smarduch@samsung.com\0" "ref\01415930268-7674-8-git-send-email-m.smarduch@samsung.com\0" - "From\0Marc Zyngier <marc.zyngier@arm.com>\0" - "Subject\0Re: [PATCH v14 7/7] KVM: arm: page logging 2nd stage fault handling\0" + "From\0marc.zyngier@arm.com (Marc Zyngier)\0" + "Subject\0[PATCH v14 7/7] KVM: arm: page logging 2nd stage fault handling\0" "Date\0Fri, 14 Nov 2014 16:45:20 +0000\0" - "To\0kvm-ia64@vger.kernel.org\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "Hi Mario,\n" @@ -12,7 +13,7 @@ "> it disables faulting in huge pages, and dissolves huge pages to page tables.\n" "> In case migration is canceled huge pages are used again.\n" "> \n" - "> Reviewed-by: Christoffer Dall <christoffer.dall at linaro.org>\n" + "> Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>\n" "> Signed-off-by: Mario Smarduch <m.smarduch@samsung.com>\n" "> ---\n" "> arch/arm/kvm/mmu.c | 56 ++++++++++++++++++++++++++++++++++++++++++++--------\n" @@ -108,7 +109,7 @@ "\n" "> \n" "> \twrite_fault = kvm_is_write_fault(kvm_vcpu_get_hsr(vcpu));\n" - "> \tif (fault_status = FSC_PERM && !write_fault) {\n" + "> \tif (fault_status == FSC_PERM && !write_fault) {\n" "> @@ -918,7 +948,7 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa,\n" "> \t/* Let's check if we will get back a huge page backed by hugetlbfs */\n" "> \tdown_read(¤t->mm->mmap_sem);\n" @@ -132,12 +133,12 @@ "> \t} else {\n" "> \t\tpte_t new_pte = pfn_pte(pfn, mem_type);\n" "> +\t\tunsigned long flags = SET_SPTE_FLAGS(logging_active,\n" - "> +\t\t\t\tmem_type = PAGE_S2_DEVICE);\n" + "> +\t\t\t\tmem_type == PAGE_S2_DEVICE);\n" "\n" "... you can convert this to:\n" "\n" "\t\tunsigned long flags = logging_active;\n" - "\t\tif (mem_type = PAGE_S2_DEVICE)\n" + "\t\tif (mem_type == PAGE_S2_DEVICE)\n" "\t\t\tflags |= KVM_S2PTE_FLAG_IS_IOMAP;\n" "\n" "Yes, this is more verbose, but I can decipher it without any effort.\n" @@ -149,7 +150,7 @@ "> \t\t}\n" "> \t\tcoherent_cache_guest_page(vcpu, hva, PAGE_SIZE);\n" "> -\t\tret = stage2_set_pte(kvm, memcache, fault_ipa, &new_pte,\n" - "> -\t\t\t\t mem_type = PAGE_S2_DEVICE);\n" + "> -\t\t\t\t mem_type == PAGE_S2_DEVICE);\n" "> +\t\tret = stage2_set_pte(kvm, memcache, fault_ipa, &new_pte, flags);\n" "> \t}\n" "> \n" @@ -165,7 +166,7 @@ "> \n" "> -\tstage2_set_pte(kvm, NULL, gpa, pte, false);\n" "> +\t/*\n" - "> +\t * We can always call stage2_set_pte with logging_active = false,\n" + "> +\t * We can always call stage2_set_pte with logging_active == false,\n" "> +\t * because MMU notifiers will have unmapped a huge PMD before calling\n" "> +\t * ->change_pte() (which in turn calls kvm_set_spte_hva()) and therefore\n" "> +\t * stage2_set_pte() never needs to clear out a huge PMD through this\n" @@ -186,4 +187,4 @@ "-- \n" Jazz is not dead. It just smells funny... -bf1eed95e1502205f33c727729104046d0109c2ad5b0772c4d41bbd9549827fc +6a5440cebac88f891686958a0ee0e4eb7229e24e8e11cc47b8fab1bc2d300579
diff --git a/a/1.txt b/N3/1.txt index de806b2..54e7b6c 100644 --- a/a/1.txt +++ b/N3/1.txt @@ -101,7 +101,7 @@ and this to be: > > write_fault = kvm_is_write_fault(kvm_vcpu_get_hsr(vcpu)); -> if (fault_status = FSC_PERM && !write_fault) { +> if (fault_status == FSC_PERM && !write_fault) { > @@ -918,7 +948,7 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, > /* Let's check if we will get back a huge page backed by hugetlbfs */ > down_read(¤t->mm->mmap_sem); @@ -125,12 +125,12 @@ and this to be: > } else { > pte_t new_pte = pfn_pte(pfn, mem_type); > + unsigned long flags = SET_SPTE_FLAGS(logging_active, -> + mem_type = PAGE_S2_DEVICE); +> + mem_type == PAGE_S2_DEVICE); ... you can convert this to: unsigned long flags = logging_active; - if (mem_type = PAGE_S2_DEVICE) + if (mem_type == PAGE_S2_DEVICE) flags |= KVM_S2PTE_FLAG_IS_IOMAP; Yes, this is more verbose, but I can decipher it without any effort. @@ -142,7 +142,7 @@ Call me lazy! ;-) > } > coherent_cache_guest_page(vcpu, hva, PAGE_SIZE); > - ret = stage2_set_pte(kvm, memcache, fault_ipa, &new_pte, -> - mem_type = PAGE_S2_DEVICE); +> - mem_type == PAGE_S2_DEVICE); > + ret = stage2_set_pte(kvm, memcache, fault_ipa, &new_pte, flags); > } > @@ -158,7 +158,7 @@ Call me lazy! ;-) > > - stage2_set_pte(kvm, NULL, gpa, pte, false); > + /* -> + * We can always call stage2_set_pte with logging_active = false, +> + * We can always call stage2_set_pte with logging_active == false, > + * because MMU notifiers will have unmapped a huge PMD before calling > + * ->change_pte() (which in turn calls kvm_set_spte_hva()) and therefore > + * stage2_set_pte() never needs to clear out a huge PMD through this diff --git a/a/content_digest b/N3/content_digest index 75c9366..1f74658 100644 --- a/a/content_digest +++ b/N3/content_digest @@ -1,8 +1,23 @@ + "ref\01415930268-7674-1-git-send-email-m.smarduch@samsung.com\0" "ref\01415930268-7674-8-git-send-email-m.smarduch@samsung.com\0" "From\0Marc Zyngier <marc.zyngier@arm.com>\0" "Subject\0Re: [PATCH v14 7/7] KVM: arm: page logging 2nd stage fault handling\0" "Date\0Fri, 14 Nov 2014 16:45:20 +0000\0" - "To\0kvm-ia64@vger.kernel.org\0" + "To\0Mario Smarduch <m.smarduch@samsung.com>\0" + "Cc\0pbonzini@redhat.com <pbonzini@redhat.com>" + james.hogan@imgtec.com <james.hogan@imgtec.com> + christoffer.dall@linaro.org <christoffer.dall@linaro.org> + agraf@suse.de <agraf@suse.de> + cornelia.huck@de.ibm.com <cornelia.huck@de.ibm.com> + borntraeger@de.ibm.com <borntraeger@de.ibm.com> + Catalin Marinas <Catalin.Marinas@arm.com> + kvmarm@lists.cs.columbia.edu <kvmarm@lists.cs.columbia.edu> + kvm@vger.kernel.org <kvm@vger.kernel.org> + kvm-ppc@vger.kernel.org <kvm-ppc@vger.kernel.org> + kvm-ia64@vger.kernel.org <kvm-ia64@vger.kernel.org> + linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org> + Steve Capper <Steve.Capper@arm.com> + " peter.maydell@linaro.org <peter.maydell@linaro.org>\0" "\00:1\0" "b\0" "Hi Mario,\n" @@ -108,7 +123,7 @@ "\n" "> \n" "> \twrite_fault = kvm_is_write_fault(kvm_vcpu_get_hsr(vcpu));\n" - "> \tif (fault_status = FSC_PERM && !write_fault) {\n" + "> \tif (fault_status == FSC_PERM && !write_fault) {\n" "> @@ -918,7 +948,7 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa,\n" "> \t/* Let's check if we will get back a huge page backed by hugetlbfs */\n" "> \tdown_read(¤t->mm->mmap_sem);\n" @@ -132,12 +147,12 @@ "> \t} else {\n" "> \t\tpte_t new_pte = pfn_pte(pfn, mem_type);\n" "> +\t\tunsigned long flags = SET_SPTE_FLAGS(logging_active,\n" - "> +\t\t\t\tmem_type = PAGE_S2_DEVICE);\n" + "> +\t\t\t\tmem_type == PAGE_S2_DEVICE);\n" "\n" "... you can convert this to:\n" "\n" "\t\tunsigned long flags = logging_active;\n" - "\t\tif (mem_type = PAGE_S2_DEVICE)\n" + "\t\tif (mem_type == PAGE_S2_DEVICE)\n" "\t\t\tflags |= KVM_S2PTE_FLAG_IS_IOMAP;\n" "\n" "Yes, this is more verbose, but I can decipher it without any effort.\n" @@ -149,7 +164,7 @@ "> \t\t}\n" "> \t\tcoherent_cache_guest_page(vcpu, hva, PAGE_SIZE);\n" "> -\t\tret = stage2_set_pte(kvm, memcache, fault_ipa, &new_pte,\n" - "> -\t\t\t\t mem_type = PAGE_S2_DEVICE);\n" + "> -\t\t\t\t mem_type == PAGE_S2_DEVICE);\n" "> +\t\tret = stage2_set_pte(kvm, memcache, fault_ipa, &new_pte, flags);\n" "> \t}\n" "> \n" @@ -165,7 +180,7 @@ "> \n" "> -\tstage2_set_pte(kvm, NULL, gpa, pte, false);\n" "> +\t/*\n" - "> +\t * We can always call stage2_set_pte with logging_active = false,\n" + "> +\t * We can always call stage2_set_pte with logging_active == false,\n" "> +\t * because MMU notifiers will have unmapped a huge PMD before calling\n" "> +\t * ->change_pte() (which in turn calls kvm_set_spte_hva()) and therefore\n" "> +\t * stage2_set_pte() never needs to clear out a huge PMD through this\n" @@ -186,4 +201,4 @@ "-- \n" Jazz is not dead. It just smells funny... -bf1eed95e1502205f33c727729104046d0109c2ad5b0772c4d41bbd9549827fc +dbb27463d3e1cce3ad3432834139884dfdd8b05f9d6936837967d0c2fd6cf468
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.