From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49020) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmeW2-00050q-8i for qemu-devel@nongnu.org; Wed, 21 Sep 2016 06:12:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bmeVx-0004i0-EY for qemu-devel@nongnu.org; Wed, 21 Sep 2016 06:12:33 -0400 Date: Wed, 21 Sep 2016 20:00:08 +1000 From: David Gibson Message-ID: <20160921100008.GD1809@umbus.fritz.box> References: <20160830010247.93152-1-nwhitehorn@freebsd.org> <20160921032057.GU20488@umbus> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="cHMo6Wbp1wrKhbfi" Content-Disposition: inline In-Reply-To: <20160921032057.GU20488@umbus> Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH] Enable H_CLEAR_MOD and H_CLEAR_REF hypercalls on KVM/PPC64. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Nathan Whitehorn Cc: qemu-devel@nongnu.org, qemu-ppc@nongnu.org --cHMo6Wbp1wrKhbfi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Sep 21, 2016 at 01:20:57PM +1000, David Gibson wrote: > On Tue, Aug 30, 2016 at 01:02:47AM +0000, Nathan Whitehorn wrote: > > These are mandatory per PAPR and available on Linux 4.3 and newer kerne= ls. The calls in question are required to run FreeBSD guests with reasonabl= e performance, so enable them if possible. > >=20 > > Signed-off-by: Nathan Whitehorn >=20 > Applied to ppc-for-2.8, thanks. >=20 > Please CC me directly on patches if you want a faster response - I > only occasionally have time to look through the lists for things. Actually, I discovered a bit later that this breaks the build on x86, because there is no stub version of kvmppc_enable_clear_ref_mod_hcalls() when (ppc) kvm is not available. So, I've added that in my tree. >=20 > > --- > > hw/ppc/spapr.c | 3 +++ > > target-ppc/kvm.c | 6 ++++++ > > target-ppc/kvm_ppc.h | 1 + > > 3 files changed, 10 insertions(+) > >=20 > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > > index 30d6800..d41f1a5 100644 > > --- a/hw/ppc/spapr.c > > +++ b/hw/ppc/spapr.c > > @@ -1857,6 +1857,9 @@ static void ppc_spapr_init(MachineState *machine) > > /* Enable H_LOGICAL_CI_* so SLOF can talk to in-kernel devices= */ > > kvmppc_enable_logical_ci_hcalls(); > > kvmppc_enable_set_mode_hcall(); > > + > > + /* H_CLEAR_MOD/_REF are mandatory in PAPR, but off by default = */ > > + kvmppc_enable_clear_ref_mod_hcalls(); > > } > > =20 > > /* allocate RAM */ > > diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c > > index dcb68b9..0e64a46 100644 > > --- a/target-ppc/kvm.c > > +++ b/target-ppc/kvm.c > > @@ -2055,6 +2055,12 @@ void kvmppc_enable_set_mode_hcall(void) > > kvmppc_enable_hcall(kvm_state, H_SET_MODE); > > } > > =20 > > +void kvmppc_enable_clear_ref_mod_hcalls(void) > > +{ > > + kvmppc_enable_hcall(kvm_state, H_CLEAR_REF); > > + kvmppc_enable_hcall(kvm_state, H_CLEAR_MOD); > > +} > > + > > void kvmppc_set_papr(PowerPCCPU *cpu) > > { > > CPUState *cs =3D CPU(cpu); > > diff --git a/target-ppc/kvm_ppc.h b/target-ppc/kvm_ppc.h > > index 5461d10..33b7ed2 100644 > > --- a/target-ppc/kvm_ppc.h > > +++ b/target-ppc/kvm_ppc.h > > @@ -24,6 +24,7 @@ int kvmppc_get_hypercall(CPUPPCState *env, uint8_t *b= uf, int buf_len); > > int kvmppc_set_interrupt(PowerPCCPU *cpu, int irq, int level); > > void kvmppc_enable_logical_ci_hcalls(void); > > void kvmppc_enable_set_mode_hcall(void); > > +void kvmppc_enable_clear_ref_mod_hcalls(void); > > void kvmppc_set_papr(PowerPCCPU *cpu); > > int kvmppc_set_compat(PowerPCCPU *cpu, uint32_t cpu_version); > > void kvmppc_set_mpic_proxy(PowerPCCPU *cpu, int mpic_proxy); >=20 --=20 David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson --cHMo6Wbp1wrKhbfi Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJX4lolAAoJEGw4ysog2bOSKi4P/RNuZzKkwPVAd0NFEYsGEegg 2/IOjoSAS/QDO+fi/CzSOhIvsjEs6DVaVeMvwuadLI+mAWcnXjducKV8/mmIbS2M 9En2fxHZv47Awvj80DabggbwLxNJAXYNhkHOgY64nPZ0JYmcXCGJcKCQWovJApru Q2wAVINEH7/XsDBmvJNLb/JmfY1p8Q/CFpeL9N1SEg28JYCEOW/Rc1x8WJIsPW7E baFpK3i9ES5J7/vhbJPkvxnCk2CZQ+ZYWvNE5SVF7sW8J3wh13LbqNQIMpyAx6kW 3ul+QMpPe6dnmybOBQnhMab2J/5/UPPlWcjM/yEQxKQi9rj8h91bjPflUQKYMEgo p8LJcxIUcTNql+9BNaONw/J5zx6bQSbQUXK6fZyUKw1Ja63ACHfcM4lZp7LW7eVq R3mc+UT7GGDv9fU34RGgxnIZBSZGjmURKYwU+7jJ7U12WWV7ezRC3j0gOmJM+IQ1 vu0qcB+1LcnZtpmMR7/p0Le6ppq3ScpUNVUP+Kc7g3DI1jQeLgKf4EGTIa4h2mRn iEcLFcvmuziIRe4N7jBNAcm/Mv8uD+2sWK4x75W2LQiaq0eTkbClhskjAToZTMMS +oG3V7YRHyc2PjQa41yMW/M/gwThEKNvAvU8B3bnMhFB+z2BKAFKsfKF6sAF85mW egcnWx8gSfIP/Oro1kyK =TJ2e -----END PGP SIGNATURE----- --cHMo6Wbp1wrKhbfi--