From: Christian Borntraeger <borntraeger@de.ibm.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Cc: rkrcmar@redhat.com, David Hildenbrand <dahi@linux.vnet.ibm.com>,
David Matlack <dmatlack@google.com>,
Jens Freimann <jfrei@linux.vnet.ibm.com>
Subject: Re: [PATCH] KVM: add halt_attempted_poll to VCPU stats
Date: Wed, 16 Sep 2015 12:12:43 +0200 [thread overview]
Message-ID: <55F9409B.9020501@de.ibm.com> (raw)
In-Reply-To: <1442334477-35377-1-git-send-email-pbonzini@redhat.com>
Am 15.09.2015 um 18:27 schrieb Paolo Bonzini:
> This new statistic can help diagnosing VCPUs that, for any reason,
> trigger bad behavior of halt_poll_ns autotuning.
>
> For example, say halt_poll_ns = 480000, and wakeups are spaced exactly
> like 479us, 481us, 479us, 481us. Then KVM always fails polling and wastes
> 10+20+40+80+160+320+480 = 1110 microseconds out of every
> 479+481+479+481+479+481+479 = 3359 microseconds. The VCPU then
> is consuming about 30% more CPU than it would use without
> polling. This would show as an abnormally high number of
> attempted polling compared to the successful polls.
>
> Cc: Christian Borntraeger <borntraeger@de.ibm.com<
> Cc: David Matlack <dmatlack@google.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
yes, this will help to detect some bad cases, but not all.
PS:
upstream maintenance keeps me really busy at the moment :-)
I am looking into a case right now, where auto polling goes
completely nuts on my system:
guest1: 8vcpus guest2: 1 vcpu
iperf with 25 process (-P25) from guest1 to guest2.
I/O interrupts on s390 are floating (pending on all CPUs) so on
ALL VCPUs that go to sleep, polling will consider any pending
network interrupt as successful poll. So with auto polling the
guest consumes up to 5 host CPUs without auto polling only 1.
Reducing halt_poll_ns to 100000 seems to work (goes back to
1 cpu).
The proper way might be to feedback the result of the
interrupt dequeue into the heuristics. Don't know yet how
to handle that properly.
Christian
next prev parent reply other threads:[~2015-09-16 10:19 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1442334477-35377-1-git-send-email-pbonzini@redhat.com>
2015-09-15 17:21 ` [PATCH] KVM: add halt_attempted_poll to VCPU stats David Matlack
2015-09-16 10:12 ` Christian Borntraeger [this message]
2015-09-16 10:15 ` Paolo Bonzini
2015-09-16 12:12 ` Wanpeng Li
2015-09-17 10:28 ` David Hildenbrand
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=55F9409B.9020501@de.ibm.com \
--to=borntraeger@de.ibm.com \
--cc=dahi@linux.vnet.ibm.com \
--cc=dmatlack@google.com \
--cc=jfrei@linux.vnet.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=rkrcmar@redhat.com \
/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