From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:56239) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UVPRN-0006e1-DU for qemu-devel@nongnu.org; Thu, 25 Apr 2013 12:54:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UVPRI-0005T6-IC for qemu-devel@nongnu.org; Thu, 25 Apr 2013 12:54:37 -0400 Message-ID: <51795FA2.3050602@web.de> Date: Thu, 25 Apr 2013 18:53:54 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <1366880800-30967-1-git-send-email-agraf@suse.de> <51795646.30405@web.de> <68B10AEE-4687-4193-B37A-E28CDDD9F73D@suse.de> In-Reply-To: <68B10AEE-4687-4193-B37A-E28CDDD9F73D@suse.de> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="----enig2VBUGGEVXOITWAGECJTNM" Subject: Re: [Qemu-devel] [PATCH] KVM: Don't assume that mpstate exists with in-kernel PIC always List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) ------enig2VBUGGEVXOITWAGECJTNM Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 2013-04-25 18:46, Alexander Graf wrote: >=20 > On 25.04.2013, at 18:13, Jan Kiszka wrote: >=20 >> On 2013-04-25 11:06, Alexander Graf wrote: >>> On PPC, we don't support MP state. So far it's not necessary and I'm >>> not convinced yet that we really need to support it ever. >>> >>> However, the current idle logic in QEMU assumes that an in-kernel PIC= >>> also means we support MP state. This assumption is not true anymore. >>> >>> Let's split up the two cases into two different variables. That way >>> PPC can expose an in-kernel PIC, while not implementing MP state. >>> >>> Signed-off-by: Alexander Graf >>> CC: Jan Kiszka >>> >>> --- >>> >>> v1 -> v2: >>> >>> - use kvm_halt_in_kernel() instead >>> --- >>> cpus.c | 2 +- >>> include/sysemu/kvm.h | 10 ++++++++++ >>> kvm-all.c | 2 ++ >>> 3 files changed, 13 insertions(+), 1 deletions(-) >>> >>> diff --git a/cpus.c b/cpus.c >>> index e919dd7..e626f7e 100644 >>> --- a/cpus.c >>> +++ b/cpus.c >>> @@ -73,7 +73,7 @@ static bool cpu_thread_is_idle(CPUArchState *env) >>> return true; >>> } >>> if (!cpu->halted || qemu_cpu_has_work(cpu) || >>> - kvm_async_interrupts_enabled()) { >>> + kvm_halt_in_kernel()) { >>> return false; >>> } >>> return true; >>> diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h >>> index 8a9ebda..07375bf 100644 >>> --- a/include/sysemu/kvm.h >>> +++ b/include/sysemu/kvm.h >>> @@ -42,6 +42,7 @@ >>> extern bool kvm_allowed; >>> extern bool kvm_kernel_irqchip; >>> extern bool kvm_async_interrupts_allowed; >>> +extern bool kvm_halt_in_kernel_allowed; >>> extern bool kvm_irqfds_allowed; >>> extern bool kvm_msi_via_irqfd_allowed; >>> extern bool kvm_gsi_routing_allowed; >>> @@ -72,6 +73,14 @@ extern bool kvm_gsi_routing_allowed; >>> #define kvm_async_interrupts_enabled() (kvm_async_interrupts_allowed)= >>> >>> /** >>> + * kvm_supports_mpstate: >>> + * >>> + * Returns: true if the kvm side supports MP states which is >>> + * required to indicate to kvm that a vcpu is currently halted >> >> "...and make KVM wait for resumption inside the kernel instead for >> reporting halt to userspace." Or so. >> >> That's why I asked for calling this helper differently: to express the= >> concept behind it, not the implementation detail "mpstate" (which is a= n >> x86-caused misnomer). >=20 > It's not exactly a misnomer. It's a concept that is required to impleme= nt the logic. I've updated the comment accordingly :). AFAIK, the concept ("multi-processor state") was introduced for and named after x86 properties. Jan ------enig2VBUGGEVXOITWAGECJTNM Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlF5X6IACgkQitSsb3rl5xR0DwCgjLIr/iWw5NaEX4i2+EzNOZgc P/MAoJUOPUmOjG4bo8+cBdUT50PmjXOw =QTI+ -----END PGP SIGNATURE----- ------enig2VBUGGEVXOITWAGECJTNM--