diff for duplicates of <54664F8D.70100@samsung.com> diff --git a/a/content_digest b/N1/content_digest index cd9cd33..2ea340e 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,8 +1,24 @@ + "ref\01415930268-7674-1-git-send-email-m.smarduch@samsung.com\0" "ref\01415930268-7674-8-git-send-email-m.smarduch@samsung.com\0" + "ref\0546631A0.4050301@arm.com\0" "From\0Mario Smarduch <m.smarduch@samsung.com>\0" "Subject\0Re: [PATCH v14 7/7] KVM: arm: page logging 2nd stage fault handling\0" "Date\0Fri, 14 Nov 2014 18:53:01 +0000\0" - "To\0kvm-ia64@vger.kernel.org\0" + "To\0Marc Zyngier <marc.zyngier@arm.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" "On 11/14/2014 08:45 AM, Marc Zyngier wrote:\n" @@ -195,4 +211,4 @@ "> \tM.\n" > -ef719757b7b13c250459aea5a5c78bb6df26fe8097f5fb1afed958247b5e34bd +5f3862e3eeeaf8578c6e8348aea5912192460a813c03d268566bc8d7ddd79ae7
diff --git a/a/1.txt b/N2/1.txt index 17c13ec..89f9320 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -6,7 +6,7 @@ On 11/14/2014 08:45 AM, Marc Zyngier 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 ++++++++++++++++++++++++++++++++++++++++++++-------- @@ -111,7 +111,7 @@ this one thanks for the tag. > >> >> 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); @@ -135,12 +135,12 @@ this one thanks for the tag. >> } 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. @@ -152,7 +152,7 @@ this one thanks for the tag. >> } >> 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); >> } >> @@ -168,7 +168,7 @@ this one thanks for the tag. >> >> - 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 cd9cd33..84c6c40 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,8 +1,10 @@ + "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\0Mario Smarduch <m.smarduch@samsung.com>\0" - "Subject\0Re: [PATCH v14 7/7] KVM: arm: page logging 2nd stage fault handling\0" - "Date\0Fri, 14 Nov 2014 18:53:01 +0000\0" - "To\0kvm-ia64@vger.kernel.org\0" + "ref\0546631A0.4050301@arm.com\0" + "From\0m.smarduch@samsung.com (Mario Smarduch)\0" + "Subject\0[PATCH v14 7/7] KVM: arm: page logging 2nd stage fault handling\0" + "Date\0Fri, 14 Nov 2014 10:53:01 -0800\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "On 11/14/2014 08:45 AM, Marc Zyngier wrote:\n" @@ -13,7 +15,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" @@ -118,7 +120,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" @@ -142,12 +144,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" @@ -159,7 +161,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" @@ -175,7 +177,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" @@ -195,4 +197,4 @@ "> \tM.\n" > -ef719757b7b13c250459aea5a5c78bb6df26fe8097f5fb1afed958247b5e34bd +99d4c98614fe4ee0357b0f7656343a7290302d0c2c6c7bcbfae4beb9ad2f7814
diff --git a/a/1.txt b/N3/1.txt index 17c13ec..21764b9 100644 --- a/a/1.txt +++ b/N3/1.txt @@ -111,7 +111,7 @@ this one thanks for the tag. > >> >> 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); @@ -135,12 +135,12 @@ this one thanks for the tag. >> } 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. @@ -152,7 +152,7 @@ this one thanks for the tag. >> } >> 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); >> } >> @@ -168,7 +168,7 @@ this one thanks for the tag. >> >> - 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 cd9cd33..a1b222e 100644 --- a/a/content_digest +++ b/N3/content_digest @@ -1,8 +1,24 @@ + "ref\01415930268-7674-1-git-send-email-m.smarduch@samsung.com\0" "ref\01415930268-7674-8-git-send-email-m.smarduch@samsung.com\0" + "ref\0546631A0.4050301@arm.com\0" "From\0Mario Smarduch <m.smarduch@samsung.com>\0" "Subject\0Re: [PATCH v14 7/7] KVM: arm: page logging 2nd stage fault handling\0" - "Date\0Fri, 14 Nov 2014 18:53:01 +0000\0" - "To\0kvm-ia64@vger.kernel.org\0" + "Date\0Fri, 14 Nov 2014 10:53:01 -0800\0" + "To\0Marc Zyngier <marc.zyngier@arm.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" "On 11/14/2014 08:45 AM, Marc Zyngier wrote:\n" @@ -118,7 +134,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" @@ -142,12 +158,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" @@ -159,7 +175,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" @@ -175,7 +191,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" @@ -195,4 +211,4 @@ "> \tM.\n" > -ef719757b7b13c250459aea5a5c78bb6df26fe8097f5fb1afed958247b5e34bd +5a453fc31b630ee050ec17b3173f5bbfe2115aa2552e98c158c98498a682a3a5
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.