From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerhard Wiesinger Subject: Re: Re: QEMU-KVM and video performance Date: Wed, 12 May 2010 08:14:12 +0200 (CEST) Message-ID: References: <4BCEBE5C.4020404@redhat.com> <20100421183357.GK27575@shareable.org> <4BCF6699.2060201@redhat.com> <4BCFF4B5.7010302@redhat.com> <4BE7B6A9.8060007@redhat.com> Mime-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463811584-489833078-1273644853=:26873" Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org To: Avi Kivity Return-path: In-Reply-To: <4BE7B6A9.8060007@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org Errors-To: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org List-Id: kvm.vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---1463811584-489833078-1273644853=:26873 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed On Mon, 10 May 2010, Avi Kivity wrote: > On 05/09/2010 10:35 PM, Gerhard Wiesinger wrote: >>>> > > For 256 color more the first priority is to find out why direct mapping is > not used. I'd suggest tracing the code that makes this decision (in > hw/*vga.c) and seeing if it's right or not. I think this is because A000 is not initialized for KVM (see log below and logging patch attached). Switches tried without success: -vga std (log is from this one) -vga cirrus -vga vmware I tried also to force the mapping (see patch where it is commented out) but some errors occour (see 2nd log below) and performance is still low at ~1MB/s: s->lfb_vram_mapped = 1; On testing the following line occour: vga_dirty_log_start vga_dirty_log_start vga_dirty_log_start vga_dirty_log_start vga_dirty_log_start vga_dirty_log_start ... Any ideas? Can you reproduce it? Thnx. Ciao, Gerhard -- http://www.wiesinger.com/ vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_map_addr, start=0xF0000000, len=0x01000000 vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start vga_dirty_log_start_mapping_map_addr, start=0xF0000000, len=0x01000000 vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_map_addr, start=0xF0000000, len=0x01000000 vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 -------------------------------------------------------------------------------------- vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start vga_dirty_log_start_mapping_map_addr, start=0xF0000000, len=0x01000000 vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 vga_dirty_log_start BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start vga_dirty_log_start_mapping_map_addr, start=0xF0000000, len=0x01000000 vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start vga_dirty_log_start_mapping_map_addr, start=0xF0000000, len=0x01000000 vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A0000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a0000-00000000000a7fff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0x000A8000, len=0x00008000 BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff vga_dirty_log_start_mapping_lfb_vram_mapped, start=0xE0000000, len=0x01000000 ---1463811584-489833078-1273644853=:26873 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=vga_kvm_debug.patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=vga_kvm_debug.patch ZGlmZiAtLWdpdCBhL2h3L2NpcnJ1c192Z2EuYyBiL2h3L2NpcnJ1c192Z2Eu Yw0KaW5kZXggNTcxMDQ0Zi4uNjhjNjA4MyAxMDA2NDQNCi0tLSBhL2h3L2Np cnJ1c192Z2EuYw0KKysrIGIvaHcvY2lycnVzX3ZnYS5jDQpAQCAtMjU4MSw2 ICsyNTgxLDcgQEAgc3RhdGljIHZvaWQgbWFwX2xpbmVhcl92cmFtKENpcnJ1 c1ZHQVN0YXRlICpzKQ0KICAgICAgICAgY3B1X3JlZ2lzdGVyX3BoeXNpY2Fs X21lbW9yeShpc2FfbWVtX2Jhc2UgKyAweGE4MDAwLCAweDgwMDAsDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHMtPnZnYS52cmFt X29mZnNldCArIHMtPmNpcnJ1c19iYW5rX2Jhc2VbMV0pIHwgSU9fTUVNX1JB TSk7DQogDQorCXByaW50ZigiQ2lycnVzIFZHQTogbGZiX3ZyYW1fbWFwcGVk PTFcbiIpOw0KICAgICAgICAgcy0+dmdhLmxmYl92cmFtX21hcHBlZCA9IDE7 DQogICAgIH0NCiAgICAgZWxzZSB7DQpkaWZmIC0tZ2l0IGEvaHcvdmdhLmMg Yi9ody92Z2EuYw0KaW5kZXggYTVlMjM4Ny4uY2I4YTIwOSAxMDA2NDQNCi0t LSBhL2h3L3ZnYS5jDQorKysgYi9ody92Z2EuYw0KQEAgLTE2MTIsMTUgKzE2 MTIsMTkgQEAgc3RhdGljIHZvaWQgbWFya19kaXJ0eSh0YXJnZXRfcGh5c19h ZGRyX3Qgc3RhcnQsIHRhcmdldF9waHlzX2FkZHJfdCBsZW4pDQogDQogdm9p ZCB2Z2FfZGlydHlfbG9nX3N0YXJ0KFZHQUNvbW1vblN0YXRlICpzKQ0KIHsN CisgICAgcHJpbnRmKCJ2Z2FfZGlydHlfbG9nX3N0YXJ0XG4iKTsNCiAgICAg aWYgKGt2bV9lbmFibGVkKCkgJiYgcy0+bWFwX2FkZHIpDQogICAgICAgICBp ZiAoIXMxKSB7DQorICAgICAgICAgICAgcHJpbnRmKCJ2Z2FfZGlydHlfbG9n X3N0YXJ0X21hcHBpbmdfbWFwX2FkZHIsIHN0YXJ0PTB4JTA4WCwgbGVuPTB4 JTA4WFxuIiwgcy0+bWFwX2FkZHIsIHMtPm1hcF9lbmQgLSBzLT5tYXBfYWRk cik7DQogICAgICAgICAgICAga3ZtX2xvZ19zdGFydChzLT5tYXBfYWRkciwg cy0+bWFwX2VuZCAtIHMtPm1hcF9hZGRyKTsNCiAgICAgICAgICAgICBtYXJr X2RpcnR5KHMtPm1hcF9hZGRyLCBzLT5tYXBfZW5kIC0gcy0+bWFwX2FkZHIp Ow0KICAgICAgICAgICAgIHMxID0gMTsNCiAgICAgICAgIH0NCiAgICAgaWYg KGt2bV9lbmFibGVkKCkgJiYgcy0+bGZiX3ZyYW1fbWFwcGVkKSB7DQogICAg ICAgICBpZiAoIXMyKSB7DQorICAgICAgICAgICAgcHJpbnRmKCJ2Z2FfZGly dHlfbG9nX3N0YXJ0X21hcHBpbmdfbGZiX3ZyYW1fbWFwcGVkLCBzdGFydD0w eCUwOFgsIGxlbj0weCUwOFhcbiIsICh1bnNpZ25lZCBpbnQpKGlzYV9tZW1f YmFzZSArIDB4YTAwMDApLCAweDgwMDApOw0KICAgICAgICAgICAgIGt2bV9s b2dfc3RhcnQoaXNhX21lbV9iYXNlICsgMHhhMDAwMCwgMHg4MDAwKTsNCisg ICAgICAgICAgICBwcmludGYoInZnYV9kaXJ0eV9sb2dfc3RhcnRfbWFwcGlu Z19sZmJfdnJhbV9tYXBwZWQsIHN0YXJ0PTB4JTA4WCwgbGVuPTB4JTA4WFxu IiwgKHVuc2lnbmVkIGludCkoaXNhX21lbV9iYXNlICsgMHhhODAwMCksIDB4 ODAwMCk7DQogICAgICAgICAgICAga3ZtX2xvZ19zdGFydChpc2FfbWVtX2Jh c2UgKyAweGE4MDAwLCAweDgwMDApOw0KICAgICAgICAgICAgIG1hcmtfZGly dHkoaXNhX21lbV9iYXNlICsgMHhhMDAwMCwgMHgxMDAwMCk7DQogICAgICAg ICB9DQpAQCAtMTYzMCw2ICsxNjM0LDcgQEAgdm9pZCB2Z2FfZGlydHlfbG9n X3N0YXJ0KFZHQUNvbW1vblN0YXRlICpzKQ0KICNpZmRlZiBDT05GSUdfQk9D SFNfVkJFDQogICAgIGlmIChrdm1fZW5hYmxlZCgpICYmIHMtPnZiZV9tYXBw ZWQpIHsNCiAgICAgICAgIGlmICghczMpIHsNCisgICAgICAgICAgICBwcmlu dGYoInZnYV9kaXJ0eV9sb2dfc3RhcnRfbWFwcGluZ19sZmJfdnJhbV9tYXBw ZWQsIHN0YXJ0PTB4JTA4WCwgbGVuPTB4JTA4WFxuIiwgVkJFX0RJU1BJX0xG Ql9QSFlTSUNBTF9BRERSRVNTLCBzLT52cmFtX3NpemUpOw0KICAgICAgICAg ICAgIGt2bV9sb2dfc3RhcnQoVkJFX0RJU1BJX0xGQl9QSFlTSUNBTF9BRERS RVNTLCBzLT52cmFtX3NpemUpOw0KICAgICAgICAgfQ0KICAgICAgICAgczMg PSAxOw0KQEAgLTE5NjUsNiArMTk3MCw3IEBAIHZvaWQgdmdhX2NvbW1vbl9y ZXNldChWR0FDb21tb25TdGF0ZSAqcykNCiAgICAgcy0+bWFwX2FkZHIgPSAw Ow0KICAgICBzLT5tYXBfZW5kID0gMDsNCiAgICAgcy0+bGZiX3ZyYW1fbWFw cGVkID0gMDsNCisvLyAgICBzLT5sZmJfdnJhbV9tYXBwZWQgPSAxOw0KICAg ICBzLT5iaW9zX29mZnNldCA9IDA7DQogICAgIHMtPmJpb3Nfc2l6ZSA9IDA7 DQogICAgIHMtPnNyX2luZGV4ID0gMDsNCg== ---1463811584-489833078-1273644853=:26873--