From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: =?UTF-8?B?UmU6IFJlOiBbUEFUQ0hdIEtWTTphcm0vYXJtNjQ6IGRjYWNoZSBuZWVkIGJlIGNvaGVyZW50IHVuY29uZGl0aW9uYWxseQ==?= Date: Sat, 10 Mar 2018 11:48:12 +0800 (CST) Message-ID: <201803101148125935444@zte.com.cn> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=====_001_next=====" Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: marc.zyngier@arm.com Cc: cdall@kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu List-Id: kvmarm@lists.cs.columbia.edu --=====_001_next===== Content-Type: multipart/alternative; boundary="=====_003_next=====" --=====_003_next===== Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Pk9uIDA5LzAzLzE4IDIyOjE1LCBQZW5nIEhhbyB3cm90ZToKPj4gRm9yIGVtdWxhdGlvbiBkZXZp Y2VzIGp1c3QgbGlrZSB2Z2EsIGtlZXBpbmcgY29oZXJlbnQgZGNhY2hlIGJldHdlZW4KPj4gZ3Vl c3QgYW5kIGhvc3QgdGltZWx5IGlzIG5lZWRlZC4KPj4gTm93IHRoZSBkaXNwbGF5IG9mIHZuYy12 aWV3ZXIgd2lsbCBub3QgdXBkYXRlIGNvbnRpbnVvdXNseSBhbmQgdGhlCj4+IHBhdGNoIGNhbiBm aXggdXAuCj4+IAo+PiBTaWduZWQtb2ZmLWJ5OiBQZW5nIEhhbyA8cGVuZy5oYW8yQHp0ZS5jb20u Y24+Cj4+IC0tLQo+PiAgdmlydC9rdm0vYXJtL21tdS5jIHwgNiArKy0tLS0KPj4gIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4+IAo+PiBkaWZmIC0tZ2l0 IGEvdmlydC9rdm0vYXJtL21tdS5jIGIvdmlydC9rdm0vYXJtL21tdS5jCj4+IGluZGV4IGVjNjJk MWMuLjRhMjgzOTVlIDEwMDY0NAo+PiAtLS0gYS92aXJ0L2t2bS9hcm0vbW11LmMKPj4gKysrIGIv dmlydC9rdm0vYXJtL21tdS5jCj4+IEBAIC0xNDE2LDggKzE0MTYsNyBAQCBzdGF0aWMgaW50IHVz ZXJfbWVtX2Fib3J0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgcGh5c19hZGRyX3QgZmF1bHRfaXBh LAo+PiAgICAgICAgICAgICAga3ZtX3NldF9wZm5fZGlydHkocGZuKTsKPj4gICAgICAgICAgfQo+ PiAgCj4+IC0gICAgICAgIGlmIChmYXVsdF9zdGF0dXMgIT0gRlNDX1BFUk0pCj4+IC0gICAgICAg ICAgICBjbGVhbl9kY2FjaGVfZ3Vlc3RfcGFnZShwZm4sIFBNRF9TSVpFKTsKPj4gKyAgICAgICAg Y2xlYW5fZGNhY2hlX2d1ZXN0X3BhZ2UocGZuLCBQTURfU0laRSk7Cj4+ICAKPj4gICAgICAgICAg aWYgKGV4ZWNfZmF1bHQpIHsKPj4gICAgICAgICAgICAgIG5ld19wbWQgPSBrdm1fczJwbWRfbWtl eGVjKG5ld19wbWQpOwo+PiBAQCAtMTQzOCw4ICsxNDM3LDcgQEAgc3RhdGljIGludCB1c2VyX21l bV9hYm9ydChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHBoeXNfYWRkcl90IGZhdWx0X2lwYSwKPj4g ICAgICAgICAgICAgIG1hcmtfcGFnZV9kaXJ0eShrdm0sIGdmbik7Cj4+ICAgICAgICAgIH0KPj4g IAo+PiAtICAgICAgICBpZiAoZmF1bHRfc3RhdHVzICE9IEZTQ19QRVJNKQo+PiAtICAgICAgICAg ICAgY2xlYW5fZGNhY2hlX2d1ZXN0X3BhZ2UocGZuLCBQQUdFX1NJWkUpOwo+PiArICAgICAgICBj bGVhbl9kY2FjaGVfZ3Vlc3RfcGFnZShwZm4sIFBBR0VfU0laRSk7Cj4+ICAKPj4gICAgICAgICAg aWYgKGV4ZWNfZmF1bHQpIHsKPj4gICAgICAgICAgICAgIG5ld19wdGUgPSBrdm1fczJwdGVfbWtl eGVjKG5ld19wdGUpOwo+PiAKCj5JJ20gc29ycnksIGJ1dCBJIGhhdmUgdG8gTkFLIHRoaXMuCgo+ WW91J3JlIHBhcGVyaW5nIG92ZXIgdGhlIGZ1bmRhbWVudGFsIGlzc3VlIHRoYXQgeW91J3JlIGFj Y2Vzc2luZyBhCj5jYWNoZWFibGUgYWxpYXMgb2YgYSBub24gY2FjaGVhYmxlIG1lbW9yeS4gVGhl IGFyY2hpdGVjdHVyZSBpcyB2ZXJ5Cj5jbGVhciBhYm91dCB3aHkgdGhpcyBkb2Vzbid0IHdvcmss IGFuZCBLVk0gaW1wbGVtZW50cyB0aGUgYXJjaGl0ZWN0dXJlLgoKSSBmaW5kIHRoYXQgSSAganVz dCBlbmNvdW50ZXIgdGhlIHByb2JsZW0gYWZ0ZXIgIHRoZSBjb21taXQgJzE1MzAzYmE1ZDFjZDli MjhkMDNhOTgwNDU2YzA5NzhjMGVhM2IyMDggIiAuClRoZSBjb21taXQgY29udGFpbnMgImljYWNo ZSBpbnZhbGlkYXRpb24gb3B0aW1pemF0aW9ucywgaW1wcm92aW5nIFZNIHN0YXJ0dXAgdGltZSIs aXQgY2hhbmdlcwpmcm9tIHVuY29uZGl0aW9uYWxseSBjYWxsaW5nIGNvaGVyZW50X2NhY2hlX2d1 ZXN0X3BhZ2UoaW5jbHVkaW5nIGRjYWNoZSBoYW5kbGUpIHRvIGNvbmRpdGlvbmFsbHkgY2FsbGlu ZyBjbGVhbl9kY2FjaGVfZ3Vlc3RfcGFnZS4KIEkgdHJhY2UgdGhlIGRpc3BsYXkgb2Ygdm5jIGFi bm9ybWFsbHkgYW5kIGZpbmQgaXQgZ2VuZXJhdGUgZGF0YSBhYm9ydCBpbiB2Z2EKYWRkcmVzcyBy ZWdpb24gd2l0aCBGU0NfUEVSTSxhbmQgaXQgd2lsbCBub3QgY2FsbCBjbGVhbl9kY2FjaGVfZ3Vl c3RfcGFnZSAuIFNvIEkgdGhpbmsgIHNob3VsZCByZWNvdmVyIHRvIHVuY29udGlvbmFsbHkgY2Fs bGluZyBjbGVhbl9kY2FjaGVfZ3Vlc3RfcGFnZS4KClRoYW5rcy4KPklmIHlvdSB3YW50IHRoaXMg dG8gd29yaywgbWFwIHlvdXIgVkdBIGRldmljZSBhcyBjYWNoZWFibGUsIGFkZCBjYWNoZQo+bWFp bnRlbmFuY2UgdG8gUUVNVSwgb3IgdXNlIGFub3RoZXIgZnJhbWUtYnVmZmVyIGVtdWxhdGlvbiB0 aGF0IGRvZXNuJ3QKPnJlcXVpcmUgc3VjaCBhIGdhY2suCgo+VGhhbmtzLAoKPiAgICBNLgo+LS0g Cj5KYXp6IGlzIG5vdCBkZWFkLiBJdCBqdXN0IHNtZWxscyBmdW5ueS4uLg== --=====_003_next=====-- --=====_001_next===== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel --=====_001_next=====-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: peng.hao2@zte.com.cn (peng.hao2 at zte.com.cn) Date: Sat, 10 Mar 2018 11:48:12 +0800 (CST) Subject: =?UTF-8?B?UmU6IFJlOiBbUEFUQ0hdIEtWTTphcm0vYXJtNjQ6IGRjYWNoZSBuZWVkIGJlIGNvaGVyZW50IHVuY29uZGl0aW9uYWxseQ==?= Message-ID: <201803101148125935444@zte.com.cn> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org >On 09/03/18 22:15, Peng Hao wrote: >> For emulation devices just like vga, keeping coherent dcache between >> guest and host timely is needed. >> Now the display of vnc-viewer will not update continuously and the >> patch can fix up. >> >> Signed-off-by: Peng Hao >> --- >> virt/kvm/arm/mmu.c | 6 ++---- >> 1 file changed, 2 insertions(+), 4 deletions(-) >> >> diff --git a/virt/kvm/arm/mmu.c b/virt/kvm/arm/mmu.c >> index ec62d1c..4a28395e 100644 >> --- a/virt/kvm/arm/mmu.c >> +++ b/virt/kvm/arm/mmu.c >> @@ -1416,8 +1416,7 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, >> kvm_set_pfn_dirty(pfn); >> } >> >> - if (fault_status != FSC_PERM) >> - clean_dcache_guest_page(pfn, PMD_SIZE); >> + clean_dcache_guest_page(pfn, PMD_SIZE); >> >> if (exec_fault) { >> new_pmd = kvm_s2pmd_mkexec(new_pmd); >> @@ -1438,8 +1437,7 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, >> mark_page_dirty(kvm, gfn); >> } >> >> - if (fault_status != FSC_PERM) >> - clean_dcache_guest_page(pfn, PAGE_SIZE); >> + clean_dcache_guest_page(pfn, PAGE_SIZE); >> >> if (exec_fault) { >> new_pte = kvm_s2pte_mkexec(new_pte); >> >I'm sorry, but I have to NAK this. >You're papering over the fundamental issue that you're accessing a >cacheable alias of a non cacheable memory. The architecture is very >clear about why this doesn't work, and KVM implements the architecture. I find that I just encounter the problem after the commit '15303ba5d1cd9b28d03a980456c0978c0ea3b208 " . The commit contains "icache invalidation optimizations, improving VM startup time",it changes from unconditionally calling coherent_cache_guest_page(including dcache handle) to conditionally calling clean_dcache_guest_page. I trace the display of vnc abnormally and find it generate data abort in vga address region with FSC_PERM,and it will not call clean_dcache_guest_page . So I think should recover to uncontionally calling clean_dcache_guest_page. Thanks. >If you want this to work, map your VGA device as cacheable, add cache >maintenance to QEMU, or use another frame-buffer emulation that doesn't >require such a gack. >Thanks, > M. >-- >Jazz is not dead. It just smells funny...