From: Richard Davies <richard.davies@elastichosts.com>
To: Avi Kivity <avi@redhat.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] Windows slow boot: contractor wanted
Date: Wed, 22 Aug 2012 13:40:32 +0100 [thread overview]
Message-ID: <20120822124032.GA12647@alpha.arachsys.com> (raw)
In-Reply-To: <5034A18B.5040408@redhat.com>
Avi Kivity wrote:
> Richard Davies wrote:
> > Below are two 'perf top' snapshots during a slow boot, which appear to
> > me to support your idea of a spin-lock problem.
...
> > PerfTop: 62249 irqs/sec kernel:96.9% exact: 0.0% [4000Hz cycles], (all, 16 CPUs)
> > --------------------------------------------------------------------------------------------------------------------------------
> >
> > 35.80% [kernel] [k] _raw_spin_lock_irqsave
> > 21.64% [kernel] [k] isolate_freepages_block
>
> Please disable ksm, and if this function persists in the profile, reduce
> some memory from the guests.
>
> > 5.91% [kernel] [k] yield_to
> > 4.95% [kernel] [k] _raw_spin_lock
> > 3.37% [kernel] [k] kvm_vcpu_on_spin
>
> Except for isolate_freepages_block, all functions up to here have to do
> with dealing with cpu overcommit. But let's deal with them after we see
> a profile with isolate_freepages_block removed.
I can trigger the slow boots without KSM and they have the same profile,
with _raw_spin_lock_irqsave and isolate_freepages_block at the top.
I reduced to 3x 20GB 8-core VMs on a 128GB host (rather than 3x 40GB 8-core
VMs), and haven't managed to get a really slow boot yet (>5 minutes). I'll
post agan when I get one.
In the slowest boot that I have so far (1-2 minutes), this is the perf top
ouput:
PerfTop: 26741 irqs/sec kernel:97.5% exact: 0.0% [4000Hz cycles], (all, 16 CPUs)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
53.94% [kernel] [k] clear_page_c
2.77% [kernel] [k] svm_vcpu_put
2.60% [kernel] [k] svm_vcpu_run
1.79% [kernel] [k] sub_preempt_count
1.56% [kernel] [k] svm_vcpu_load
1.44% [kernel] [k] __schedule
1.36% [kernel] [k] kvm_arch_vcpu_ioctl_run
1.34% [kernel] [k] resched_task
1.32% [kernel] [k] _raw_spin_lock
0.98% [kernel] [k] trace_preempt_on
0.95% [kernel] [k] get_parent_ip
0.94% [kernel] [k] yield_to
0.88% [kernel] [k] __switch_to
0.87% [kernel] [k] get_page_from_freelist
0.81% [kernel] [k] in_lock_functions
0.76% [kernel] [k] add_preempt_count
0.72% [kernel] [k] kvm_vcpu_on_spin
0.69% [kernel] [k] free_pages_prepare
0.59% [kernel] [k] find_highest_vector
0.57% [kernel] [k] rcu_note_context_switch
0.55% [kernel] [k] paging64_walk_addr_generic
0.54% [kernel] [k] __srcu_read_lock
0.49% [kernel] [k] trace_preempt_off
0.47% [kernel] [k] reschedule_interrupt
0.45% [kernel] [k] sched_clock_cpu
0.40% [kernel] [k] trace_hardirqs_on
0.38% [kernel] [k] clear_huge_page
0.37% [kernel] [k] prep_compound_page
0.32% [kernel] [k] x86_emulate_instruction
0.32% [kernel] [k] _raw_spin_lock_irq
0.31% [kernel] [k] __srcu_read_unlock
0.31% [kernel] [k] trace_hardirqs_off
0.30% [kernel] [k] pick_next_task_fair
0.29% [kernel] [k] kvm_find_cpuid_entry
0.28% [kernel] [k] x86_decode_insn
0.26% [kernel] [k] kvm_cpu_has_pending_timer
0.26% [kernel] [k] init_emulate_ctxt
0.25% [kernel] [k] kvm_vcpu_yield_to
0.24% [kernel] [k] clear_buddies
0.24% [kernel] [k] gs_change
0.23% [kernel] [k] handle_exit
0.22% qemu-kvm [.] vnc_refresh_server_surface
0.22% [kernel] [k] update_min_vruntime
0.22% [kernel] [k] gfn_to_memslot
0.22% [kernel] [k] x86_emulate_insn
0.19% [kernel] [k] kvm_sched_out
0.19% [kernel] [k] pid_task
0.18% [kernel] [k] _raw_spin_unlock
0.18% libc-2.10.1.so [.] strcmp
0.17% [kernel] [k] get_pid_task
0.17% [kernel] [k] yield_task_fair
0.17% [kernel] [k] default_send_IPI_mask_sequence_phys
0.16% [kernel] [k] __rcu_read_unlock
0.16% [kernel] [k] kvm_get_cr8
0.16% [kernel] [k] native_sched_clock
0.16% [kernel] [k] do_insn_fetch
0.15% [kernel] [k] set_next_entity
0.14% [kernel] [k] update_rq_clock
0.14% [kernel] [k] __enqueue_entity
0.14% [kernel] [k] kvm_read_guest
0.13% qemu-kvm [.] g_hash_table_lookup
0.13% [kernel] [k] rb_erase
0.12% [kernel] [k] decode_operand
0.12% libz.so.1.2.3 [.] 0x0000000000006451
0.12% [kernel] [k] update_curr
0.12% [kernel] [k] apic_update_ppr
0.12% [kernel] [k] ktime_get
5207 unprocessable samples recorded.5208 unprocessable samples recorded.5209 unprocessable samples recorded.5210 unprocessable samples recorded.5211 unprocessable samples recorded.5212 unprocessable samples recorded.5213 unprocessable samples recorded.5214 unprocessable samples recorded.5215 unprocessable samples recorded.5216 unprocessable samples recorded.5217 unprocessable samples recorded.5218 unprocessable samples recorded.5219 unprocessable samples recorded.5220 unprocessable samples recorded.5221 unprocessable samples recorded.5222 unprocessable samples recorded.5223 unprocessable samples recorded.5224
Thanks,
Richard.
next prev parent reply other threads:[~2012-08-22 12:40 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-16 10:47 [Qemu-devel] Windows slow boot: contractor wanted Richard Davies
2012-08-16 11:39 ` Avi Kivity
2012-08-17 12:36 ` Richard Davies
2012-08-17 13:02 ` Robert Vineyard
2012-08-18 14:44 ` Richard Davies
2012-08-19 5:02 ` Brian Jackson
2012-08-20 8:16 ` Richard Davies
2012-08-19 8:40 ` Avi Kivity
2012-08-19 8:51 ` Richard Davies
2012-08-19 14:04 ` Avi Kivity
2012-08-20 13:56 ` Richard Davies
2012-08-21 9:00 ` Avi Kivity
2012-08-21 15:21 ` Richard Davies
2012-08-21 15:39 ` Troy Benjegerdes
2012-08-22 9:08 ` Avi Kivity
2012-08-22 12:40 ` Richard Davies [this message]
2012-08-22 12:44 ` Avi Kivity
2012-08-22 14:41 ` Richard Davies
2012-08-22 14:53 ` Avi Kivity
2012-08-22 15:26 ` Richard Davies
2012-08-22 17:22 ` Troy Benjegerdes
2012-08-25 17:51 ` Richard Davies
2012-08-22 15:21 ` Rik van Riel
2012-08-22 15:34 ` Richard Davies
2012-08-25 17:45 ` Richard Davies
2012-08-25 18:11 ` Rik van Riel
2012-08-26 10:58 ` Richard Davies
2012-09-06 9:20 ` Richard Davies
2012-09-12 10:56 ` [Qemu-devel] Windows VM slow boot Richard Davies
2012-09-12 12:25 ` Mel Gorman
2012-09-12 16:46 ` Richard Davies
2012-09-13 9:50 ` Mel Gorman
2012-09-13 19:47 ` [Qemu-devel] [PATCH 1/2] Revert "mm: have order > 0 compaction start near a pageblock with free pages" Rik van Riel
2012-09-13 19:48 ` [Qemu-devel] [PATCH 2/2] make the compaction "skip ahead" logic robust Rik van Riel
2012-09-13 19:54 ` [Qemu-devel] [PATCH -v2 " Rik van Riel
2012-09-15 15:55 ` Richard Davies
2012-09-16 19:12 ` Richard Davies
2012-09-17 12:26 ` Mel Gorman
2012-09-18 8:14 ` Richard Davies
2012-09-18 11:21 ` Mel Gorman
2012-09-18 17:58 ` Richard Davies
2012-09-17 13:50 ` Rik van Riel
2012-09-17 14:07 ` Mel Gorman
2012-08-16 14:10 ` [Qemu-devel] Windows slow boot: contractor wanted Benoît Canet
2012-08-16 15:53 ` Troy Benjegerdes
2012-09-18 15:12 ` [Qemu-devel] Windows slow boot Michael Tokarev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120822124032.GA12647@alpha.arachsys.com \
--to=richard.davies@elastichosts.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).