On Fri, Apr 20, 2018 at 02:25:23PM +0200, Greg Kurz wrote: > On Tue, 17 Apr 2018 17:17:14 +1000 > David Gibson <da...@gibson.dropbear.id.au> wrote: > > > Current POWER cpus allow for a VRMA, a special mapping which describes a > > guest's view of memory when in real mode (MMU off, from the guest's point > > of view). Older cpus didn't have that which meant that to support a guest > > a special host-contiguous region of memory was needed to give the guest its > > Real Mode Area (RMA). > > > > This was useful in the early days of KVM on Power to allow it to be tested > > on PowerPC 970 chips as used in Macintosh G5 machines. Now, however, those > > machines are so old as to be irrelevant, and the host kernel has long since > > dropped support for this mode. It hasn't been tested in ages either. > > > > So, to simplify the code, drop the support from qemu as well. > > > > As well as the code for handling contiguous RMAs, we can remove some > > code to set the HIOR register, which existed on 970 but not on the > > current and supported CPUs. > > > > Signed-off-by: David Gibson <da...@gibson.dropbear.id.au> > > --- > > Regardless of the discussion on the deprecation process, just > a cosmetic remark... > > > hw/ppc/spapr.c | 61 > > +++++++++++++++---------------------------------- > > hw/ppc/spapr_cpu_core.c | 2 -- > > target/ppc/kvm.c | 36 ----------------------------- > > target/ppc/kvm_ppc.h | 6 ----- > > 4 files changed, 19 insertions(+), 86 deletions(-) > > > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > > index 81b50af3b5..fbb2c6752c 100644 > > --- a/hw/ppc/spapr.c > > +++ b/hw/ppc/spapr.c > > @@ -2376,9 +2376,6 @@ static void spapr_machine_init(MachineState *machine) > > int i; > > MemoryRegion *sysmem = get_system_memory(); > > MemoryRegion *ram = g_new(MemoryRegion, 1); > > - MemoryRegion *rma_region; > > - void *rma = NULL; > > - hwaddr rma_alloc_size; > > hwaddr node0_size = spapr_node0_size(machine); > > long load_limit, fw_size; > > char *filename; > > @@ -2417,40 +2414,28 @@ static void spapr_machine_init(MachineState > > *machine) > > exit(1); > > } > > > > - /* Allocate RMA if necessary */ > > - rma_alloc_size = kvmppc_alloc_rma(&rma); > > + spapr->rma_size = node0_size; > > > > - if (rma_alloc_size == -1) { > > - error_report("Unable to create RMA"); > > - exit(1); > > + /* With KVM, we don't actually know whether KVM supports an > > + * unbounded RMA (PR KVM) or is limited by the hash table size (HV > > + * KVM using VRMA), so we always assume the latter > > + * > > + * In that case, we also limit the initial allocations for RTAS > > + * etc... to 256M since we have no way to know what the VRMA size > > + * is going to be as it depends on the size of the hash table > > + * isn't determined yet. > > ... maybe s/isn't/which isn't/ while at it ?
Thanks, I've made that change. -- 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
signature.asc
Description: PGP signature