From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Tokarev Subject: *insane* amount of host_state_reloads for openbsd guest in 0.14 Date: Fri, 11 Mar 2011 15:02:33 +0300 Message-ID: <4D7A0F59.1060604@msgid.tls.msk.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit To: KVM list Return-path: Received: from isrv.corpit.ru ([86.62.121.231]:55490 "EHLO isrv.corpit.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751952Ab1CKMCf (ORCPT ); Fri, 11 Mar 2011 07:02:35 -0500 Sender: kvm-owner@vger.kernel.org List-ID: I tried Openbsd 4.8 in kvm today and immediately noticed that it is running _very_ slow, boot takes several minutes to complete to the "login:" prompt. After investigating I found that kvm does really insane amount of host_state_reloads. Here are typical kvm_stats: During bootup while checking/mounting filesystems etc: host_state_reload 13782074 671689 exits 24071297 45751 insn_emulation 21707073 45353 io_exits 6900215 288 mmio_exits 20057 226 irq_injections 6533 223 pf_fixed 9801 176 mmu_pte_write 17781 111 irq_exits 6490 20 fpu_reload 133 1 halt_exits 422 0 mmu_cache_miss 333 0 halt_wakeup 30 0 mmu_shadow_zapped 358 0 remote_tlb_flush 3 0 signal_exits 1 0 After booting, idle guest sitting at login: prompt: host_state_reload 28675531 44171 exits 25184108 3379 insn_emulation 22784490 3266 irq_injections 54139 200 mmio_exits 52748 122 mmu_pte_write 41584 100 halt_exits 22731 99 irq_exits 9220 12 io_exits 6912620 9 fpu_reload 765 1 pf_fixed 12419 0 mmu_shadow_zapped 358 0 mmu_cache_miss 339 0 halt_wakeup 38 0 remote_tlb_flush 3 0 signal_exits 1 0 So I played with various options for a bit and found that: o 0.14 -no-kvm-irqchip gets rid of host_state_reloads, making them to be the same (+/-100) as insn_emulations, and speeds up guest significantly (and lowers CPU usage on host during guest idle time). o 0.14 -no-kvm makes the guest *faster* than w/o any additional options, reducing boot time for about 50% (but increasing host CPU usage to maximum) o 0.12 without any options is the fastest, and it keeps number of reloads to be within 3k/sec range during all time. here's typical kvm_stats of idle guest with 0.12: kvm 0.12 and idle guest: exits 25975600 3329 insn_emulation 23555272 3229 host_state_reload 1898575 3117 irq_injections 13125 200 mmio_exits 26603 122 mmu_pte_write 61515 100 halt_exits 5173 100 irq_exits 6927 1 fpu_reload 499 1 io_exits 7058999 1 pf_fixed 11902 0 mmu_shadow_zapped 634 0 mmu_cache_miss 558 0 halt_wakeup 166 0 remote_tlb_flush 2 0 signal_exits 1 0 Again, running on the same AthlonII machine with 2.6.37 host kernel, freshly installed openbsd 4.3 32bit guest (with all defaults). FreeBSD does not show this behavour. What it can be? Thanks! /mjt