Skip to contentSkip to conversation

kvm with Windows optimization

RFT Avi Kivity 10 participants 53 messages Oct 25, 2007 – Oct 30, 2007 40 messages not in the archive KVM

lore
Share & tools
lore

Avi Kivity

author
#0 lore raw

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]

#2 lore raw

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 compiling committee.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

author
#4 lore raw
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]

#6 lore raw

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 2

Quoted 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 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/

_______________________________________________
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

#8 lore raw
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/
author
#9 lore raw
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]

#11 lore raw

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 compiling committee.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

author
#13 lore raw
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]

#15 lore raw
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]

author
#17 lore raw
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]

#19 lore raw
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]

author
#21 lore raw
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]

#23 lore raw

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 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/

_______________________________________________
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

author
#25 lore raw
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/
#26 lore raw
In reply to a message not in the archive
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]

author
#28 lore raw
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_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?

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]

#30 lore raw
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_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?

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/

#31 lore raw
In reply to a message not in the archive
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]

#33 lore raw

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

author
#34 lore raw
In reply to a message not in the archive
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/
#35 lore raw
In reply to a message not in the archive

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:

http://pastebin.ca/749466

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_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/
_______________________________________________
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/
author
#36 lore raw
In reply to a message not in the archive
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
index 1fe209d..e08e749 100644
@@ -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]

#38 lore raw
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/
#39 lore raw
In reply to a message not in the archive
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
diff -ur a/qemu/qemu-kvm.h b/qemu/qemu-kvm.h
@@ -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]

author
#41 lore raw
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]

#43 lore raw
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]

author
#45 lore raw
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/
#46 lore raw
In reply to a message not in the archive
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]

author
#48 lore raw
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/
#49 lore raw
In reply to a message not in the archive
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

author
#51 lore raw
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]

#53 lore raw
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

author
#55 lore raw
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 0xf00000000 in 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/
#56 lore raw
In reply to a message not in the archive
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]

author
#58 lore raw
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]

#60 lore raw
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]

author
#62 lore raw
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]

#64 lore raw
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/

#65 lore raw
In reply to a message not in the archive
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]

#67 lore raw
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

#69 lore raw
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
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.

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]

author
#71 lore raw
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
x

It 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]

#73 lore raw
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.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

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/

#74 lore raw
In reply to a message not in the archive

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 compiling committee.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 800e0000
vapic_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 800e0000
vapic_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 800e0000
vapic_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 800e0000
vapic_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 800e0000
vapic_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

author
#76 lore raw
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 compiling committee.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]

#78 lore raw

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 compiling committee.c: too many arguments to function

Hi 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

author
#80 lore raw
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]

#82 lore raw

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]

#84 lore raw

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/

#85 lore raw

Test for the feature, RE: [RFT] kvm with Windows optimization

In reply to a message not in the archive

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

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 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.

--
error compiling committee.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

author
#88 lore raw

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]

#90 lore raw

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 qemu

Quoted 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]

author
#92 lore raw

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 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.

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