From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49183) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1abmqA-0006yN-G5 for qemu-devel@nongnu.org; Fri, 04 Mar 2016 05:20:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1abmq9-0005rU-Hz for qemu-devel@nongnu.org; Fri, 04 Mar 2016 05:20:10 -0500 References: <1457069753-13123-1-git-send-email-david@gibson.dropbear.id.au> <1457069753-13123-3-git-send-email-david@gibson.dropbear.id.au> From: Thomas Huth Message-ID: <56D96154.5040702@redhat.com> Date: Fri, 4 Mar 2016 11:20:04 +0100 MIME-Version: 1.0 In-Reply-To: <1457069753-13123-3-git-send-email-david@gibson.dropbear.id.au> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/2] target-ppc: Eliminate kvmppc_kern_htab global List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: David Gibson , gkurz@linux.vnet.ibm.com, aik@ozlabs.ru Cc: lvivier@redhat.com, qemu-devel@nongnu.org, qemu-ppc@nongnu.org, agraf@suse.de, mdroth@linux.vnet.ibm.com On 04.03.2016 06:35, David Gibson wrote: > fa48b43 "target-ppc: Remove hack for ppc_hash64_load_hpte*() with HV KVM" > purports to remove a hack in the handling of hash page tables (HPTs) > managed by KVM instead of qemu. However, it actually went in the wrong > direction. > > That patch requires anything looking for an external HPT (that is one not > managed by the guest itself) to check both env->external_htab (for a qemu > managed HPT) and kvmppc_kern_htab (for a KVM managed HPT). That's a > problem because kvmppc_kern_htab is local to mmu-hash64.c, but some places > which need to check for an external HPT are outside that, such as > kvm_arch_get_registers(). The latter was subtly broken by the earlier > patch such that gdbstub can no longer access memory. > > Basically a KVM managed HPT is much more like a qemu managed HPT than it is > like a guest managed HPT, so the original "hack" was actually on the right > track. > > This partially reverts fa48b43, so we again mark a KVM managed external HPT > by putting a special but non-NULL value in env->external_htab. It then > goes further, using that marker to eliminate the kvmppc_kern_htab global > entirely. The ppc_hash64_set_external_hpt() helper function is extended > to set that marker if passed a NULL value (if you're setting an external > HPT, but don't have an actual HPT to set, the assumption is that it must > be a KVM managed HPT). > > This also has some flow-on changes to the HPT access helpers, required by > the above changes. > > Reported-by: Greg Kurz > Signed-off-by: David Gibson > --- > hw/ppc/spapr.c | 3 +-- > hw/ppc/spapr_hcall.c | 10 +++++----- > target-ppc/mmu-hash64.c | 40 ++++++++++++++++++---------------------- > target-ppc/mmu-hash64.h | 9 +++------ > 4 files changed, 27 insertions(+), 35 deletions(-) Patch looks fine to me. Reviewed-by: Thomas Huth