kvm with Windows optimization
This is a request for testing of an experimental kvm feature that dramatically accelerates some Windows releases (when running with the ACPI HAL, and especially with guest SMP). The feature detects accesses by the guest to the Task Priority Register (TPR) and patches them at runtime to a kvm-friendly code snipped that is provided by the BIOS.
The upshot of all that is that
http://kvm.qumranet.com/kvmwiki/Windows_ACPI_Workaround is no longer required, and Windows SMP no longer runs like a dog; it's quite snappy from my very limited testing.
Please download the test release from
http://people.qumranet.com/avi/tpr-opt-1.tar.gz and give it a spin. Once it has received some exposure, I'll merge it into mainline.
Credit for the original idea is due to Ben Serebrin.
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 4720D122.4070606-atKUWr5tajBWk0Htik3J/[email protected]
On compilation I get the following error.
../qemu-kvm.h:41: error: redefinition of 'kvm_log_tpr' ../qemu-kvm.h:41: error: previous definition of 'kvm_log_tpr' was here make[2]: *** [i8259.o] Error 1
make[2]: Leaving directory `/root/Download/software/tpr-opt-1/qemu/x86_64-softmmu' make[1]: *** [subdir-x86_64-softmmu] Error 2
make[1]: Leaving directory `/root/Download/software/tpr-opt-1/qemu'
make: *** [qemu] Error 2
Any help would be appreciated. Thanks.
Haydn
Quoted 22 lines · Avi Kivity
This is a request for testing of an experimental kvm feature that dramatically accelerates some Windows releases (when running with the ACPI HAL, and especially with guest SMP). The feature detects accesses by the guest to the Task Priority Register (TPR) and patches them at runtime to a kvm-friendly code snipped that is provided by the BIOS.
The upshot of all that is that
http://kvm.qumranet.com/kvmwiki/Windows_ACPI_Workaround is no longer required, and Windows SMP no longer runs like a dog; it's quite snappy from my very limited testing.Please download the test release from
http://people.qumranet.com/avi/tpr-opt-1.tar.gz and give it a spin. Once it has received some exposure, I'll merge it into mainline.Credit for the original idea is due to Ben Serebrin.
--
error compilingcommittee.c: too many arguments to function
Quoted 10 lines
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
A message that is not in the archive (sent off-list or not yet received): b75785ba0710251034q77a83b98pc784be19c842b807-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org
Quoted 11 lines · Haydn Solomon
On compilation I get the following error.
../qemu-kvm.h:41: error: redefinition of 'kvm_log_tpr'../qemu-kvm.h:41: error: previous definition of 'kvm_log_tpr' was here make[2]: *** [i8259.o] Error 1
make[2]: Leaving directory `/root/Download/software/tpr-opt-1/qemu/x86_64-softmmu' make[1]: *** [subdir-x86_64-softmmu] Error 2
make[1]: Leaving directory `/root/Download/software/tpr-opt-1/qemu'
make: *** [qemu] Error 2
Quoted 1 line
Any help would be appreciated. Thanks.
I uploaded a new version that fixes this. Same location.
Now back to reviewing and applying patches.
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 4720D3F0.8010103-atKUWr5tajBWk0Htik3J/[email protected]
Thanks, that was quick.
Quoted 15 lines · Avi Kivity
Quoted 11 lines · Haydn Solomon
On compilation I get the following error.
../qemu-kvm.h:41: error: redefinition of 'kvm_log_tpr'../qemu-kvm.h:41: error: previous definition of 'kvm_log_tpr' was here make[2]: *** [i8259.o] Error 1
make[2]: Leaving directory `/root/Download/software/tpr-opt-1/qemu/x86_64-softmmu' make[1]: *** [subdir-x86_64-softmmu] Error 2
make[1]: Leaving directory `/root/Download/software/tpr-opt-1/qemu'
make: *** [qemu] Error 2Quoted 1 line
Any help would be appreciated. Thanks.
Quoted 9 lines
I uploaded a new version that fixes this. Same location.
Now back to reviewing and applying patches.
--
error compilingcommittee.c: too many arguments to function
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
A message that is not in the archive (sent off-list or not yet received): b75785ba0710251039x63551396yc9d5e24df0f56ad7-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org
Quoted 1 line · On Thu, 25 Oct 2007 13:39:33 -0400 "Haydn Solomon"…
Thanks, that was quick.
Finally, this (pre)release solved the long standing Java IE Plugin lockup problem for me. Thanks a lot!
Signature · 7 lines
Jindrich Makovicka ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
Quoted 11 lines · Jindrich Makovicka
Quoted 2 lines · On Thu, 25 Oct 2007 13:39:33 -0400 "Haydn Solomon"…
Thanks, that was quick.
Finally, this (pre)release solved the long standing Java IE Plugin lockup problem for me. Thanks a lot!
No, this release is meant to cause problems, not fix them.
(but thanks for the reminder)
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 4720DC12.8050303-atKUWr5tajBWk0Htik3J/[email protected]
I also had a problem installing windows xp. Got the following error
localhost kernel: ------------[ cut here ]------------ Message from syslogd@ at Thu Oct 25 13:59:27 2007 ... localhost kernel: invalid opcode: 0000 [1] SMP
Installed windows xp with the following options
/usr/local/kvm/bin/qemu-system-x86_64 \
-hda windowsxp.img \
-m 400 \
-localtime \
-smp 2 \
-boot d \
-cdrom /home/hsolomon/isos/en_winxp_pro_with_sp2.iso &
Haydn
Quoted 22 lines · Avi Kivity
Quoted 11 lines · Jindrich Makovicka
Quoted 2 lines · On Thu, 25 Oct 2007 13:39:33 -0400 "Haydn Solomon"…
Thanks, that was quick.
Finally, this (pre)release solved the long standing Java IE Plugin lockup problem for me. Thanks a lot!
No, this release is meant to cause problems, not fix them.
(but thanks for the reminder)
--
error compilingcommittee.c: too many arguments to function
Quoted 10 lines
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
A message that is not in the archive (sent off-list or not yet received): b75785ba0710251115h7ef5cbfek492a588e80349e04-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org
Quoted 1 line · Haydn Solomon
I also had a problem installing windows xp. Got the following error
I guess I'll have to test that too.
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 4720DE65.2030209-atKUWr5tajBWk0Htik3J/[email protected]
Quoted 8 lines · Avi Kivity
Quoted 2 lines · Haydn Solomon
I also had a problem installing windows xp. Got the following error
I guess I'll have to test that too.
I hit it again, this time about half-way through the second stage install of Windows XP (last time it was almost immediately). This is with your updated tree. I'll next try to reproduce with the latest git.
Regards,
Anthony Liguori
[ 1577.621100] ------------[ cut here ]------------ [ 1577.621106] kernel BUG at /home/anthony/tmp/2/tpr-opt-1/kernel/mmu.c:308! [ 1577.621108] invalid opcode: 0000 [1] SMP [ 1577.621111] CPU 1 [ 1577.621113] Modules linked in: tun kvm_intel kvm i915 drm af_packet
rfcomm l2cap thinkpad_acpi ppdev acpi_cpufreq cpufreq_stats cpufreq_ondemand freq_table cpufreq_userspace cpufreq_conservative cpufreq_powersave sbs ac battery bay dock container button video ipv6 bridge ipt_REJECT xt_state xt_tcpudp iptable_filter ipt_MASQUERADE iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nfnetlink ip_tables x_tables sbp2 lp arc4 ecb blkcipher snd_hda_intel snd_pcm_oss snd_mixer_oss snd_pcm snd_seq_dummy iwl4965 iwlwifi_mac80211 snd_seq_oss parport_pc snd_seq_midi snd_rawmidi parport cfg80211 pcmcia hci_usb bluetooth snd_seq_midi_event snd_seq snd_timer snd_seq_device intel_agp sdhci mmc_core serio_raw psmouse pcspkr yenta_socket rsrc_nonstatic pcmcia_core snd soundcore shpchp pci_hotplug snd_page_alloc joydev evdev ext3 jbd mbcache usbhid hid sg sr_mod sd_mod cdrom ata_piix ehci_hcd ohci1394 ieee1394 ata_generic libata scsi_mod uhci_hcd usbcore e1000 thermal processor fan fuse apparmor commoncap
[ 1577.621172] Pid: 7788, comm: qemu-system-x86 Not tainted 2.6.22-14-generic #1 [ 1577.621175] RIP: 0010:[<ffffffff8837d905>] [<ffffffff8837d905>] :kvm:mmu_memory_cache_alloc+0x25/0x30 [ 1577.621188] RSP: 0018:ffff8100441819b8 EFLAGS: 00010246 [ 1577.621190] RAX: 0000000000000000 RBX: ffffc200010c1968 RCX: ffff81001eebc080 [ 1577.621193] RDX: ffff81001eebc088 RSI: 0000000000000028 RDI: ffff8100388543e0 [ 1577.621195] RBP: ffff81000377f060 R08: 0000000000000000 R09: 0000000000000004 [ 1577.621197] R10: 00000000081ed163 R11: 0000000000000000 R12: ffff810038854000 [ 1577.621200] R13: 0000000000000000 R14: ffff81000377f060 R15: ffff810038854000 [ 1577.621202] FS: 00002b7827310d40(0000) GS:ffff81000102c280(0000) knlGS:0000000000000000 [ 1577.621205] CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b [ 1577.621207] CR2: 0000000001002ff8 CR3: 0000000054f45000 CR4: 00000000000026e0 [ 1577.621210] Process qemu-system-x86 (pid: 7788, threadinfo ffff810044180000, task ffff81000d4d8dc0) [ 1577.621212] Stack: ffffc200010c1968 ffffffff8837da16 00000000441c6043 0000000000000002 [ 1577.621216] 00000000441c6000 ffffffff8837e1ad 00002b7828552000 00000000000081ed [ 1577.621220] 0000000000000000 0000000000000000 00000000081ed000 00000000081ed000 [ 1577.621223] Call Trace: [ 1577.621233] [<ffffffff8837da16>] :kvm:rmap_add+0xf6/0x110 [ 1577.621243] [<ffffffff8837e1ad>] :kvm:paging32_set_pte_common+0x10d/0x2b0 [ 1577.621258] [<ffffffff8837e399>] :kvm:paging32_set_pte+0x49/0x50 [ 1577.621269] [<ffffffff8837e9dd>] :kvm:kvm_mmu_pte_write+0x33d/0x3b0 [ 1577.621287] [<ffffffff883786cd>] :kvm:emulator_write_emulated_onepage+0x9d/0x100 [ 1577.621298] [<ffffffff88380da8>] :kvm:x86_emulate_insn+0x5e8/0x4450 [ 1577.621308] [<ffffffff88396467>] :kvm_intel:vmcs_readl+0x17/0x20 [ 1577.621320] [<ffffffff88378cff>] :kvm:emulate_instruction+0x1af/0x2f0 [ 1577.621328] [<ffffffff88399090>] :kvm_intel:handle_exception+0x240/0x2b0 [ 1577.621336] [<ffffffff88385ab9>] :kvm:apic_update_ppr+0x29/0x60 [ 1577.621347] [<ffffffff8837aa74>] :kvm:kvm_vcpu_ioctl+0xe54/0x11b0 [ 1577.621355] [<ffffffff8026e000>] file_read_actor+0x0/0x150 [ 1577.621366] [<ffffffff8022cacc>] task_rq_lock+0x4c/0x90 [ 1577.621372] [<ffffffff8022f30c>] try_to_wake_up+0x5c/0x3f0 [ 1577.621385] [<ffffffff802a84f5>] core_sys_select+0x275/0x300 [ 1577.621391] [<ffffffff8022ca03>] __wake_up+0x43/0x70 [ 1577.621402] [<ffffffff80240719>] __dequeue_signal+0x19/0x1d0 [ 1577.621409] [<ffffffff8023ffce>] recalc_sigpending+0xe/0x30 [ 1577.621412] [<ffffffff8024212c>] dequeue_signal+0x5c/0x190 [ 1577.621416] [<ffffffff8024f4f9>] getnstimeofday+0x39/0xa0 [ 1577.621423] [<ffffffff802a6e05>] do_ioctl+0x35/0xe0 [ 1577.621428] [<ffffffff802a6f24>] vfs_ioctl+0x74/0x2d0 [ 1577.621435] [<ffffffff802a7215>] sys_ioctl+0x95/0xb0 [ 1577.621442] [<ffffffff80209e8e>] system_call+0x7e/0x83 [ 1577.621452] [ 1577.621453] [ 1577.621454] Code: 0f 0b eb fe 0f 1f 80 00 00 00 00 48 81 c7 e0 03 00 00 be 28 [ 1577.621462] RIP [<ffffffff8837d905>] :kvm:mmu_memory_cache_alloc+0x25/0x30 [ 1577.621471] RSP <ffff8100441819b8>
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 7 lines · Anthony Liguori
Quoted 6 lines · Avi Kivity
Quoted 2 lines · Haydn Solomon
I also had a problem installing windows xp. Got the following error
Quoted 6 lines
Quoted 2 lines
I guess I'll have to test that too.
I hit it again, this time about half-way through the second stage install of Windows XP (last time it was almost immediately). This is with your updated tree. I'll next try to reproduce with the latest git.
Can you try upping the 'min' parameter below:
Quoted 13 lines
static int
mmu_topup_memory_caches(struct kvm_vcpu *vcpu){ int r; kvm_mmu_free_some_pages(vcpu); r = mmu_topup_memory_cache(&vcpu->mmu_pte_chain_cache, pte_chain_cache, 4); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_rmap_desc_cache, rmap_desc_cache, 1); if (r) goto out;
Quoted 8 lines
r = mmu_topup_memory_cache_page(&vcpu->mmu_page_cache, 8);
if (r)
goto out;
r = mmu_topup_memory_cache(&vcpu->mmu_page_header_cache,
mmu_page_header_cache, 4);
out:
return r;
}These are the (4, 1, 8, 4) values in the call to mmu_topup_memory_cache. Perhaps one of them is too low.
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 4720E53A.7040803-atKUWr5tajBWk0Htik3J/[email protected]
Quoted 40 lines · Avi Kivity
Quoted 7 lines · Anthony Liguori
Quoted 6 lines · Avi Kivity
Quoted 2 lines · Haydn Solomon
I also had a problem installing windows xp. Got the following error
Quoted 6 lines
Quoted 2 lines
I guess I'll have to test that too.
I hit it again, this time about half-way through the second stage install of Windows XP (last time it was almost immediately). This is with your updated tree. I'll next try to reproduce with the latest git.
Can you try upping the 'min' parameter below:
Quoted 13 lines
static int
mmu_topup_memory_caches(struct kvm_vcpu *vcpu){ int r; kvm_mmu_free_some_pages(vcpu); r = mmu_topup_memory_cache(&vcpu->mmu_pte_chain_cache, pte_chain_cache, 4); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_rmap_desc_cache, rmap_desc_cache, 1); if (r) goto out;Quoted 8 lines
r = mmu_topup_memory_cache_page(&vcpu->mmu_page_cache, 8); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_page_header_cache, mmu_page_header_cache, 4); out: return r; }
Quoted 2 lines
These are the (4, 1, 8, 4) values in the call to
mmu_topup_memory_cache. Perhaps one of them is too low.
Sure. Would this be affected at all by your tpr patch? IIUC, if this is the problem, it should be reproducible with the latest git too?
Regards,
Anthony Liguori
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 24 lines · Anthony Liguori
Quoted 24 lines
Quoted 22 lines
static int
mmu_topup_memory_caches(struct kvm_vcpu *vcpu){ int r; kvm_mmu_free_some_pages(vcpu); r = mmu_topup_memory_cache(&vcpu->mmu_pte_chain_cache, pte_chain_cache, 4); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_rmap_desc_cache, rmap_desc_cache, 1); if (r) goto out; r = mmu_topup_memory_cache_page(&vcpu->mmu_page_cache, 8); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_page_header_cache, mmu_page_header_cache, 4); out: return r; }
Quoted 4 lines
Quoted 2 lines
These are the (4, 1, 8, 4) values in the call to
mmu_topup_memory_cache. Perhaps one of them is too low.Sure. Would this be affected at all by your tpr patch?
I believe not, but the code doesn't care what I believe.
Quoted 2 lines
IIUC, if this is the problem, it should be reproducible with the latest git too?
One difference is that the tpr patch disables nx. That causes Windows to go into 32-bit paging mode (nice that it has both pae and nonpae in the same kernel), which may change things.
You can try booting your host with nx disabled to get the same effect (or disable nx cpuid in kvm).
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 4720E80E.5070506-atKUWr5tajBWk0Htik3J/[email protected]
I was able to complete an installation of windows xp using -smp 1. However, I would like to test on an existing virtual machine with applications already installed on it. Changing the HAL to ACPI should be enough for me to test the windows optimization right feature right?
Quoted 40 lines · Avi Kivity
Quoted 24 lines · Anthony Liguori
Quoted 24 lines
Quoted 22 lines
static int
mmu_topup_memory_caches(struct kvm_vcpu *vcpu){ int r; kvm_mmu_free_some_pages(vcpu); r = mmu_topup_memory_cache(&vcpu->mmu_pte_chain_cache, pte_chain_cache, 4); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_rmap_desc_cache, rmap_desc_cache, 1); if (r) goto out; r = mmu_topup_memory_cache_page(&vcpu->mmu_page_cache, 8); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_page_header_cache, mmu_page_header_cache, 4); out: return r; }Quoted 4 lines
Quoted 2 lines
These are the (4, 1, 8, 4) values in the call to
mmu_topup_memory_cache. Perhaps one of them is too low.Sure. Would this be affected at all by your tpr patch?
I believe not, but the code doesn't care what I believe.
Quoted 2 lines
IIUC, if this is the problem, it should be reproducible with the latest git too?
One difference is that the tpr patch disables nx. That causes Windows to go into 32-bit paging mode (nice that it has both pae and nonpae in the same kernel), which may change things.
Quoted 7 lines
You can try booting your host with nx disabled to get the same effect (or disable nx cpuid in kvm).
--
error compilingcommittee.c: too many arguments to function
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
A message that is not in the archive (sent off-list or not yet received): b75785ba0710251209sdcba9cdrd2a6eb84c549581a-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org
Quoted 5 lines · Haydn Solomon
I was able to complete an installation of windows xp using -smp 1. However, I would like to test on an existing virtual machine with applications already installed on it. Changing the HAL to ACPI should be enough for me to test the windows optimization right feature right?
Yes.
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
Quoted 35 lines · Avi Kivity
Quoted 24 lines · Anthony Liguori
Quoted 24 lines
Quoted 22 lines
static int
mmu_topup_memory_caches(struct kvm_vcpu *vcpu){ int r; kvm_mmu_free_some_pages(vcpu); r = mmu_topup_memory_cache(&vcpu->mmu_pte_chain_cache, pte_chain_cache, 4); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_rmap_desc_cache, rmap_desc_cache, 1); if (r) goto out; r = mmu_topup_memory_cache_page(&vcpu->mmu_page_cache, 8); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_page_header_cache, mmu_page_header_cache, 4); out: return r; }Quoted 4 lines
Quoted 2 lines
These are the (4, 1, 8, 4) values in the call to
mmu_topup_memory_cache. Perhaps one of them is too low.Sure. Would this be affected at all by your tpr patch?
I believe not, but the code doesn't care what I believe.
Quoted 2 lines
IIUC, if this is the problem, it should be reproducible with the latest git too?
Quoted 6 lines
One difference is that the tpr patch disables nx. That causes Windows to go into 32-bit paging mode (nice that it has both pae and nonpae in the same kernel), which may change things.
You can try booting your host with nx disabled to get the same effect (or disable nx cpuid in kvm).
I've disabled NX in KVM and that didn't reproduce the issue in the current git.
If I double all of the memory caches, I can't seem to reproduce. However, as soon as I reduce rmap_desc_cache down to 1, I can reproduce.
I'll try to see if just setting the rmap_desc_cache line to 2 is enough to make the problem go away.
How can the guest provoke this BUG() based on the cache size? Should the cache size only affect performance?
Regards,
Anthony Liguori
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 48 lines · Anthony Liguori
Quoted 35 lines · Avi Kivity
Quoted 22 lines · Anthony Liguori
Quoted 22 lines
Quoted 22 lines
static int
mmu_topup_memory_caches(struct kvm_vcpu *vcpu){ int r; kvm_mmu_free_some_pages(vcpu); r = mmu_topup_memory_cache(&vcpu->mmu_pte_chain_cache, pte_chain_cache, 4); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_rmap_desc_cache, rmap_desc_cache, 1); if (r) goto out; r = mmu_topup_memory_cache_page(&vcpu->mmu_page_cache, 8); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_page_header_cache, mmu_page_header_cache, 4); out: return r; }Quoted 5 lines
Quoted 3 lines
These are the (4, 1, 8, 4) values in the call to
mmu_topup_memory_cache. Perhaps one of them is too low.Sure. Would this be affected at all by your tpr patch?
I believe not, but the code doesn't care what I believe.
Quoted 3 lines
IIUC, if this is the problem, it should be reproducible with the latest git too?
Quoted 7 lines
One difference is that the tpr patch disables nx. That causes Windows to go into 32-bit paging mode (nice that it has both pae and nonpae in the same kernel), which may change things.
You can try booting your host with nx disabled to get the same effect (or disable nx cpuid in kvm).
I've disabled NX in KVM and that didn't reproduce the issue in the current git.
Quoted 10 lines
If I double all of the memory caches, I can't seem to reproduce. However, as soon as I reduce
rmap_desc_cachedown to 1, I can reproduce.I'll try to see if just setting the
rmap_desc_cacheline to 2 is enough to make the problem go away.How can the guest provoke this
BUG()based on the cache size? Should the cache size only affect performance?
The memory caches are a little misnamed; they're really preallocation buffers.
They serve two purposes: to avoid allocation in atomic contexts (that's no longer needed since preempt notifiers) and to avoid complex error recovery paths. We make sure there are enough objects to satisfy worst case behavior and assume all allocations will work.
Regarding the rmap memory cache failure, I can't think of a reason why we'll need to add more than one rmap entry per fault.
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 4721A255.5050603-atKUWr5tajBWk0Htik3J/[email protected]
Quoted 59 lines · Avi Kivity
Quoted 47 lines · Anthony Liguori
Quoted 34 lines · Avi Kivity
Quoted 22 lines · Anthony Liguori
Quoted 22 lines
Quoted 22 lines
static int
mmu_topup_memory_caches(struct kvm_vcpu *vcpu){ int r; kvm_mmu_free_some_pages(vcpu); r = mmu_topup_memory_cache(&vcpu->mmu_pte_chain_cache, pte_chain_cache, 4); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_rmap_desc_cache, rmap_desc_cache, 1); if (r) goto out; r = mmu_topup_memory_cache_page(&vcpu->mmu_page_cache, 8); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_page_header_cache, mmu_page_header_cache, 4); out: return r; }Quoted 4 lines
Quoted 3 lines
These are the (4, 1, 8, 4) values in the call to
mmu_topup_memory_cache. Perhaps one of them is too low.Sure. Would this be affected at all by your tpr patch?
I believe not, but the code doesn't care what I believe.
Quoted 3 lines
IIUC, if this is the problem, it should be reproducible with the latest git too?
Quoted 7 lines
One difference is that the tpr patch disables nx. That causes Windows to go into 32-bit paging mode (nice that it has both pae and nonpae in the same kernel), which may change things.
You can try booting your host with nx disabled to get the same effect (or disable nx cpuid in kvm).
I've disabled NX in KVM and that didn't reproduce the issue in the current git.
Quoted 10 lines
If I double all of the memory caches, I can't seem to reproduce. However, as soon as I reduce
rmap_desc_cachedown to 1, I can reproduce.I'll try to see if just setting the
rmap_desc_cacheline to 2 is enough to make the problem go away.How can the guest provoke this
BUG()based on the cache size? Should the cache size only affect performance?
Quoted 7 lines
The memory caches are a little misnamed; they're really preallocation buffers.
They serve two purposes: to avoid allocation in atomic contexts (that's no longer needed since preempt notifiers) and to avoid complex error recovery paths. We make sure there are enough objects to satisfy worst case behavior and assume all allocations will work.
FWIW, two people in IRC just reported the same BUG in kvm-48 and the nightly snapshot. I asked them both to post more thorough descriptions here. That leads me to suspect that the problem wasn't introduced by your TPR optimization.
Regards,
Anthony Liguori
Quoted 3 lines
Regarding the rmap memory cache failure, I can't think of a reason why we'll need to add more than one rmap entry per fault.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
Quoted 25 lines · Avi Kivity
Quoted 24 lines · Anthony Liguori
Quoted 24 lines
Quoted 22 lines
static int
mmu_topup_memory_caches(struct kvm_vcpu *vcpu){ int r; kvm_mmu_free_some_pages(vcpu); r = mmu_topup_memory_cache(&vcpu->mmu_pte_chain_cache, pte_chain_cache, 4); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_rmap_desc_cache, rmap_desc_cache, 1); if (r) goto out; r = mmu_topup_memory_cache_page(&vcpu->mmu_page_cache, 8); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_page_header_cache, mmu_page_header_cache, 4); out: return r; }
Quoted 3 lines
Quoted 3 lines
Quoted 1 line
These are the (4, 1, 8, 4) values in the call to
mmu_topup_memory_cache. Perhaps one of them is too low.Sure. Would this be affected at all by your tpr patch?
Using the following patch, I'm getting really good results. I'll keep running test cases tonight and see if I can trigger anything.
Windows is *much* faster with your patch, very nice work!
Regards,
Anthony Liguori
Subject: [PATCH][TPR OPT] Increase rmap_desc_cache
From: Anthony Liguori <aliguori-r/[email protected]>
Cc: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/[email protected]>
Using kvm-test to replay the second stage of a WinXP Pro install, I can reliably trigger a BUG_ON() in the mmu. It usually happens during the first run.
With this patch applied, I've been able to replay the install for the past few hours (probably 10 or so installs) without hitting the BUG_ON().
kernel/mmu.c +1 -1
@@ -280,7 +280,7 @@if (r) goto out; r =mmu_topup_memory_cache (&vcpu->mmu_rmap_desc_cache, - rmap_desc_cache,1 ); + rmap_desc_cache,2 );if (r) goto out; r =mmu_topup_memory_cache_page (&vcpu->mmu_page_cache,8 );
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
A message that is not in the archive (sent off-list or not yet received): [email protected]
I've been running windows xp sp2 all day with acpi uniprocessor HAL and it's noticeable much faster...blazing fast. I can imagine how much faster it will be when -smp 2 works. Once it did hang up on me after installing an office application and prompted for registration online. Other than that it's been superb. I'll continue using it and look out for anything unusual. Thanks and great piece of work.
Quoted 32 lines · Anthony Liguori
Quoted 25 lines · Avi Kivity
Quoted 24 lines · Anthony Liguori
Quoted 24 lines
Quoted 22 lines
static int
mmu_topup_memory_caches(struct kvm_vcpu *vcpu){ int r; kvm_mmu_free_some_pages(vcpu); r = mmu_topup_memory_cache(&vcpu->mmu_pte_chain_cache, pte_chain_cache, 4); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_rmap_desc_cache, rmap_desc_cache, 1); if (r) goto out; r = mmu_topup_memory_cache_page(&vcpu->mmu_page_cache, 8); if (r) goto out; r = mmu_topup_memory_cache(&vcpu->mmu_page_header_cache, mmu_page_header_cache, 4); out: return r; }Quoted 4 lines
Quoted 4 lines
Quoted 2 lines
These are the (4, 1, 8, 4) values in the call to
mmu_topup_memory_cache. Perhaps one of them is too low.Sure. Would this be affected at all by your tpr patch?
Quoted 10 lines
Using the following patch, I'm getting really good results. I'll keep running test cases tonight and see if I can trigger anything.
Windows is *much* faster with your patch, very nice work!
Regards,
Anthony Liguori
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
Quoted 7 lines · Anthony Liguori
Using the following patch, I'm getting really good results.
kernel/mmu.c line 286
Quoted 8 lines
kernel/mmu.c +1
-1@@ -280,7 +280,7 @@if (r) goto out; r =mmu_topup_memory_cache (&vcpu->mmu_rmap_desc_cache, - rmap_desc_cache,1 ); + rmap_desc_cache,2 );if (r) goto out; r =mmu_topup_memory_cache_page (&vcpu->mmu_page_cache,8 );
I think I know what's happening.
We get a write page fault on a page that's not shadowed. Turns out it's a page table page, so we map it read-only, and also rmap it.
Since it's a page table page, we emulate the write and try to map the just-written pte as well, since it's likely somebody will access the memory pointed-to by the pte. This consumes another rmap entry, and we go boom.
This didn't happen previously, because we didn't rmap read-only pages, so the first mapping did not consume an rmap entry. With swapping enabled, we do map read only pages, so we see this.
The correct fix is probably to call mmu_topup_memory_pages() from where we do the emulated write, but this seems difficult.
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
Hey,
Quoted 7 lines
Quoted 6 lines · Avi Kivity
Quoted 2 lines · Haydn Solomon
I also had a problem installing windows xp. Got the following error
Quoted 7 lines
Quoted 2 lines
I guess I'll have to test that too.
I hit it again, this time about half-way through the second stage install of Windows XP (last time it was almost immediately). This is with your updated tree. I'll next try to reproduce with the latest git.
I tried to install a Windows 2003 guest.
I get the following error:
It appeard during the disk formating process.
- fabiand
Quoted 99 lines
Regards,
Anthony Liguori
[ 1577.621100] ------------[ cut here ]------------ [ 1577.621106] kernel BUG at /home/anthony/tmp/2/tpr-opt-1/kernel/mmu.c:308! [ 1577.621108] invalid opcode: 0000 [1] SMP [ 1577.621111] CPU 1 [ 1577.621113] Modules linked in: tun kvm_intel kvm i915 drm af_packetrfcomm l2cap
thinkpad_acpippdevacpi_cpufreqcpufreq_statscpufreq_ondemandfreq_tablecpufreq_userspacecpufreq_conservativecpufreq_powersavesbs ac battery bay dock container button video ipv6 bridgeipt_REJECTxt_statext_tcpudpiptable_filteript_MASQUERADEiptable_natnf_natnf_conntrack_ipv4nf_conntracknfnetlinkip_tablesx_tablessbp2 lp arc4 ecb blkciphersnd_hda_intelsnd_pcm_osssnd_mixer_osssnd_pcmsnd_seq_dummyiwl4965iwlwifi_mac80211snd_seq_ossparport_pcsnd_seq_midisnd_rawmidiparport cfg80211 pcmciahci_usbbluetoothsnd_seq_midi_eventsnd_seqsnd_timersnd_seq_deviceintel_agpsdhcimmc_coreserio_rawpsmouse pcspkryenta_socketrsrc_nonstaticpcmcia_coresnd soundcore shpchppci_hotplugsnd_page_allocjoydev evdev ext3 jbd mbcache usbhid hid sgsr_modsd_modcdromata_piixehci_hcdohci1394 ieee1394ata_genericlibatascsi_moduhci_hcdusbcore e1000 thermal processor fan fuse apparmor commoncap[ 1577.621172] Pid: 7788, comm: qemu-system-x86 Not tainted 2.6.22-14-generic #1 [ 1577.621175] RIP: 0010:[<ffffffff8837d905>] [<ffffffff8837d905>] :kvm:mmu_memory_cache_alloc+0x25/0x30 [ 1577.621188] RSP: 0018:ffff8100441819b8 EFLAGS: 00010246 [ 1577.621190] RAX: 0000000000000000 RBX: ffffc200010c1968 RCX: ffff81001eebc080 [ 1577.621193] RDX: ffff81001eebc088 RSI: 0000000000000028 RDI: ffff8100388543e0 [ 1577.621195] RBP: ffff81000377f060 R08: 0000000000000000 R09: 0000000000000004 [ 1577.621197] R10: 00000000081ed163 R11: 0000000000000000 R12: ffff810038854000 [ 1577.621200] R13: 0000000000000000 R14: ffff81000377f060 R15: ffff810038854000 [ 1577.621202] FS: 00002b7827310d40(0000) GS:ffff81000102c280(0000) knlGS:0000000000000000 [ 1577.621205] CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b [ 1577.621207] CR2: 0000000001002ff8 CR3: 0000000054f45000 CR4: 00000000000026e0 [ 1577.621210] Process qemu-system-x86 (pid: 7788, threadinfo ffff810044180000, task ffff81000d4d8dc0) [ 1577.621212] Stack: ffffc200010c1968 ffffffff8837da16 00000000441c6043 0000000000000002 [ 1577.621216] 00000000441c6000 ffffffff8837e1ad 00002b7828552000 00000000000081ed [ 1577.621220] 0000000000000000 0000000000000000 00000000081ed000 00000000081ed000 [ 1577.621223] Call Trace: [ 1577.621233] [<ffffffff8837da16>] :kvm:rmap_add+0xf6/0x110 [ 1577.621243] [<ffffffff8837e1ad>] :kvm:paging32_set_pte_common+0x10d/0x2b0 [ 1577.621258] [<ffffffff8837e399>] :kvm:paging32_set_pte+0x49/0x50 [ 1577.621269] [<ffffffff8837e9dd>] :kvm:kvm_mmu_pte_write+0x33d/0x3b0 [ 1577.621287] [<ffffffff883786cd>] :kvm:emulator_write_emulated_onepage+0x9d/0x100 [ 1577.621298] [<ffffffff88380da8>] :kvm:x86_emulate_insn+0x5e8/0x4450 [ 1577.621308] [<ffffffff88396467>] :kvm_intel:vmcs_readl+0x17/0x20 [ 1577.621320] [<ffffffff88378cff>] :kvm:emulate_instruction+0x1af/0x2f0 [ 1577.621328] [<ffffffff88399090>] :kvm_intel:handle_exception+0x240/0x2b0 [ 1577.621336] [<ffffffff88385ab9>] :kvm:apic_update_ppr+0x29/0x60 [ 1577.621347] [<ffffffff8837aa74>] :kvm:kvm_vcpu_ioctl+0xe54/0x11b0 [ 1577.621355] [<ffffffff8026e000>] file_read_actor+0x0/0x150 [ 1577.621366] [<ffffffff8022cacc>] task_rq_lock+0x4c/0x90 [ 1577.621372] [<ffffffff8022f30c>] try_to_wake_up+0x5c/0x3f0 [ 1577.621385] [<ffffffff802a84f5>] core_sys_select+0x275/0x300 [ 1577.621391] [<ffffffff8022ca03>] __wake_up+0x43/0x70 [ 1577.621402] [<ffffffff80240719>] __dequeue_signal+0x19/0x1d0 [ 1577.621409] [<ffffffff8023ffce>] recalc_sigpending+0xe/0x30 [ 1577.621412] [<ffffffff8024212c>] dequeue_signal+0x5c/0x190 [ 1577.621416] [<ffffffff8024f4f9>] getnstimeofday+0x39/0xa0 [ 1577.621423] [<ffffffff802a6e05>] do_ioctl+0x35/0xe0 [ 1577.621428] [<ffffffff802a6f24>] vfs_ioctl+0x74/0x2d0 [ 1577.621435] [<ffffffff802a7215>] sys_ioctl+0x95/0xb0 [ 1577.621442] [<ffffffff80209e8e>] system_call+0x7e/0x83 [ 1577.621452] [ 1577.621453] [ 1577.621454] Code: 0f 0b eb fe 0f 1f 80 00 00 00 00 48 81 c7 e0 03 00 00 be 28 [ 1577.621462] RIP [<ffffffff8837d905>] :kvm:mmu_memory_cache_alloc+0x25/0x30 [ 1577.621471] RSP <ffff8100441819b8>-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
Signature · 10 lines
Fabian Deutsch <[email protected]> Hinter dem Gartel 26a D-27711 Osterholz-Scharmbeck ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
Quoted 16 lines · Avi Kivity
Quoted 5 lines · Jindrich Makovicka
On Thu, 25 Oct 2007 13:39:33 -0400
"Haydn Solomon" <[email protected]> wrote:Quoted 8 lines
Quoted 3 lines
Thanks, that was quick.
Finally, this (pre)release solved the long standing Java IE Plugin lockup problem for me. Thanks a lot!
Quoted 5 lines
No, this release is meant to cause problems, not fix them.
(but thanks for the reminder)
It's probably due to disabling NX (which is an unwanted side effect of this). Java generates executable code, so it probably needs to modify protection attributes. Maybe we're bad at this.
Can you check the attached patch? Against normal kvm, not the windows accelerator.
Signature · 1 line
error compiling committee.c: too many arguments to function
drivers/kvm/x86.c +1 -1
@@ -194,7 +194,7 @@ static void cpuid_fix_nx_cap(struct kvm_vcpu *vcpu)break ; } } -if (entry && (entry->edx & (1 <<20 )) && !(efer &EFER_NX )) { +if (entry) { entry->edx &= ~(1 <<20 );printk (KERN_INFO "kvm: guest NX capability removed\n" ); }
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
A message that is not in the archive (sent off-list or not yet received): 4721BCCD.4000401-atKUWr5tajBWk0Htik3J/[email protected]
Quoted 7 lines · On Fri, 26 Oct 2007 12:09:17 +0200 Avi Kivity…
Avi Kivity wrote:
It's probably due to disabling NX (which is an unwanted side effect of this). Java generates executable code, so it probably needs to modify protection attributes. Maybe we're bad at this.Can you check the attached patch? Against normal kvm, not the windows accelerator.
You are right, patched kvm-48 works too. It seems that NX is the culprit.
Signature · 7 lines
Jindrich Makovicka ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
Quoted 9 lines · Avi Kivity
This is a request for testing of an experimental kvm feature that dramatically accelerates some Windows releases (when running with the ACPI HAL, and especially with guest SMP). The feature detects accesses by the guest to the Task Priority Register (TPR) and patches them at runtime to a kvm-friendly code snipped that is provided by the BIOS.
The upshot of all that is that http://kvm.qumranet.com/kvmwiki/Windows_ACPI_Workaround is no longer required, and Windows SMP no longer runs like a dog; it's quite snappy from my very limited testing.
Please download the test release from http://people.qumranet.com/avi/tpr-opt-1.tar.gz and give it a spin. Once it has received some exposure, I'll merge it into mainline.
Credit for the original idea is due to Ben Serebrin.
Sweet!
I needed the following patch to compile. Will let you know how testing goes.
Regards,
Anthony Liguori
qemu/qemu-kvm.h +1 -1
@@ -30,7 +30,6 @@#define ALIGN (x, y) (((x)+(y)-1) & ~((y)-1))#define BITMAP_SIZE (m) (ALIGN(((m)>>TARGET_PAGE_BITS), HOST_LONG_BITS) / 8) -#endif extern int kvm_tpr_log_enabled;void kvm_do_log_tpr (int write);
@@ -42,3 +41,4 @@if (kvm_tpr_log_enabled && addr ==0xfee00080 ) kvm_do_log_tpr(write); } +#endif
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 17 lines · Anthony Liguori
Quoted 16 lines · Avi Kivity
This is a request for testing of an experimental kvm feature that dramatically accelerates some Windows releases (when running with the ACPI HAL, and especially with guest SMP). The feature detects accesses by the guest to the Task Priority Register (TPR) and patches them at runtime to a kvm-friendly code snipped that is provided by the BIOS.
The upshot of all that is that
http://kvm.qumranet.com/kvmwiki/Windows_ACPI_Workaround is no longer required, and Windows SMP no longer runs like a dog; it's quite snappy from my very limited testing.Please download the test release from
http://people.qumranet.com/avi/tpr-opt-1.tar.gz and give it a spin. Once it has received some exposure, I'll merge it into mainline.
Quoted 9 lines
Quoted 3 lines
Credit for the original idea is due to Ben Serebrin.
Sweet!
I needed the following patch to compile. Will let you know how testing goes.
I already applied that, plus another minor fix, so I recommend re-downloading. Should have given it a new name.
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 4720DA66.6040303-atKUWr5tajBWk0Htik3J/[email protected]
Quoted 22 lines · Avi Kivity
Quoted 21 lines · Anthony Liguori
Quoted 19 lines · Avi Kivity
This is a request for testing of an experimental kvm feature that dramatically accelerates some Windows releases (when running with the ACPI HAL, and especially with guest SMP). The feature detects accesses by the guest to the Task Priority Register (TPR) and patches them at runtime to a kvm-friendly code snipped that is provided by the BIOS.
The upshot of all that is that
http://kvm.qumranet.com/kvmwiki/Windows_ACPI_Workaround is no longer required, and Windows SMP no longer runs like a dog; it's quite snappy from my very limited testing.Please download the test release from
http://people.qumranet.com/avi/tpr-opt-1.tar.gz and give it a spin. Once it has received some exposure, I'll merge it into mainline.Credit for the original idea is due to Ben Serebrin.
Quoted 8 lines
Quoted 5 lines
Sweet!
I needed the following patch to compile. Will let you know how testing goes.
I already applied that, plus another minor fix, so I recommend re-downloading. Should have given it a new name.
What's the minor fix? During the second stage of installing winxp, I just got the following BUG(). Have to reboot to check and see if this is specific to your branch.
[68630.390361] ------------[ cut here ]------------ [68630.390367] kernel BUG at /home/anthony/tmp/b/kernel/mmu.c:308! [68630.390370] invalid opcode: 0000 [1] SMP [68630.390372] CPU 1 [68630.390374] Modules linked in: kvm_intel kvm nfs lockd sunrpc tun
i915 drm af_packet rfcomm l2cap thinkpad_acpi ppdev acpi_cpufreq cpufreq_stats cpufreq_ondemand freq_table cpufreq_userspace cpufreq_conservative cpufreq_powersave sbs ac battery bay dock container button video ipv6 bridge ipt_REJECT xt_state xt_tcpudp iptable_filter ipt_MASQUERADE iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nfnetlink ip_tables x_tables sbp2 lp arc4 ecb blkcipher snd_hda_intel snd_pcm_oss snd_mixer_oss snd_pcm snd_seq_dummy snd_seq_oss joydev iwl4965 snd_seq_midi iwlwifi_mac80211 hci_usb snd_rawmidi snd_seq_midi_event snd_seq snd_timer bluetooth pcmcia cfg80211 usbhid hid sdhci mmc_core snd_seq_device serio_raw parport_pc parport yenta_socket rsrc_nonstatic pcmcia_core pcspkr psmouse snd soundcore intel_agp shpchp pci_hotplug snd_page_alloc evdev ext3 jbd mbcache sg sr_mod cdrom sd_mod ata_piix ohci1394 ieee1394 ata_generic libata scsi_mod ehci_hcd uhci_hcd usbcore e1000 thermal processor fan fuse apparmor commoncap
[68630.390435] Pid: 15055, comm: qemu-system-x86 Not tainted 2.6.22-14-generic #1 [68630.390437] RIP: 0010:[<ffffffff8837f905>] [<ffffffff8837f905>] :kvm:mmu_memory_cache_alloc+0x25/0x30 [68630.390451] RSP: 0018:ffff810041e3b9b8 EFLAGS: 00010246 [68630.390453] RAX: 0000000000000000 RBX: ffffc2000109dea0 RCX: ffff81003f47c080 [68630.390456] RDX: ffff81003f47c088 RSI: 0000000000000028 RDI: ffff810042d103e0 [68630.390458] RBP: ffff81004eaf9460 R08: 0000000000000000 R09: 0000000000000004 [68630.390460] R10: 0000000003a94163 R11: 0000000000000000 R12: ffff810042d10000 [68630.390463] R13: 0000000000000000 R14: ffff81004eaf9460 R15: ffff810042d10000 [68630.390465] FS: 00002b08de4add40(0000) GS:ffff81000102c280(0000) knlGS:0000000000000000 [68630.390468] CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033 [68630.390470] CR2: 0000000000010000 CR3: 00000000284ef000 CR4: 00000000000026e0 [68630.390473] Process qemu-system-x86 (pid: 15055, threadinfo ffff810041e3a000, task ffff81003b9346e0) [68630.390475] Stack: ffffc2000109dea0 ffffffff8837fa16 000000002149d043 0000000000000002 [68630.390480] 000000002149d000 ffffffff883801ad 00002b08df4e4000 0000000000003a94 [68630.390484] 0000000000000000 0000000000000000 0000000003a94000 0000000003a94000 [68630.390487] Call Trace: [68630.390496] [<ffffffff8837fa16>] :kvm:rmap_add+0xf6/0x110 [68630.390507] [<ffffffff883801ad>] :kvm:paging32_set_pte_common+0x10d/0x2b0 [68630.390523] [<ffffffff88380399>] :kvm:paging32_set_pte+0x49/0x50 [68630.390534] [<ffffffff883809dd>] :kvm:kvm_mmu_pte_write+0x33d/0x3b0 [68630.390553] [<ffffffff8837a6cd>] :kvm:emulator_write_emulated_onepage+0x9d/0x100 [68630.390564] [<ffffffff88382da8>] :kvm:x86_emulate_insn+0x5e8/0x4450 [68630.390574] [<ffffffff8855f467>] :kvm_intel:vmcs_readl+0x17/0x20 [68630.390586] [<ffffffff8837acff>] :kvm:emulate_instruction+0x1af/0x2f0 [68630.390596] [<ffffffff88562090>] :kvm_intel:handle_exception+0x240/0x2b0 [68630.390603] [<ffffffff88387aa9>] :kvm:apic_update_ppr+0x29/0x60 [68630.390615] [<ffffffff8837ca74>] :kvm:kvm_vcpu_ioctl+0xe54/0x11b0 [68630.390622] [<ffffffff8026e624>] add_to_page_cache_lru+0x24/0x40 [68630.390628] [<ffffffff8028f088>] shmem_getpage+0x298/0x7e0 [68630.390652] [<ffffffff802a84f5>] core_sys_select+0x275/0x300 [68630.390670] [<ffffffff80240719>] __dequeue_signal+0x19/0x1d0 [68630.390677] [<ffffffff8023ffce>] recalc_sigpending+0xe/0x30 [68630.390680] [<ffffffff8024212c>] dequeue_signal+0x5c/0x190 [68630.390685] [<ffffffff8024f4f9>] getnstimeofday+0x39/0xa0 [68630.390692] [<ffffffff802a6e05>] do_ioctl+0x35/0xe0 [68630.390698] [<ffffffff802a6f24>] vfs_ioctl+0x74/0x2d0 [68630.390705] [<ffffffff802a7215>] sys_ioctl+0x95/0xb0 [68630.390712] [<ffffffff80209e8e>] system_call+0x7e/0x83 [68630.390723] [68630.390724] [68630.390725] Code: 0f 0b eb fe 0f 1f 80 00 00 00 00 48 81 c7 e0 03 00 00 be 28 [68630.390733] RIP [<ffffffff8837f905>] :kvm:mmu_memory_cache_alloc+0x25/0x30 [68630.390742] RSP <ffff810041e3b9b8>
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 30 lines · Anthony Liguori
Quoted 29 lines · Avi Kivity
Quoted 27 lines · Anthony Liguori
Quoted 12 lines · Avi Kivity
This is a request for testing of an experimental kvm feature that dramatically accelerates some Windows releases (when running with the ACPI HAL, and especially with guest SMP). The feature detects accesses by the guest to the Task Priority Register (TPR) and patches them at runtime to a kvm-friendly code snipped that is provided by the BIOS.
The upshot of all that is that
http://kvm.qumranet.com/kvmwiki/Windows_ACPI_Workaround is no longer required, and Windows SMP no longer runs like a dog; it's quite snappy from my very limited testing.Quoted 8 lines
Please download the test release from
http://people.qumranet.com/avi/tpr-opt-1.tar.gz and give it a spin. Once it has received some exposure, I'll merge it into mainline.Credit for the original idea is due to Ben Serebrin.
Sweet!
I needed the following patch to compile. Will let you know how testing goes.
Quoted 7 lines
Quoted 2 lines
I already applied that, plus another minor fix, so I recommend re-downloading. Should have given it a new name.
What's the minor fix? During the second stage of installing winxp, I just got the following
BUG(). Have to reboot to check and see if this is specific to your branch.
Unrelated to the below, I guess. It prevents BSODs, not BUGs.
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
Quoted 11 lines · Avi Kivity
This is a request for testing of an experimental kvm feature that dramatically accelerates some Windows releases (when running with the ACPI HAL, and especially with guest SMP). The feature detects accesses by the guest to the Task Priority Register (TPR) and patches them at runtime to a kvm-friendly code snipped that is provided by the BIOS.
The upshot of all that is that
http://kvm.qumranet.com/kvmwiki/Windows_ACPI_Workaround is no longer required, and Windows SMP no longer runs like a dog; it's quite snappy from my very limited testing.
Quoted 6 lines
Please download the test release from
http://people.qumranet.com/avi/tpr-opt-1.tar.gz and give it a spin. Once it has received some exposure, I'll merge it into mainline.Credit for the original idea is due to Ben Serebrin.
BTW, is it wise to enable this by default for all guests? Ignoring the fact that we're modifying guest's memory without its knowledge, if a guest unmaps the VA mappings for the BIOS then all sorts of problems could occur.
Regards,
Anthony Liguori
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 17 lines · Anthony Liguori
Quoted 15 lines · Avi Kivity
This is a request for testing of an experimental kvm feature that dramatically accelerates some Windows releases (when running with the ACPI HAL, and especially with guest SMP). The feature detects accesses by the guest to the Task Priority Register (TPR) and patches them at runtime to a kvm-friendly code snipped that is provided by the BIOS.
The upshot of all that is that
http://kvm.qumranet.com/kvmwiki/Windows_ACPI_Workaround is no longer required, and Windows SMP no longer runs like a dog; it's quite snappy from my very limited testing.Please download the test release from
http://people.qumranet.com/avi/tpr-opt-1.tar.gz and give it a spin. Once it has received some exposure, I'll merge it into mainline.
Quoted 8 lines
Quoted 3 lines
Credit for the original idea is due to Ben Serebrin.
BTW, is it wise to enable this by default for all guests? Ignoring the fact that we're modifying guest's memory without its knowledge, if a guest unmaps the VA mappings for the BIOS then all sorts of problems could occur
I'd like to make this the default and add an option to disable it.
The code is careful to try to detect Windows, and we can tighten the check in case it misfires. I'd like things to Just Work (they may also Just Crash, but hopefully we can fix this).
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
Quoted 7 lines
BTW, is it wise to enable this by default for all guests? Ignoring the
fact that we're modifying guest's memory without its knowledge, if a guest unmaps the VA mappings for the BIOS then all sorts of problems could occur.
Good movement!
But, Vista won't work with patching. The memory guard in vista will make the system refuse to service. Maybe we need a option to check if it is vista.
Eddie
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 10EA09EFD8728347A513008B6B0DA77A0248295E-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org
Quoted 7 lines · Eddie
Quoted 7 lines
BTW, is it wise to enable this by default for all guests? Ignoring the
fact that we're modifying guest's memory without its knowledge, if a guest unmaps the VA mappings for the BIOS then all sorts of problems could occur.
Quoted 7 lines
Good movement!
But, Vista won't work with patching. The memory guard in vista will make the system refuse to service. Maybe we need a option to check if it is vista.
Thanks for the hint; I'll add that. I think Vista hits the tpr much less frequently, so it can work well without the optimization.
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 4721AC51.3090108-atKUWr5tajBWk0Htik3J/[email protected]
Quoted 10 lines · Avi Kivity
Quoted 9 lines · Eddie
Quoted 7 lines
BTW, is it wise to enable this by default for all guests? Ignoring the
fact that we're modifying guest's memory without its knowledge, if a guest unmaps the VA mappings for the BIOS then all sorts of problems could occur.Good movement!
Quoted 9 lines
Quoted 5 lines
But, Vista won't work with patching. The memory guard in vista will make the system refuse to service. Maybe we need a option to check if it is vista.
Thanks for the hint; I'll add that. I think Vista hits the tpr much less frequently, so it can work well without the optimization.
Curious: How do u know ROM is mapped 0xf00000000 in Windows? Eddie
kvm_get_sregs(kvm_context, env->cpu_index, &sregs);
probe = (rip & 0xf0000000) + 0xe0000;
phys = map_addr(&sregs, probe, &perms);
if (phys != 0xe0000)
return 0;
printf("bios ok at %lx\n", (long)probe);-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 10EA09EFD8728347A513008B6B0DA77A02482C0D-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org
Quoted 10 lines · Eddie
Quoted 6 lines
Quoted 2 lines
Thanks for the hint; I'll add that. I think Vista hits the tpr much less frequently, so it can work well without the optimization.
Curious: How do u know ROM is mapped
0xf00000000in Windows? Eddie
Quoted 8 lines
kvm_get_sregs(kvm_context, env->cpu_index, &sregs);
probe = (rip & 0xf0000000) + 0xe0000;
phys = map_addr(&sregs, probe, &perms);
if (phys != 0xe0000)
return 0;
printf("bios ok at %lx\n", (long)probe);I checked :)
It's actually not mapped at 0xf0000000. On normal Windows XP it is mapped at 0x80000000, with /3GB it is mapped at 0xe0000000. The code checks it is within the same 256MB segment as the code that's hitting tpr. It could probably be improved.
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
Quoted 7 lines · Eddie
Quoted 7 lines
BTW, is it wise to enable this by default for all guests? Ignoring the
fact that we're modifying guest's memory without its knowledge, if a guest unmaps the VA mappings for the BIOS then all sorts of problems could occur.
Quoted 6 lines
Good movement!
But, Vista won't work with patching. The memory guard in vista will make the system refuse to service. Maybe we need a option to check if it is vista.
Are you sure that Vista isn't just verifying memory during startup/driver load? Seems odd to periodically scan memory.
In the recently released Windows Hypervisor specification, in section 13.2.2 (Local APIC Memory-mapped Accesses), it's dictated that the APIC can only be accessed through 6 instructions. They are all >= 5 byte instructions. When I first saw that, I figured they were also patching.
Regards,
Anthony Liguori
Quoted 3 lines
Eddie
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 9 lines · Anthony Liguori
Quoted 8 lines
Good movement!
But, Vista won't work with patching. The memory guard in vista will make the system refuse to service. Maybe we need a option to check if it is vista.
Quoted 8 lines
Are you sure that Vista isn't just verifying memory during startup/driver load? Seems odd to periodically scan memory.
In the recently released Windows Hypervisor specification, in section 13.2.2 (Local APIC Memory-mapped Accesses), it's dictated that the APIC can only be accessed through 6 instructions. They are all >= 5 byte instructions. When I first saw that, I figured they were also patching.
Six? My hack patches five. Which one did I miss?
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 4721EAA9.1090202-atKUWr5tajBWk0Htik3J/[email protected]
Quoted 12 lines · Avi Kivity
Quoted 11 lines · Anthony Liguori
Quoted 7 lines
Good movement!
But, Vista won't work with patching. The memory guard in vista will make the system refuse to service. Maybe we need a option to check if it is vista.
Are you sure that Vista isn't just verifying memory during startup/driver load? Seems odd to periodically scan memory.
Quoted 8 lines
Quoted 6 lines
In the recently released Windows Hypervisor specification, in section 13.2.2 (Local APIC Memory-mapped Accesses), it's dictated that the APIC can only be accessed through 6 instructions. They are all >= 5 byte instructions. When I first saw that, I figured they were also patching.
Six? My hack patches five. Which one did I miss?
FF /6 PUSH m32
Also note, that it says that all addresses are required to be 4-byte aligned.
Regards,
Anthony LIguori
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 20 lines · Anthony Liguori
Quoted 19 lines · Avi Kivity
Quoted 17 lines · Anthony Liguori
Quoted 7 lines
Good movement!
But, Vista won't work with patching. The memory guard in vista will make the system refuse to service. Maybe we need a option to check if it is vista.
Are you sure that Vista isn't just verifying memory during startup/driver load? Seems odd to periodically scan memory.
In the recently released Windows Hypervisor specification, in section 13.2.2 (Local APIC Memory-mapped Accesses), it's dictated that the APIC can only be accessed through 6 instructions. They are all >= 5 byte instructions. When I first saw that, I figured they were also patching.
Quoted 4 lines
Quoted 1 line
Six? My hack patches five. Which one did I miss?
FF /6 PUSH m32
Thanks. That's easy to add.
Quoted 2 lines
Also note, that it says that all addresses are required to be 4-byte aligned.
Which addresses? The tpr address is obviously 4 byte aligned.
The instruction pointer?!
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 4721EDED.8090204-atKUWr5tajBWk0Htik3J/[email protected]
Quoted 26 lines · Avi Kivity
Quoted 20 lines · Anthony Liguori
Quoted 19 lines · Avi Kivity
Quoted 17 lines · Anthony Liguori
Quoted 7 lines
Good movement!
But, Vista won't work with patching. The memory guard in vista will make the system refuse to service. Maybe we need a option to check if it is vista.
Are you sure that Vista isn't just verifying memory during startup/driver load? Seems odd to periodically scan memory.
In the recently released Windows Hypervisor specification, in section 13.2.2 (Local APIC Memory-mapped Accesses), it's dictated that the APIC can only be accessed through 6 instructions. They are all >= 5 byte instructions. When I first saw that, I figured they were also patching.
Quoted 4 lines
Quoted 1 line
Six? My hack patches five. Which one did I miss?
FF /6 PUSH m32
Quoted 6 lines
Thanks. That's easy to add.
Quoted 2 lines
Also note, that it says that all addresses are required to be 4-byte aligned.
Which addresses? The tpr address is obviously 4 byte aligned.
The tpr address.
Regards,
Anthony Liguori
Quoted 2 lines
The instruction pointer?!
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
Quoted 7 lines · Eddie
Quoted 7 lines
BTW, is it wise to enable this by default for all guests? Ignoring the
fact that we're modifying guest's memory without its knowledge, if a guest unmaps the VA mappings for the BIOS then all sorts of problems could occur.
Quoted 6 lines
Good movement!
But, Vista won't work with patching. The memory guard in vista will make the system refuse to service. Maybe we need a option to check if it is vista.
FWIW, I successfully installed and booted Vista Enterprise Edition with the TPR optimization patch.
Regards,
Anthony Liguori
Quoted 3 lines
Eddie
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 10 lines · Anthony Liguori
Quoted 9 lines · Eddie
Quoted 7 lines
BTW, is it wise to enable this by default for all guests? Ignoring the
fact that we're modifying guest's memory without its knowledge, if a guest unmaps the VA mappings for the BIOS then all sorts of problems could occur.Good movement!
Quoted 8 lines
Quoted 4 lines
But, Vista won't work with patching. The memory guard in vista will make the system refuse to service. Maybe we need a option to check if it is vista.
FWIW, I successfully installed and booted Vista Enterprise Edition with the TPR optimization patch.
32 bits or 64 bits?
See
http://blogs.msdn.com/windowsvistasecurity/archive/2006/08/11/695993.asp
x
It says:
There are many brand new security features in Windows Vista, but Kernel Patch Protection is actually not one of them. Kernel Patch Protection was first supported on x64 (AMD64 and Intel EMT64T) CPU architecture versions of Microsoft Windows including Microsoft Windows Server 2003 SP1 and Windows XP Microsoft Windows XP Professional x64 Edition. (Patch protection is currently not supported on x86 or ia64 architectures.) Though, as the use of 64-bit computers is increasing, Windows Vista users will end up benefiting most from this technology.
Seems Vista 32 is not using patchguard yet, not sure about next SP. If above is true, it looks like we are OK for current stage. thx,eddie
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 10EA09EFD8728347A513008B6B0DA77A024CE569-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org
Quoted 39 lines · Eddie
Quoted 12 lines · Anthony Liguori
Quoted 10 lines · Eddie
Quoted 8 lines
BTW, is it wise to enable this by default for all guests? Ignoring the
fact that we're modifying guest's memory without its knowledge, if a guest unmaps the VA mappings for the BIOS then all sorts of problems could occur.Good movement!
Quoted 9 lines
Quoted 5 lines
But, Vista won't work with patching. The memory guard in vista will make the system refuse to service. Maybe we need a option to check if it is vista.
FWIW, I successfully installed and booted Vista Enterprise Edition with the TPR optimization patch.
32 bits or 64 bits?
See
http://blogs.msdn.com/windowsvistasecurity/archive/2006/08/11/695993.asp
xIt says:
There are many brand new security features in Windows Vista, but Kernel Patch Protection is actually not one of them. Kernel Patch Protection was first supported on x64 (AMD64 and Intel EMT64T) CPU architecture versions of Microsoft Windows including Microsoft Windows Server 2003 SP1 and Windows XP Microsoft Windows XP Professional x64 Edition. (Patch protection is currently not supported on x86 or ia64 architectures.) Though, as the use of 64-bit computers is increasing, Windows Vista users will end up benefiting most from this technology.
Quoted 4 lines
Seems Vista 32 is not using patchguard yet, not sure about next SP. If above is true, it looks like we are OK for current stage. thx,eddie
I tested 32-bit Vista. We'll have to try 64-bit Vista and see if it gets upset.
Regards,
Anthony Liguori
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 42 lines · Anthony Liguori
Quoted 28 lines · Eddie
Quoted 9 lines · Anthony Liguori
Quoted 7 lines · Eddie
Quoted 7 lines
BTW, is it wise to enable this by default for all guests? Ignoring the
fact that we're modifying guest's memory without its knowledge, if a guest unmaps the VA mappings for the BIOS then all sorts of problems could occur.Quoted 10 lines
Quoted 6 lines
Good movement!
But, Vista won't work with patching. The memory guard in vista will make the system refuse to service. Maybe we need a option to check if it is vista.
FWIW, I successfully installed and booted Vista Enterprise Edition with the TPR optimization patch.
32 bits or 64 bits?
See
http://blogs.msdn.com/windowsvistasecurity/archive/2006/08/11/695993.asp
xIt says:
Quoted 12 lines
There are many brand new security features in Windows Vista, but Kernel Patch Protection is actually not one of them. Kernel Patch Protection was first supported on x64 (AMD64 and Intel EMT64T) CPU architecture versions of Microsoft Windows including Microsoft Windows Server 2003 SP1 and Windows XP Microsoft Windows XP Professional x64 Edition. (Patch protection is currently not supported on x86 or ia64 architectures.) Though, as the use of 64-bit computers is increasing, Windows Vista users will end up benefiting most from this technology. Seems Vista 32 is not using patchguard yet, not sure about next SP. If above is true, it looks like we are OK for current stage. thx,eddie
Quoted 3 lines
I tested 32-bit Vista. We'll have to try 64-bit Vista and see if it gets upset.
btw, it may have not triggered because the hack didn't recognize Vista's memory map.
Signature · 8 lines
Any sufficiently difficult bug is indistinguishable from a feature. ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 4726ACFC.5090907-atKUWr5tajBWk0Htik3J/[email protected]
Quoted 45 lines · Avi Kivity
Quoted 44 lines · Anthony Liguori
Quoted 42 lines · Eddie
Quoted 9 lines · Anthony Liguori
Quoted 7 lines · Eddie
Quoted 7 lines
BTW, is it wise to enable this by default for all guests? Ignoring the
fact that we're modifying guest's memory without its knowledge, if a guest unmaps the VA mappings for the BIOS then all sorts of problems could occur.Quoted 10 lines
Quoted 6 lines
Good movement!
But, Vista won't work with patching. The memory guard in vista will make the system refuse to service. Maybe we need a option to check if it is vista.
FWIW, I successfully installed and booted Vista Enterprise Edition with the TPR optimization patch.
32 bits or 64 bits?
See
http://blogs.msdn.com/windowsvistasecurity/archive/2006/08/11/695993.aspx
It says:
There are many brand new security features in Windows Vista, but Kernel Patch Protection is actually not one of them. Kernel Patch Protection was first supported on x64 (AMD64 and Intel EMT64T) CPU architecture versions of Microsoft Windows including Microsoft Windows Server 2003 SP1 and Windows XP Microsoft Windows XP Professional x64 Edition. (Patch
protection is currently not supported on x86 or ia64 architectures.) Though, as the use of 64-bit computers is increasing, Windows Vista users will end up benefiting most from this technology. Seems Vista 32 is not using patchguard yet, not sure about next SP. If above is true, it looks like we are OK for current stage. thx,eddie
Quoted 7 lines
Quoted 3 lines
I tested 32-bit Vista. We'll have to try 64-bit Vista and see if it gets upset.
btw, it may have not triggered because the hack didn't recognize Vista's memory map.
It successfully patched instructions. Not as many as with XP but it was at least a few.
Regards,
Anthony Liguori
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
2007/10/25, Avi Kivity <avi-atKUWr5tajBWk0Htik3J/[email protected]>:
Quoted 11 lines
This is a request for testing of an experimental kvm feature that dramatically accelerates some Windows releases (when running with the ACPI HAL, and especially with guest SMP). The feature detects accesses by the guest to the Task Priority Register (TPR) and patches them at runtime to a kvm-friendly code snipped that is provided by the BIOS.
The upshot of all that is that
http://kvm.qumranet.com/kvmwiki/Windows_ACPI_Workaround is no longer required, and Windows SMP no longer runs like a dog; it's quite snappy from my very limited testing.
Quoted 8 lines
Please download the test release from
http://people.qumranet.com/avi/tpr-opt-1.tar.gz and give it a spin. Once it has received some exposure, I'll merge it into mainline.Credit for the original idea is due to Ben Serebrin.
--
error compilingcommittee.c: too many arguments to function
Hi Avi,
On an intel machine running 64 bits ubuntu with kernel 2.6.20, using the archive downloaded this morning at 10 o'clock GMT with the following md5sum:
6a793d217a067ede35b41684395446e9 ../sources/tpr-opt-1.tar.gz
I tried to install windows xp sp2 with the following command line:
qemu-system-x86_64 -smp 2 -m 1024 -hda /dev/vg1/winxp -cdrom /home/gl03/iso/xpsp2_install_cd.iso
First part of the install goes fine but after the reboot it BSOD with DRIVER_IRQL_NOT_LESS_OR_EQUAL (see snapshot included).
Latest lines of dmesg:
[83827.197075] Fault when IDT_Vectoring [83827.209680] Fault when IDT_Vectoring [83827.209733] Fault when IDT_Vectoring [83827.769998] Fault when IDT_Vectoring [83827.770056] Fault when IDT_Vectoring [83828.703089] Fault when IDT_Vectoring [83828.705896] Fault when IDT_Vectoring [83828.710527] Fault when IDT_Vectoring [83828.718736] Fault when IDT_Vectoring [83828.747251] Fault when IDT_Vectoring [83828.774862] Fault when IDT_Vectoring [83830.262231] Fault when IDT_Vectoring [83838.101244] Fault when IDT_Vectoring [83841.053300] Fault when IDT_Vectoring [83841.053359] Fault when IDT_Vectoring [83858.432652] Fault when IDT_Vectoring [83858.432693] Fault when IDT_Vectoring
Latest lines in the console:
check insn
rip: 807033de
insn: c7 05
instruction ok at 807033e4 tpr fffe0080 check bios
bios ok at 800e0000vapic_phys e2000
patching insn at 807033de
insn: c7 05
patched code: 807033de 68 41 00 00 00 e8 fc dc 9d ff check insn
rip: 80703b39
insn: 8b 0d
instruction ok at 80703b3f tpr fffe0080 check bios
bios ok at 800e0000vapic_phys e2000
patching insn at 80703b39
insn: 8b 0d
patched code: 80703b39 90 e8 71 d5 9d ff a3 80 00 fe check insn
rip: 80703b3f
insn: a3 80
instruction ok at 80703b44 tpr fffe0080 check bios
bios ok at 800e0000vapic_phys e2000
patching insn at 80703b3f
insn: a3 80
patched code: 80703b3f e8 99 d5 9d ff 9d 83 c4 08 c1 check insn
rip: 807039cc
insn: 89 0d
instruction ok at 807039d2 tpr fffe0080 check bios
bios ok at 800e0000vapic_phys e2000
patching insn at 807039cc
insn: 89 0d
patched code: 807039cc 51 e8 12 d7 9d ff a1 80 00 fe check insn
rip: 807039d2
insn: a1 80
instruction ok at 807039d7 tpr fffe0080 check bios
bios ok at 800e0000vapic_phys e2000
patching insn at 807039d2
insn: a1 80
patched code: 807039d2 e8 a9 d6 9d ff 33 c0 f3 90 c3
Regards,
Gildas
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
A message that is not in the archive (sent off-list or not yet received): b2ace7f20710260247s5b2a32cay5112a8931d57402f-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org
Quoted 23 lines · Gildas
2007/10/25, Avi Kivity <avi-atKUWr5tajBWk0Htik3J/[email protected]>:
Quoted 11 lines
This is a request for testing of an experimental kvm feature that dramatically accelerates some Windows releases (when running with the ACPI HAL, and especially with guest SMP). The feature detects accesses by the guest to the Task Priority Register (TPR) and patches them at runtime to a kvm-friendly code snipped that is provided by the BIOS.
The upshot of all that is that
http://kvm.qumranet.com/kvmwiki/Windows_ACPI_Workaround is no longer required, and Windows SMP no longer runs like a dog; it's quite snappy from my very limited testing.Quoted 9 lines
Please download the test release from
http://people.qumranet.com/avi/tpr-opt-1.tar.gz and give it a spin. Once it has received some exposure, I'll merge it into mainline.Credit for the original idea is due to Ben Serebrin.
--
error compilingcommittee.c: too many arguments to function
Quoted 7 lines
Hi Avi,
On an intel machine running 64 bits ubuntu with kernel 2.6.20, using the archive downloaded this morning at 10 o'clock GMT with the following md5sum:
Right, installs seem not to like this release, but running an existing VM seems to work fine (mostly).
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 4721BB45.20906-atKUWr5tajBWk0Htik3J/[email protected]
2007/10/26, Avi Kivity <avi-atKUWr5tajBWk0Htik3J/[email protected]>:
Quoted 26 lines
Quoted 25 lines · Gildas
2007/10/25, Avi Kivity <avi-atKUWr5tajBWk0Htik3J/[email protected]>:
Quoted 11 lines
This is a request for testing of an experimental kvm feature that dramatically accelerates some Windows releases (when running with the ACPI HAL, and especially with guest SMP). The feature detects accesses by the guest to the Task Priority Register (TPR) and patches them at runtime to a kvm-friendly code snipped that is provided by the BIOS.
The upshot of all that is that
http://kvm.qumranet.com/kvmwiki/Windows_ACPI_Workaround is no longer required, and Windows SMP no longer runs like a dog; it's quite snappy from my very limited testing.Quoted 9 lines
Please download the test release from
http://people.qumranet.com/avi/tpr-opt-1.tar.gz and give it a spin. Once it has received some exposure, I'll merge it into mainline.Credit for the original idea is due to Ben Serebrin.
--
error compilingcommittee.c: too many arguments to functionHi Avi,
Quoted 8 lines
Quoted 5 lines
On an intel machine running 64 bits ubuntu with kernel 2.6.20, using the archive downloaded this morning at 10 o'clock GMT with the following md5sum:
Right, installs seem not to like this release, but running an existing VM seems to work fine (mostly).
A windows 2000 sp4 installation crashes as well (this time with WORKER_THREAD_RETURNED_A_BAD_IRQL). This was reproduceable. I've restarted the installation with -no-kvm-irq and it seems to work fine so long (it didn't crash where it crashed previously).
I've restarted windows xp install and this time I had the following:
[86852.991254] ------------[ cut here ]------------ [86852.991260] kernel BUG at /home/gl03/sources/tpr-opt-1/kernel/mmu.c:308! [86852.991262] invalid opcode: 0000 [1] SMP [86852.991265] CPU 1 [86852.991267] Modules linked in: kvm_intel kvm binfmt_misc rfcomm
l2cap bluetooth ppdev i915 drm acpi_cpufreq cpufreq_ondemand cpufreq_powersave cpufreq_stats freq_table cpufreq_userspace cpufreq_conservative dev_acpi sony_acpi tc1100_wmi pcc_acpi sbs i2c_ec i2c_core battery ac video asus_acpi button backlight dock container ipv6 nls_utf8 ntfs sbp2 lp fuse joydev pcmcia snd_hda_intel snd_hda_codec snd_pcm_oss snd_mixer_oss snd_pcm snd_seq_dummy snd_seq_oss snd_seq_midi snd_rawmidi yenta_socket rsrc_nonstatic pcmcia_core iTCO_wdt iTCO_vendor_support af_packet snd_seq_midi_event snd_seq ipw3945 tifm_7xx1 parport_pc parport sdhci snd_timer snd_seq_device pcspkr tpm_infineon tpm tpm_bios serio_raw ieee80211 ieee80211_crypt mmc_core intel_agp psmouse tifm_core snd soundcore snd_page_alloc shpchp pci_hotplug tsdev evdev sr_mod cdrom generic ext3 jbd mbcache sg sd_mod ohci1394 ieee1394 ata_piix tg3 ahci ehci_hcd uhci_hcd usbcore ata_generic libata scsi_mod thermal processor fan dm_mod fbcon tileblit font bitblit softcursor vesafb cfbcopyarea cfbimgblt cfbfillrect capability commoncap
[86852.991337] Pid: 12492, comm: qemu-system-x86 Not tainted 2.6.20-16-generic #2 [86852.991340] RIP: 0010:[<ffffffff883aa877>] [<ffffffff883aa877>] :kvm:mmu_memory_cache_alloc+0x7/0x30 [86852.991354] RSP: 0018:ffff810024b039c8 EFLAGS: 00010246 [86852.991356] RAX: 0000000000000000 RBX: ffffc2000082a868 RCX: ffff810033c54080 [86852.991359] RDX: ffff810033c54088 RSI: 0000000000000028 RDI: ffff810025232820 [86852.991361] RBP: ffff810034771750 R08: 0000000000000000 R09: 0000000000000004 [86852.991363] R10: 00000000145cd963 R11: 0000000000000000 R12: ffff810025232440 [86852.991366] R13: 0000000000000000 R14: ffff810034771750 R15: ffff810025232440 [86852.991369] FS: 00002acc64f8a5b0(0000) GS:ffff81007dbd8ec0(0000) knlGS:0000000000000000 [86852.991372] CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b [86852.991374] CR2: 0000000001001ad8 CR3: 0000000008b86000 CR4: 00000000000026e0 [86852.991377] Process qemu-system-x86 (pid: 12492, threadinfo ffff810024b02000, task ffff8100713c9820) [86852.991379] Stack: ffffc2000082a868 ffffffff883aa95c 000000002a6c6043 0000000000000002 [86852.991384] 000000002a6c6000 ffffffff883ab2ab 0000000000000001 00000000000145cd [86852.991388] 0000000000000000 0000000000000000 00000000145cd000 00000000145cd000 [86852.991391] Call Trace: [86852.991402] [<ffffffff883aa95c>] :kvm:rmap_add+0xac/0x130 [86852.991414] [<ffffffff883ab2ab>] :kvm:paging32_set_pte_common+0x1fb/0x270 [86852.991434] [<ffffffff883ab369>] :kvm:paging32_set_pte+0x49/0x50 [86852.991448] [<ffffffff883ab8b3>] :kvm:kvm_mmu_pte_write+0x273/0x380 [86852.991472] [<ffffffff883a5685>] :kvm:emulator_write_emulated_onepage+0x85/0x100 [86852.991485] [<ffffffff883b022a>] :kvm:x86_emulate_insn+0x2b9a/0x4200 [86852.991497] [<ffffffff883c24f7>] :kvm_intel:vmcs_readl+0x17/0x20 [86852.991512] [<ffffffff883a5c74>] :kvm:emulate_instruction+0x174/0x2d0 [86852.991524] [<ffffffff883c501f>] :kvm_intel:handle_exception+0x18f/0x290 [86852.991532] [<ffffffff883b2739>] :kvm:apic_update_ppr+0x29/0x60 [86852.991546] [<ffffffff883a6fb1>] :kvm:kvm_vcpu_ioctl+0x411/0x1120 [86852.991553] [<ffffffff8028b6e8>] __activate_task+0x38/0x60 [86852.991560] [<ffffffff80248dac>] try_to_wake_up+0x3dc/0x400 [86852.991577] [<ffffffff8028b454>] __wake_up_common+0x44/0x80 [86852.991587] [<ffffffff8022f7a3>] __wake_up+0x43/0x70 [86852.991598] [<ffffffff802dd1e9>] core_sys_select+0x289/0x2e0 [86852.991620] [<ffffffff8029a058>] __dequeue_signal+0x168/0x1e0 [86852.991629] [<ffffffff80270a74>] do_gettimeofday+0x44/0x90 [86852.991637] [<ffffffff8025de20>] getnstimeofday+0x10/0x30 [86852.991648] [<ffffffff8024362f>] do_ioctl+0x2f/0xa0 [86852.991654] [<ffffffff80231592>] vfs_ioctl+0x2a2/0x2e0 [86852.991664] [<ffffffff8024e7dc>] sys_ioctl+0x6c/0xb0 [86852.991673] [<ffffffff8026111e>] system_call+0x7e/0x83 [86852.991688] [86852.991690] [86852.991690] Code: 0f 0b 0f 1f 80 00 00 00 00 eb fe 83 e8 01 48 89 f2 31 f6 89 [86852.991700] RIP [<ffffffff883aa877>] :kvm:mmu_memory_cache_alloc+0x7/0x30 [86852.991709] RSP <ffff810024b039c8> [86852.991711] <6>kvm: guest NX capability removed [86883.412300] kvm: guest NX capability removed
process is in defunct/zombi mode now and can't be killed.
Regards,
Gildas
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): b2ace7f20710260329p1f1a8459q68c8a2274a5731c3-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org
Quoted 10 lines · Gildas
Quoted 4 lines
Quoted 1 line
Right, installs seem not to like this release, but running an existing VM seems to work fine (mostly).
A windows 2000 sp4 installation crashes as well (this time with
WORKER_THREAD_RETURNED_A_BAD_IRQL). This was reproduceable. I've restarted the installation with -no-kvm-irq and it seems to work fine so long (it didn't crash where it crashed previously).
no-kvm-irq kills the optimization, though.
Quoted 4 lines
I've restarted windows xp install and this time I had the following:
[86852.991254] ------------[ cut here ]------------ [86852.991260] kernel BUG at /home/gl03/sources/tpr-opt-1/kernel/mmu.c:308!
Anthony posted a fix for this (which I don't understand yet).
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 4721C2B2.7000205-atKUWr5tajBWk0Htik3J/[email protected]
Remove hardware from host and add to guest?
Hi,
is it with kvm possible to remove a hardware (for example: a second PCI-E Graphiccard)- mybe on boottime like by xen.
And add dedicated this removed hardware (for example: a second PCI-E Graphiccard) to a guest system (for example: to improve the 3D-Graphic).
With best regards,
Michael
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
A message that is not in the archive (sent off-list or not yet received): 003F437218F04842B2A6976FA19368B18B85DB-EA/R+3GEQKtclD5KMHf1bFOnKfhBOm/[email protected]
Re: Remove hardware from host and add to guest?
Quoted 10 lines · Michael (ext)
Hi,
is it with kvm possible to remove a hardware (for example: a second PCI-E Graphiccard)- mybe on boottime like by xen.
And add dedicated this removed hardware (for example: a second PCI-E Graphiccard) to a guest system (for example: to improve the 3D-Graphic).With best regards,
Michael
We have code for regular pci and non-shared interrupts.
It is capable of doing nic pass through. We're in the process of merging them with
latest kvm code.
Regards,
Dor.
Quoted 11 lines
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
Test for the feature, RE: [RFT] kvm with Windows optimization
In reply to a message not in the archiveI didn't some tests against the release.
Basically, it works well, and no any new regressions has been introduced. The booting speed of windows is also much faster.
But I still failed to boot 64bit smp XP and 2k3.
And after run a series of tests, I found a defunct qemu process.
############################################################
[root@vt-dp8 ~]# ps aux|grep qemu
root 12645 0.0 0.0 60284 720 pts/7 S+ 22:30 0:00 grep qemu root 20656 0.3 0.0 0 0 ? Zl 20:37 0:20 [qemu-system-x86] <defunct>
############################################################
I checked the log, it happened when creating 64bit vista. If run the test case separately, the issue will not happen.
I also noticed some kernel message printed on console
###########################################################
Message from syslogd@vt-dp8 at Mon Oct 29 20:38:07 2007 ... vt-dp8 kernel: ------------[ cut here ]------------
Message from syslogd@vt-dp8 at Mon Oct 29 20:38:07 2007 ... vt-dp8 kernel: ------------[ cut here ]------------
Message from syslogd@vt-dp8 at Mon Oct 29 20:38:07 2007 ... vt-dp8 kernel: invalid opcode: 0000 [1] SMP
Message from syslogd@vt-dp8 at Mon Oct 29 20:38:07 2007 ... vt-dp8 kernel: invalid opcode: 0000 [1] SMP
############################################################
1. boot four 32-bit guest in parallel PASS
2. boot four 64-bit guest in parallel PASS
3. boot 4G 64-bit guest FAIL
4. boot 4G pae guest PASS
5. boot 32-bit linux and 32 bit windows guest in parallel PASS
6. boot 32-bit guest with 1500M memory PASS
7. boot 64-bit guest with 1500M memory PASS
8. boot 32-bit guest with 256M memory PASS
9. boot 64-bit guest with 256M memory PASS
10. boot two 32-bit windows xp in parallel PASS
11. boot four 32-bit different guest in para PASS
12. save/restore 64-bit linux guests FAIL
13. save/restore 32-bit linux guests FAIL
14. boot 32-bit SMP windows 2003 with ACPI enabled PASS
15. boot 32bit SMP Windows 2000 with ACPI enabled FAIL
16. boot 32-bit SMP Windows xp with ACPI enabled FAIL
17. boot 32-bit Windows 2000 without ACPI PASS
18. boot 64-bit Windows xp with ACPI enabled PASS
19. boot 32-bit Windows xp without ACPI PASS
20. boot 64-bit vista FAIL
21. kernel build in 32-bit linux guest OS PASS
22. kernel build in 64-bit linux guest OS PASS
23. LTP on SMP 32-bit linux guest OS PASS 24. LTP on SMP 64-bit linux guest OS PASS 25. boot 64-bit guests with ACPI enabled PASS
26. boot 32-bit x-server PASS
27. boot 64-bit SMP windows XP with ACPI enabled FAIL
28. boot 64-bit SMP windows 2003 with ACPI enabled FAIL
Quoted 28 lines
-----Original Message-----
From: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Avi Kivity
Sent: 2007年10月26日 1:24
To: kvm-devel
Subject: [kvm-devel] [RFT] kvm with Windows optimizationThis is a request for testing of an experimental kvm feature that dramatically accelerates some Windows releases (when running with the ACPI HAL, and especially with guest SMP). The feature detects accesses by the guest to the Task Priority Register (TPR) and patches them at runtime to a kvm-friendly code snipped that is provided by the BIOS.
The upshot of all that is that
http://kvm.qumranet.com/kvmwiki/Windows_ACPI_Workaround is no longer required, and Windows SMP no longer runs like a dog; it's quite snappy from my very limited testing.Please download the test release from
http://people.qumranet.com/avi/tpr-opt-1.tar.gz and give it a spin. Once it has received some exposure, I'll merge it into mainline.Credit for the original idea is due to Ben Serebrin.
--
error compilingcommittee.c: too many arguments to function
Quoted 9 lines
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
A message that is not in the archive (sent off-list or not yet received): 10EA09EFD8728347A513008B6B0DA77A02125FBD@pdsmsx411.ccr.corp.intel.com
A message that is not in the archive (sent off-list or not yet received): 10EA09EFD8728347A513008B6B0DA77A02125FBD-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org
Re: Test for the feature RE: [RFT] kvm with Windows optimization
Quoted 8 lines · Yunfeng
I didn't some tests against the release.
Basically, it works well, and no any new regressions has been introduced. The booting speed of windows is also much faster.But I still failed to boot 64bit smp XP and 2k3.
And after run a series of tests, I found a defunct qemu process.
############################################################
[root@vt-dp8 ~]# ps aux|grep qemu
Quoted 7 lines
root 12645 0.0 0.0 60284 720 pts/7 S+ 22:30 0:00 grep qemu root 20656 0.3 0.0 0 0 ? Zl 20:37 0:20 [qemu-system-x86] <defunct>############################################################
I checked the log, it happened when creating 64bit vista. If run the test case separately, the issue will not happen.
A bug was fixed in mainline for this issue, so it is not related to the optimization. I still need to make sure it doesn't harm 64-bit Windows.
I'll rebase and release a new version in a few days.
Signature · 1 line
Any sufficiently difficult bug is indistinguishable from a feature.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
A message that is not in the archive (sent off-list or not yet received): 4726ACB6.6070207-atKUWr5tajBWk0Htik3J/[email protected]
Re: Test for the feature RE: [RFT] kvm with Windows optimization
Quoted 19 lines · Avi Kivity
Quoted 8 lines · Yunfeng
I didn't some tests against the release.
Basically, it works well, and no any new regressions has been introduced. The booting speed of windows is also much faster.But I still failed to boot 64bit smp XP and 2k3.
And after run a series of tests, I found a defunct qemu process.
############################################################
[root@vt-dp8 ~]# ps aux|grep qemuQuoted 8 lines
root 12645 0.0 0.0 60284 720 pts/7 S+ 22:30 0:00 grep qemu root 20656 0.3 0.0 0 0 ? Zl 20:37 0:20 [qemu-system-x86] <defunct>############################################################
I checked the log, it happened when creating 64bit vista. If run the test case separately, the issue will not happen.
Quoted 3 lines
A bug was fixed in mainline for this issue, so it is not related to the optimization. I still need to make sure it doesn't harm 64-bit Windows.
Does 64-bit Windows ever access the TPR through MMIO? Wouldn't it just use cr8?
Regards,
Anthony Liguori
Quoted 12 lines
I'll rebase and release a new version in a few days.
------------------------------------------------------------------------
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
------------------------------------------------------------------------
Quoted 5 lines
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
A message that is not in the archive (sent off-list or not yet received): [email protected]
Re: Test for the feature RE: [RFT] kvm with Windows optimization
Quoted 22 lines · Anthony Liguori
Quoted 20 lines · Avi Kivity
Quoted 17 lines · Yunfeng
I didn't some tests against the release.
Basically, it works well, and no any new regressions has been introduced. The booting speed of windows is also much faster.But I still failed to boot 64bit smp XP and 2k3.
And after run a series of tests, I found a defunct qemu process.
############################################################
[root@vt-dp8 ~]# ps aux|grep qemuroot 12645 0.0 0.0 60284 720 pts/7 S+ 22:30 0:00 grep qemu root 20656 0.3 0.0 0 0 ? Zl 20:37 0:20 [qemu-system-x86] <defunct>############################################################
I checked the log, it happened when creating 64bit vista. If run the test case separately, the issue will not happen.
Quoted 8 lines
Quoted 4 lines
A bug was fixed in mainline for this issue, so it is not related to the optimization. I still need to make sure it doesn't harm 64-bit Windows.
Does 64-bit Windows ever access the TPR through MMIO? Wouldn't it just use cr8?
It always uses cr8. However my slash'n'burn did touch something cr8-related, so I can't be sure 64-bit Windows isn't affected.
Signature · 1 line
Any sufficiently difficult bug is indistinguishable from a feature.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel