Re: [kvm-devel] kernel BUG at drivers/virtio/virtio_ring.c:218!
On Sunday 06 April 2008 00:53:39 Balaji Rao wrote: On Friday 04 April 2008 01:46:21 pm Balaji Rao wrote: Hi Rusty, I hit a bug in virtio_ring.c:218 when I was stressing virtio_net using kvm with -smp 4. static void vring_disable_cb(struct virtqueue *_vq) { struct vring_virtqueue *vq = to_vvq(_vq); START_USE(vq); --BUG_ON(vq-vring.avail-flags VRING_AVAIL_F_NO_INTERRUPT); vq-vring.avail-flags |= VRING_AVAIL_F_NO_INTERRUPT; END_USE(vq); } Going through the source code, I felt that this BUG_ON is not required as any CPU could race and call disable_cb when one cpu still believes that its enabled. To validate my understanding, I commented out the BUG_ON and everything worked perfectly well. I also get a lot of Unlikely: restart svq race on my console. Under high load conditions, a race could occur very often and I'm not sure if that signals a buggy situation. We could printk_ratelimit if at all we need to retain it. If you agree, I'll send a patch to this. Christian Borntraeger CCed. Hi Balaji, Interesting case can you put a '#define DEBUG' at the top of drivers/virtio/virtio_ring.c and re-run? The reason we don't simply remove that check is that interrupt bugs are nasty to track down, usually leading to performance problems rather than outright breakage. Thanks! Rusty. - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] Need info on guest swapping and other things in KVM
Arjun wrote: Hi Folks, A fellow student and I wish to do run some experiments with KVM. Specifically, we would like to examine KVM's guest paging/swapping mechanism, make some changes and run some tests. After a brief search through the docs and code, we would greatly appreciate help with the following: 1) Guest Paging : What is the selection mechanism used by KVM for evicting a guest's page ? With mmu notifiers (not yet merged), pages are picked by the normal Linux LRU mechanism. What if there are any conflicts between host and guest as to which page to evict ? I don't understand this question. 2) Where can we find the code for the above (guest paging). It's the normal Linux swapping code. 3) Are the KVM guests scheduled by the (hosts) standard linux scheduler ? It appears that this is the case but I want to be sure. Yes. 4) Have there been any changes to the host's page/buffer cache ? Are there any changes planned ? Yes, mmu notifiers. This doesn't change pagecache, but rather allows kvm's shadow mmu to be synchronized to the main Linux mmu, which is what allows page eviction and page aging to work. -- error compiling committee.c: too many arguments to function - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] kernel BUG at drivers/virtio/virtio_ring.c:218!
On Sunday 06 April 2008 12:56:33 pm Rusty Russell wrote: On Sunday 06 April 2008 00:53:39 Balaji Rao wrote: On Friday 04 April 2008 01:46:21 pm Balaji Rao wrote: Hi Rusty, I hit a bug in virtio_ring.c:218 when I was stressing virtio_net using kvm with -smp 4. static void vring_disable_cb(struct virtqueue *_vq) { struct vring_virtqueue *vq = to_vvq(_vq); START_USE(vq); --BUG_ON(vq-vring.avail-flags VRING_AVAIL_F_NO_INTERRUPT); vq-vring.avail-flags |= VRING_AVAIL_F_NO_INTERRUPT; END_USE(vq); } Going through the source code, I felt that this BUG_ON is not required as any CPU could race and call disable_cb when one cpu still believes that its enabled. To validate my understanding, I commented out the BUG_ON and everything worked perfectly well. I also get a lot of Unlikely: restart svq race on my console. Under high load conditions, a race could occur very often and I'm not sure if that signals a buggy situation. We could printk_ratelimit if at all we need to retain it. If you agree, I'll send a patch to this. Christian Borntraeger CCed. Hi Balaji, Interesting case can you put a '#define DEBUG' at the top of drivers/virtio/virtio_ring.c and re-run? The reason we don't simply remove that check is that interrupt bugs are nasty to track down, usually leading to performance problems rather than outright breakage. Hi Rusty, Here's the output with #define DEBUG. As soon as I start netperf on the remote machine, the guest panics. sh-3.2# [ 40.053295] Unlikely: restart svq race [ 39.999687] Unlikely: restart svq race [ 40.000687] [ cut here ] [ 40.001885] kernel BUG at drivers/virtio/virtio_ring.c:219! [ 40.003401] invalid opcode: [#1] SMP DEBUG_PAGEALLOC [ 40.003670] Modules linked in: [ 40.003670] [ 40.003670] Pid: 1553, comm: netserver Not tainted (2.6.25-rc7 #19) [ 40.003670] EIP: 0060:[c03a4c22] EFLAGS: 00010202 CPU: 3 [ 40.003670] EIP is at vring_disable_cb+0x2c/0x4e [ 40.003670] EAX: f7570430 EBX: c0616a64 ECX: f74e8800 EDX: 0001 [ 40.003670] ESI: f6c45000 EDI: f75d8c80 EBP: f6c879e0 ESP: f6c879e0 [ 40.003670] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 [ 40.003670] Process netserver (pid: 1553, ti=f6c86000 task=f6cf task.ti=f6c86000) [ 40.003670] Stack: f6c87b94 c0319cde c059fe55 f75d8840 0002 c16da8a2 0020 000a [ 40.003670] c16fb8a2 0b8e 0042 [ 40.003670] [ 40.003670] Call Trace: [ 40.003670] [c0319cde] ? start_xmit+0x1c6/0x209 [ 40.003670] [c0434104] ? ipt_route_hook+0x18/0x1d [ 40.003670] [c03e8a7f] ? dev_hard_start_xmit+0x204/0x272 [ 40.003670] [c04086b2] ? ip_finish_output+0x0/0x201 [ 40.003670] [c03f77cb] ? __qdisc_run+0x78/0x15a [ 40.003670] [c03ead5f] ? dev_queue_xmit+0x17e/0x28b [ 40.003670] [c040887b] ? ip_finish_output+0x1c9/0x201 [ 40.003670] [c0408b50] ? ip_output+0x7e/0x83 [ 40.003670] [c04083eb] ? ip_local_out+0x18/0x1b [ 40.003670] [c0408e5d] ? ip_queue_xmit+0x278/0x2b9 [ 40.003670] [c01729d6] ? check_object+0x139/0x18f [ 40.003670] [c017351b] ? __slab_alloc+0x3d7/0x467 [ 40.003670] [c041af67] ? tcp_v4_send_check+0x7d/0xb7 [ 40.003670] [c0416d9d] ? tcp_transmit_skb+0x618/0x64b [ 40.003670] [c01741ed] ? __kmalloc_track_caller+0x7d/0xcb [ 40.003670] [c0416e69] ? tcp_send_ack+0x25/0xb6 [ 40.003670] [c03e43db] ? __alloc_skb+0x4f/0xfd [ 40.003670] [c0416ef2] ? tcp_send_ack+0xae/0xb6 [ 40.003670] [c0414a11] ? __tcp_ack_snd_check+0x5e/0x73 [ 40.003670] [c0415f1b] ? tcp_rcv_established+0x5f1/0x652 [ 40.003670] [c0478e85] ? _spin_lock_bh+0xb/0x22 [ 40.003670] [c041a973] ? tcp_v4_do_rcv+0x28/0x18d [ 40.003670] [c040d2b6] ? tcp_prequeue_process+0x52/0x66 [ 40.003670] [c040f236] ? tcp_recvmsg+0x32a/0x6af [ 40.003670] [c03e0667] ? sock_common_recvmsg+0x31/0x4a [ 40.003670] [c03df11d] ? sock_recvmsg+0xe9/0x105 [ 40.003670] [c01181c0] ? kvm_mmu_write+0x2f/0x31 [ 40.003670] [c01370d6] ? autoremove_wake_function+0x0/0x33 [ 40.003670] [c011833d] ? kvm_set_pte_at+0x43/0x4b [ 40.003670] [c015481f] ? unlock_page+0x25/0x28 [ 40.003670] [c015fe85] ? __do_fault+0x3fa/0x436 [ 40.003670] [c0478e20] ? _spin_unlock_bh+0xd/0xf [ 40.003670] [c03dfe09] ? sys_recvfrom+0x7b/0xbd [ 40.003670] [c01393f2] ? hrtimer_forward+0xd7/0xed [ 40.003670] [c0123848] ? scheduler_tick+0x1ac/0x26d [ 40.003670] [c013b414] ? getnstimeofday+0x2f/0xb4 [ 40.003670] [c03dfe63] ? sys_recv+0x18/0x1a [ 40.003670] [c03e01d1] ? sys_socketcall+0x10a/0x186 [ 40.003670] [c012b547] ? irq_exit+0x53/0x6b [ 40.003670] [c0107b1e] ? syscall_call+0x7/0xb [ 40.003670] [c047] ? serial8250_remove+0x31/0x35 [ 40.003670] === [ 40.003670]
Re: [kvm-devel] [patch 4/4] QEMU/KVM: dont read any bits from userspace APIC emulation if its done in-kernel
Marcelo Tosatti wrote: Fixes loadvm/savem on SMP. Signed-off-by: Marcelo Tosatti [EMAIL PROTECTED] Index: kvm-userspace.io/qemu/hw/apic.c === --- kvm-userspace.io.orig/qemu/hw/apic.c +++ kvm-userspace.io/qemu/hw/apic.c @@ -248,8 +248,11 @@ void cpu_set_apic_base(CPUState *env, ui #ifdef DEBUG_APIC printf(cpu_set_apic_base: %016 PRIx64 \n, val); #endif -s-apicbase = (val 0xf000) | -(s-apicbase (MSR_IA32_APICBASE_BSP | MSR_IA32_APICBASE_ENABLE)); +if (kvm_enabled() qemu_kvm_irqchip_in_kernel()) +s-apicbase = val; +else +s-apicbase = (val 0xf000) | +(s-apicbase (MSR_IA32_APICBASE_BSP | MSR_IA32_APICBASE_ENABLE)); /* if disabled, cannot be enabled again */ if (!(val MSR_IA32_APICBASE_ENABLE)) { s-apicbase = ~MSR_IA32_APICBASE_ENABLE; Can you explain how the existing code fails? -- error compiling committee.c: too many arguments to function - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [Patch][00/18] kvm-ia64 for kernel V10
Zhang, Xiantao wrote: Compared with V9, just fixed indentation issues in patch 12. I put it the patchset in git://git.kernel.org/pub/scm/linux/kernel/git/xiantao/kvm-ia64.git kvm-ia64-mc10. Please help to review. Specially, the first two patches (TR Management patch and smp_call_function_mask patch) needs Tony's review and Ack. Thanks:-) Rebased and merged the latest version into kvm.git. Thanks. -- error compiling committee.c: too many arguments to function - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [patch 1/4] QEMU/KVM: only use KVM apic registers if vm is running
Marcelo Tosatti wrote: In the -incoming case the apic regs are not initialized and therefore bogus. Signed-off-by: Marcelo Tosatti [EMAIL PROTECTED] Index: kvm-userspace.io/qemu/qemu-kvm-x86.c === --- kvm-userspace.io.orig/qemu/qemu-kvm-x86.c +++ kvm-userspace.io/qemu/qemu-kvm-x86.c @@ -27,6 +27,8 @@ static int kvm_has_msr_star; static int lm_capable_kernel; +extern int vm_running; + int kvm_arch_qemu_create_context(void) { int i; @@ -248,7 +250,7 @@ void kvm_arch_load_regs(CPUState *env) sregs.cr3 = env-cr[3]; sregs.cr4 = env-cr[4]; -if (kvm_irqchip_in_kernel(kvm_context)) { +if (kvm_irqchip_in_kernel(kvm_context) vm_running) { sregs.cr8 = kvm_get_cr8(kvm_context, env-cpu_index); sregs.apic_base = kvm_get_apic_base(kvm_context, env-cpu_index); } else { Fishy. What if the vm is stopped using the monitor? -- error compiling committee.c: too many arguments to function - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [patch 3/4] QEMU/KVM: ignore SIG_IPI signals in userspace
Marcelo Tosatti wrote: Otherwise a signal can be received in userspace and a vcpu goes back to the kernel while it should stay still. Signed-off-by: Marcelo Tosatti [EMAIL PROTECTED] Index: kvm-userspace.io/qemu/qemu-kvm.c === --- kvm-userspace.io.orig/qemu/qemu-kvm.c +++ kvm-userspace.io/qemu/qemu-kvm.c @@ -350,7 +350,6 @@ static void *ap_main_loop(void *_env) vcpu-env = env; vcpu-env-thread_id = kvm_get_thread_id(); sigfillset(signals); -sigdelset(signals, SIG_IPI); sigprocmask(SIG_BLOCK, signals, NULL); kvm_create_vcpu(kvm_context, env-cpu_index); kvm_qemu_init_env(env); Does this work with -no-kvm-irqchip? I think we need to fix the kernel to handle random signals. Otherwise even attaching a debugger can change guest behavior (I think). -- error compiling committee.c: too many arguments to function - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [PATCH] Don't assume struct page for x86 MMU
Anthony Liguori wrote: This patch introduces a gfn_to_pfn() function and corresponding functions like kvm_release_pfn_dirty(). Using these new functions, we can modify the x86 MMU to no longer assume that it can always get a struct page for any given gfn. We don't want to eliminate gfn_to_page() entirely because a number of places assume they can do gfn_to_page() and then kmap() the results. When we support IO memory, gfn_to_page() will fail for IO pages although gfn_to_pfn() will succeed. This does not implement support for avoiding reference counting for reserved RAM or for IO memory. However, it should make those things pretty straight forward. Since we're only introducing new common symbols, I don't think it will break the non-x86 architectures but I haven't tested those. I've tested Intel, AMD, NPT, and hugetlbfs with Windows and Linux guests. Applied, thanks. @ -1089,7 +1086,7 @@ static void mmu_set_spte(struct kvm_vcpu *vcpu, u64 *shadow_pte, if (largepage) spte |= PT_PAGE_SIZE_MASK; - spte |= page_to_phys(page); + spte |= (pfn PAGE_SHIFT); This overflows on i386 with =4GB RAM. I fixed it before committing. -- error compiling committee.c: too many arguments to function - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [ANN] Bochs bios ported to gcc
Kevin O'Connor wrote: I have been working on a port of bochs bios to gcc. This port is nearly complete. The new code does not rely on bcc or dev86. Instead, it uses standard gcc and gas. It should compile on any recent Linux distribution. I'm sending this email because I understand kvm has a copy of bochs bios in its repository. While moving away from the horror that is bcc is a blessing, the way to really benefit from it is to have this code replace the original bochs bios. This way updates to the bochs bios are not lost for anyone using the new code. Have you proposed replacing the bios to the bochs developers? What was the reaction? -- error compiling committee.c: too many arguments to function - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [ANN] Bochs bios ported to gcc
On Sun, Apr 06, 2008 at 03:05:11PM +0300, Avi Kivity wrote: Kevin O'Connor wrote: I have been working on a port of bochs bios to gcc. While moving away from the horror that is bcc is a blessing, the way to really benefit from it is to have this code replace the original bochs bios. This way updates to the bochs bios are not lost for anyone using the new code. I agree. I've been interacting with the bochs developers since I started (about a month and half ago). Have you proposed replacing the bios to the bochs developers? What was the reaction? The reaction was pretty quiet. The bochs project is not nearly as active as kvm, and the bios is just one small part of that project. Now that the new code can actually launch a wide variety of payloads, I'm hoping there will be more interest. BTW, if anyone is interested in testing, please grab the 0.2.1 version - the v0.2.0 version had a nasty bug on disk writes to large disks (assuming one uses an OS that writes to disk via the bios). -Kevin - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
[kvm-devel] KVM developer forum 2008 - registration is now open
The registration site for KVM developer forum 2008 is now open (http://kforum.qumranet.com/KVMForum/register_now.php ) The participation fee is US$ 695 for early bird subscribers up to May 1st, 2008. After May 1st 2008, the participation fee is US$ 790. Developers whose registration fee is not paid by an employer or organization can attend for free. Please contact the event team if you are interested in registering as an unaffiliated attendee. To get more details and register please go to: http://kforum.qumranet.com/KVMForum/about_kvmforum.php See you all there. Rami - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
[kvm-devel] Great deals for luxury items
I want to pamper myself today, but I do not want to burn a hole in my pocket, so I tried this. http://www.fleckoatin.com/ - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [Qemu-devel] [PATCH 2/6] PCI DMA API (v2)
On 06/04/2008, Anthony Liguori [EMAIL PROTECTED] wrote: Blue Swirl wrote: To support Sparc IOMMU and DMA controller I need a way to call a series of different translation functions depending on the bus where we are. For the byte swapping case the memcpy functions must be dynamic as well. Does DMA really byte-swap? I know PCI controllers byte swap within the configuration space but I didn't think they byte-swapped DMA transfers. I'm not even sure how that would work. As a note, the DMA controllers in the ARM system-on-chip's can byte-swap, do 90deg rotation of 2D arrays, transparency (probably intened for image blitting, but still available on any kind of transfers), etc., and most importantly issue interrupts on reaching different points of a transfer. It is not worth worrying about them in this API. I have been for some time wanting to make a separate api called soc_dma whose task would be using simply memcpy (or zero-copy) in the most basic case (interrupts off, no transparency, same-endianness endpoints), as these properties are common for DMA on the TI OMAPs, the Intel PXAs and the Samsung S3Cs (which otherwise have little in common). Cheers -- Please do not print this email unless absolutely necessary. Spread environmental awareness. - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [Qemu-devel] [PATCH 2/6] PCI DMA API (v2)
andrzej zaborowski wrote: On 06/04/2008, Anthony Liguori [EMAIL PROTECTED] wrote: Blue Swirl wrote: To support Sparc IOMMU and DMA controller I need a way to call a series of different translation functions depending on the bus where we are. For the byte swapping case the memcpy functions must be dynamic as well. Does DMA really byte-swap? I know PCI controllers byte swap within the configuration space but I didn't think they byte-swapped DMA transfers. I'm not even sure how that would work. As a note, the DMA controllers in the ARM system-on-chip's can byte-swap, do 90deg rotation of 2D arrays, transparency (probably intened for image blitting, but still available on any kind of transfers), etc., and most importantly issue interrupts on reaching different points of a transfer. It is not worth worrying about them in this API. I have been for some time wanting to make a separate api called soc_dma whose task would be using simply memcpy (or zero-copy) in the most basic case (interrupts off, no transparency, same-endianness endpoints), as these properties are common for DMA on the TI OMAPs, the Intel PXAs and the Samsung S3Cs (which otherwise have little in common). Wow. So this attempt clearly doesn't encompass all of these features, but I don't think anything about it makes it more difficult to implement an API capable of doing these things. It introduces an IOVector which is an abstraction of a DMA request, and the devices for the most part access the vector with copying functions. We'll have to have a dual mode. This is why I had a PhysIOVector and IOVector in my original patch. Passing physical addresses to the block/net backends insist on a dual mode. One where it can map those addresses directly and another where it perform IO to a temporary location and then calls to some other code to copy the data. When you have the PCI device generate an IOVector containing virtual addresses, the PCI device itself can decide whether to pass through direct mappings of the guests memory or a temporary buffer. It can then perform whatever transformations it needs on unmapping. So I think we can either ignore these transformations for now and go with the current API or go back to the former API which would allow transformations but that Paul wasn't a big fan of. Regards, Anthony Liguori Cheers - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] problem using kvm-guest-drivers
Hi Dennis, thanks a lot for Your reply, the problem really was that I didn't know that virtio_pci module is also needed. I'm not using LVM in guests, but it's good to know recent version would be needed for such case. BR nik. On Sun, 6 Apr 2008, Dennis Jacobfeuerborn wrote: Nikola Ciprich wrote: Hello, I'm trying to get virtio_blk working, but I can't figure what am I doing wrong... You'll probably have to build a new initrd image in the guest adding the following options to the mkinitrd call: --with=virtio_pci --with=virtio_blk This makes sure that the guest will find the virtual devices when booting. If you use LVM volume groups in the guest then you also need to make sure that you use a *very* recent version of the lvm2 package (not older than a month) because older versions don't scan the virtual block devices for volume groups due to a name change. Regards, Dennis - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
[kvm-devel] [ANNOUNCE] kvm-65 release
The big item (in more ways than one) for this release is the addition of s390 support. As it is not actually provided in the tarball, you will need to use git to fetch it. You will also need a mainframe. On x86, the most interesting change is the separation of timer and I/O completion handling into a separate thread (these used to be serviced by the same thread that executed vcpu 0). The change should result in improved responsiveness and better smp performance. Changes from kvm-64: - fix hotplug build for non-x86 (Xiantao Zhang) - ignore reads from the apic EOI register (Glauber Costa) - fixes Linux 2.6.25-rclate bootup problems - compile fixes (Carlo Marcelo Arenas Belon) - fix ftruncate() on hugetlbfs use on older Linux hosts (Marcelo Tosatti) - endianness fix virtio-block (Anthony Liguori) - fixes virtio-blk on ppc - refactor in-kernel PIT to be a separate device (Anthony Liguori) - separate thread for I/O completions and timers (Marcelo Tosatti) - fix vmmouse smp (Anthony Liguori) - fix loading uninitialized variable into apic registers (Marcelo Tosatti) - fixes apic being disabled on smp Linux guests running X - disable kvm clock on Voyager or SGI Visual WS (Randy Dunlap) - s390 support (Carsten Otte, Martin Schwidefsky, Christian Borntraeger, Heiko Carstens) - fix large pages (Marcelo Tosatti) - speedup msr processing on Intel via msr bitmap (Sheng Yang) - add slab shrinker support (Izik Eidus) - reduces nonswappable footprint under memory pressure - code cleanup (Joerg Roedel) - vm refcounting (Izik Eidus) - only mark a page as accessed if it was really accessed by the guest - drop slots_lock while in guest mode - fixes long latencies with iothread - prepopulate guest pages only after write-protecting them (Marcelo Tosatti) - fixes smp race leading to guest spinning Notes: If you use the modules bundled with kvm-65, you can use any version of Linux from 2.6.17 upwards. If you use the modules bundled with Linux 2.6.20, you need to use kvm-12. If you use the modules bundled with Linux 2.6.21, you need to use kvm-17. Modules from Linux 2.6.22 and up will work with any kvm version from kvm-22. Some features may only be available in newer releases. For best performance, use Linux 2.6.23-rc2 or later as the host. http://kvm.qumranet.com - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
[kvm-devel] performance tuning, problem with paravirtualized clock
Hi, I spent some time trying to tune performance of KVM guest using kernel compilation as a kind of benchmark (I'm using virtual machines for compiling a lot, so it's good benchmark for me in general) Host machine: 2x quad core XEON E5420 @ 2.50GHz, 4GB RAM, 2.6.24 + kvm-64 guest configuration: all 8 cores available, 2GB RAM, 2.6.24 or latest GIT + kvm-64 some results: - compilation in KVM guest is roughly 2x slower than on bare metal. - trying various block device backends (ide, scsi, virtio_blk) didn't really matter much for my case - enabling CONFIG_KVM_GUEST under latest GIT with kvm-64 patch applied decreased compile time by about 10%, which is nice! - enabling CONFIG_KVM_CLOCK made guest unstable, often unable to finish booting at all, disabling acpi made it a bit better, but still quite unstable (cpu0 lock-ups, etc) Is there currently anything more I could do to improve performance? I'm wandering what is slowing compilation, if I compare some CPU intensive application (ie bzip2), it seems to run in nearly native speed, but kernel compilation is much slower even if run from ramdisk, maybe it could be improved further by tunning scheduler etc? anyways keep up the good work! cheers! nik - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] performance tuning, problem with paravirtualized clock
On Sun, 2008-04-06 at 21:56 +0200, Nikola Ciprich wrote: Hi, I spent some time trying to tune performance of KVM guest using kernel compilation as a kind of benchmark (I'm using virtual machines for compiling a lot, so it's good benchmark for me in general) Host machine: 2x quad core XEON E5420 @ 2.50GHz, 4GB RAM, 2.6.24 + kvm-64 guest configuration: all 8 cores available, 2GB RAM, 2.6.24 or latest GIT + kvm-64 some results: - compilation in KVM guest is roughly 2x slower than on bare metal. - trying various block device backends (ide, scsi, virtio_blk) didn't really matter much for my case - enabling CONFIG_KVM_GUEST under latest GIT with kvm-64 patch applied decreased compile time by about 10%, which is nice! - enabling CONFIG_KVM_CLOCK made guest unstable, often unable to finish booting at all, disabling acpi made it a bit better, but still quite unstable (cpu0 lock-ups, etc) Is there currently anything more I could do to improve performance? I'm wandering what is slowing compilation, if I compare some CPU intensive application (ie bzip2), it seems to run in nearly native speed, but kernel compilation is much slower even if run from ramdisk, maybe it could be improved further by tunning scheduler etc? Can you try a non smp guest and check the results? Also if you do try smp guest, can you pin each thread to a different physical core and re-test? Regards, Dor anyways keep up the good work! cheers! nik - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] performance tuning, problem with paravirtualized clock
Nikola Ciprich wrote: Hi, I spent some time trying to tune performance of KVM guest using kernel compilation as a kind of benchmark (I'm using virtual machines for compiling a lot, so it's good benchmark for me in general) Host machine: 2x quad core XEON E5420 @ 2.50GHz, 4GB RAM, 2.6.24 + kvm-64 guest configuration: all 8 cores available, 2GB RAM, 2.6.24 or latest GIT + kvm-64 some results: - compilation in KVM guest is roughly 2x slower than on bare metal. - trying various block device backends (ide, scsi, virtio_blk) didn't really matter much for my case - enabling CONFIG_KVM_GUEST under latest GIT with kvm-64 patch applied decreased compile time by about 10%, which is nice! - enabling CONFIG_KVM_CLOCK made guest unstable, often unable to finish booting at all, disabling acpi made it a bit better, but still quite unstable (cpu0 lock-ups, etc) Is there currently anything more I could do to improve performance? I'm wandering what is slowing compilation, if I compare some CPU intensive application (ie bzip2), it seems to run in nearly native speed, but kernel compilation is much slower even if run from ramdisk, maybe it could be improved further by tunning scheduler etc? I would think you should get about 70% of native with what you've done about. I've not seen instabilities with CONFIG_KVM_CLOCK myself. Setting up a hugetlbfs mount and using -mem-path may give you a bit of a bump too but I'd be surprised if it was more than 5% The next biggest win you're going to see is using NPT (available in the recent AMD Barcelona/Phenom processors). NPT + hugetblfs should get you pretty close to native (I'd reckon 95-98%). On the Intel side of things, you'll have to wait until the Nehalem which will support EPT (which is Intel's version of NPT). Can you be specific about your guest configurations? Are you using -smp 8? Regards, Anthony Liguori anyways keep up the good work! cheers! nik - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] performance tuning, problem with paravirtualized clock
Hi Anthony! Anthony Liguori wrote: I would think you should get about 70% of native with what you've done about. I've not seen instabilities with CONFIG_KVM_CLOCK myself. Setting up a hugetlbfs mount and using -mem-path may give you a bit of a bump too but I'd be surprised if it was more than 5% I've tried it now, and starting kvm with -mem-path pointing to hugetlbfs mounted dir immediately fails and I see following message in dmesg of host: VM: killing process qemu-system-x86 pointing to tmpfs mounted dir seems to work, I'll measure performance gain... The next biggest win you're going to see is using NPT (available in the recent AMD Barcelona/Phenom processors). NPT + hugetblfs should get you pretty close to native (I'd reckon 95-98%). Yup, it seemed to me that kvm performes WAY better on my phenom based home desktop! I'll check that later too On the Intel side of things, you'll have to wait until the Nehalem which will support EPT (which is Intel's version of NPT). Can you be specific about your guest configurations? Are you using -smp 8? yes, I'm using -smp 8 Regards, Anthony Liguori - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] performance tuning, problem with paravirtualized clock
Nikola Ciprich wrote: Hi Anthony! Anthony Liguori wrote: I would think you should get about 70% of native with what you've done about. I've not seen instabilities with CONFIG_KVM_CLOCK myself. Setting up a hugetlbfs mount and using -mem-path may give you a bit of a bump too but I'd be surprised if it was more than 5% I've tried it now, and starting kvm with -mem-path pointing to hugetlbfs mounted dir immediately fails and I see following message in dmesg of host: VM: killing process qemu-system-x86 pointing to tmpfs mounted dir seems to work, I'll measure performance gain... You won't see a gain with tmpfs. Make sure you reserve huge pages first. For a 1GB guest, you'll need something like: echo 540 /proc/sys/vm/nr_hugepages When you create a VM, you need a bit more memory than 1GB for per-guest overhead. That's why I reserve 540 instead of 512. You can probably get away with 530 really. Check that it succeeded by cat'ing /proc/meminfo. The next biggest win you're going to see is using NPT (available in the recent AMD Barcelona/Phenom processors). NPT + hugetblfs should get you pretty close to native (I'd reckon 95-98%). Yup, it seemed to me that kvm performes WAY better on my phenom based home desktop! I'll check that later too Definitely. A parallel compile is one of the best case scenarios for NPT so you should see the most dramatic improvement there. On the Intel side of things, you'll have to wait until the Nehalem which will support EPT (which is Intel's version of NPT). Can you be specific about your guest configurations? Are you using -smp 8? yes, I'm using -smp 8 It's not quite apples to apples then since you're sharing CPUs with the host. Typically, if I'm benchmarking an 8-way system with 2GB of RAM, I'll create a 4-way guest with 1GB of RAM and then to generate native numbers, reboot the host with maxcpus=4 mem=1G. Regards, Anthony Liguori Regards, Anthony Liguori - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] performance tuning, problem with paravirtualized clock
Anthony Liguori wrote: You won't see a gain with tmpfs. Make sure you reserve huge pages first. For a 1GB guest, you'll need something like: echo 540 /proc/sys/vm/nr_hugepages When you create a VM, you need a bit more memory than 1GB for per-guest overhead. That's why I reserve 540 instead of 512. You can probably get away with 530 really. Check that it succeeded by cat'ing /proc/meminfo. Well, I tried various values now, and booting fails immediately: Decompressing Linux... invalid compressed format (err=1) -- System halted weird... anyways I'll also give fresh kvm-65 a try now :) - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] performance tuning, problem with paravirtualized clock
Nikola Ciprich wrote: Anthony Liguori wrote: You won't see a gain with tmpfs. Make sure you reserve huge pages first. For a 1GB guest, you'll need something like: echo 540 /proc/sys/vm/nr_hugepages When you create a VM, you need a bit more memory than 1GB for per-guest overhead. That's why I reserve 540 instead of 512. You can probably get away with 530 really. Check that it succeeded by cat'ing /proc/meminfo. Well, I tried various values now, and booting fails immediately: Decompressing Linux... It's very likely that you won't be able to allocate enough pages to run a guest if your system has been running sufficient long and memory is highly fragmented. If you cat /proc/meminfo and HugePages_Free is much less than 540, you're not going to be able to create a 1GB guest. Unfortunately, you won't get a failure until the guest tries to use memory. The only solution is to reboot and reserve huge pages early before they get fragmented. Regards, Anthony Liguori invalid compressed format (err=1) -- System halted weird... anyways I'll also give fresh kvm-65 a try now :) - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
[kvm-devel] [PATCH] qemu: avoid returning uninitialized value in apic_mem_readl
complement 64173d009c1f4d163c425b14aa650df5b982428a to avoid : kvm-65/qemu/hw/apic.c: In function `apic_mem_readl': kvm-65/qemu/hw/apic.c:592: warning: 'val' might be used uninitialized in this function Signed-off-by: Carlo Marcelo Arenas Belon [EMAIL PROTECTED] --- qemu/hw/apic.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/qemu/hw/apic.c b/qemu/hw/apic.c index 4102493..b69ad75 100644 --- a/qemu/hw/apic.c +++ b/qemu/hw/apic.c @@ -616,6 +616,7 @@ static uint32_t apic_mem_readl(void *opaque, target_phys_addr_t addr) val = apic_get_ppr(s); break; case 0x0b: +val = 0; break; case 0x0d: val = s-log_dest 24; -- 1.5.3.7 - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] Need info on guest swapping and other things in KVM
Avi, Thanks for your response. Regarding the query on Guest Swapping, I'm referring to the mechanism that the KVM host can use to swap out a guest's pages. Since a guest OS will have its own swapping mechanism, then how will the host ensure that if it choses to swap out a guest's page, it will not conflict with the guest's own swapping mechanism. Put another way: I understand (from docs, mailing list etc.) that KVM allows the host to overbook/overcommit physical memory via the guest swapping mechanism. i.e. the guest thinks it has x number of physical pages but actually the host has swapped out some of the guests pages and given the freed up physical memory to another guest VM. So the guest actually has less than x pages in physical memory but doesn't know it. It possible that my understanding of the way KVM works may be incorrect, in that case any clarifications would be appreciated. Thanks again Arjun On Sun, Apr 6, 2008 at 3:39 AM, Avi Kivity [EMAIL PROTECTED] wrote: Arjun wrote: Hi Folks, A fellow student and I wish to do run some experiments with KVM. Specifically, we would like to examine KVM's guest paging/swapping mechanism, make some changes and run some tests. After a brief search through the docs and code, we would greatly appreciate help with the following: 1) Guest Paging : What is the selection mechanism used by KVM for evicting a guest's page ? With mmu notifiers (not yet merged), pages are picked by the normal Linux LRU mechanism. What if there are any conflicts between host and guest as to which page to evict ? I don't understand this question. 2) Where can we find the code for the above (guest paging). It's the normal Linux swapping code. 3) Are the KVM guests scheduled by the (hosts) standard linux scheduler ? It appears that this is the case but I want to be sure. Yes. 4) Have there been any changes to the host's page/buffer cache ? Are there any changes planned ? Yes, mmu notifiers. This doesn't change pagecache, but rather allows kvm's shadow mmu to be synchronized to the main Linux mmu, which is what allows page eviction and page aging to work. -- error compiling committee.c: too many arguments to function - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [Qemu-devel] [PATCH 2/6] PCI DMA API (v2)
As a note, the DMA controllers in the ARM system-on-chip's can byte-swap, do 90deg rotation of 2D arrays, transparency (probably intened for image blitting, but still available on any kind of transfers), etc., and most importantly issue interrupts on reaching different points of a transfer. It is not worth worrying about them in this API. I have been for some time wanting to make a separate api called soc_dma whose task would be using simply memcpy (or zero-copy) in the most basic case (interrupts off, no transparency, same-endianness endpoints), as these properties are common for DMA on the TI OMAPs, the Intel PXAs and the Samsung S3Cs (which otherwise have little in common). Are you sure you aren't confusing the DMA engine itelf (which is just annother peripheral) with a mechanism for allowing dma engines access to the system. Paul - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
[kvm-devel] Новые правила миграционного уч ета иностранцев
Инoстpанные pабoтники-oсoбеннoсти тpудoвых oтнoшений и налoгooблoжения. Нoвшества в закoнoдательстве Семинаp пpoйдёт 10 апpеля 2008, г. Мoсква Пpoгpамма: 1. Статус инoстpаннoгo гpажданина в pФ. pезиденты и неpезиденты. pегистpация пo месту жительства. 2. Участие инoстpанцев в тpудoвых oтнoшениях в pФ. Ктo мoжет быть pабoтoдателем. Нoвый пopядoк oфopмления pазpешений на pабoту для инoстpанцев, пpибывших в pФ. из безвизoвoй стpаны. Льгoты в pазpешительнoм пopядке пpиема на pабoту. 3. oтветственнoсть за наpушение мигpациoннoгo закoнoдательства. 4. Дoгoвopные oтнoшения с инoстpанными гpажданами. 5. Дoкументы, пpедъявляемые инoстpанцами пpи пpиеме на pабoту - пеpечень неoбхoдимых дoкументoв и тpебoвания к ним. 6. Сoциальнoе стpахoвание инoстpанцев. 7. oбязательнoе медицинскoе стpахoвание гастаpбайтеpoв. Дoбpoвoльнoе медицинскoе стpахoвание. 8. Пенсиoннoе oбеспечение инoстpанцев в poссии. 9. oсoбеннoсти уплаты НДФЛ и ЕСН за инoстpаннoгo pабoтника (в тoм числе, нoвoе с 2007 г.). oсoбеннoсти уплаты ЕСН и НДФЛ за белopусoв. oсвoбoждение oт НДФЛ дoхoда неpезидента, пoлученнoгo за pубежoм. Избежание двoйнoгo налoгooблoжения. 10. Пpиoбpетение услуг пo пpедoставлению pабoчей силы. Пpoдoлжительнoсть oбучения: с 10 дo 17 часoв (с пеpеpывoм на oбед и кoфе-паузу). Местo oбучения: г. Мoсква, 5 мин. пешкoм oт м. Академическая. Стoимoсть oбучения: 4900 pуб. (с НДС). (В стoимoсть вхoдит: pаздатoчный матеpиал, кoфе-пауза, oбед в pестopане). Пpи oтсутствии вoзмoжнoсти пoсетить семинаp, мы пpедлагаем пpиoбpести егo видеoвеpсию на DVD/CD дисках или видеoкассетах (пpилагается автopский pаздатoчный матеpиал). Цена видеoкуpса - 3500 pублей, с учетoм НДС. Для pегистpации на семинаp неoбхoдимo oтпpавить нам пo факсу или электpoннoй пoчте: pеквизиты opганизации, тему и дату семинаpа, пoлнoе ФИo участникoв, кoнтактный телефoн и факс. Для заказа видеoкуpса неoбхoдимo oтпpавить нам пo факсу или электpoннoй пoчте: pеквизиты opганизации, тему видеoкуpса, указать нoситель (ДВД или СД диски), телефoн, факс, кoнтактнoе лицo и тoчный адpес дoставки. Пoлучить дoпoлнительную инфopмацию и заpегистpиpoваться мoжнo: пo т/ф: (495) 543-88-46 пo электpoннoй пoчте: [EMAIL PROTECTED] - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] performance tuning, problem with paravirtualized clock
Nikola Ciprich wrote: Hi, I spent some time trying to tune performance of KVM guest using kernel compilation as a kind of benchmark (I'm using virtual machines for compiling a lot, so it's good benchmark for me in general) Host machine: 2x quad core XEON E5420 @ 2.50GHz, 4GB RAM, 2.6.24 + kvm-64 guest configuration: all 8 cores available, 2GB RAM, 2.6.24 or latest GIT + kvm-64 some results: - compilation in KVM guest is roughly 2x slower than on bare metal. 50% scaling is actually quite good for 8-way. What do you get for 4-way guests? - enabling CONFIG_KVM_GUEST under latest GIT with kvm-64 patch applied decreased compile time by about 10%, which is nice! We expect to improve this some more as paravirt_ops improves. Is there currently anything more I could do to improve performance? I'm wandering what is slowing compilation, if I compare some CPU intensive application (ie bzip2), it seems to run in nearly native speed, but kernel compilation is much slower even if run from ramdisk, maybe it could be improved further by tunning scheduler etc? As others mentioned, large pages may help somewhat, as well as newer hardware. kvm-65 also improves scalability. How much cpu does the qemu process consume? Perfect utilization would be around 800%. What's the system/user ratio (I think you need to use 2.6.25-rc to get accurate results for this)? Can you provide the result of 'kvm_stat -1' taken a few times during a compile run? -- Any sufficiently difficult bug is indistinguishable from a feature. - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [PATCH] mmu notifier #v11
On Sat, 5 Apr 2008, Andrea Arcangeli wrote: In short when working with single pages it's a waste to block the secondary-mmu page fault, because it's zero cost to invalidate_page before put_page. Not even GRU need to do that. That depends on what the notifier is being used for. Some serialization with the external mappings has to be done anyways. And its cleaner to have one API that does a lock/unlock scheme. Atomic operations can easily lead to races. - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [patch 02/10] emm: notifier logic
On Sat, 5 Apr 2008, Andrea Arcangeli wrote: + rcu_assign_pointer(mm-emm_notifier, e); + mm_unlock(mm); My mm_lock solution makes all rcu serialization an unnecessary overhead so you should remove it like I already did in #v11. If it wasn't the case, then mm_lock wouldn't be a definitive fix for the race. There still could be junk in the cache of one cpu. If you just read the new pointer but use the earlier content pointed to then you have a problem. So a memory fence / barrier is needed to guarantee that the contents pointed to are fetched after the pointer. - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel