On Tue, Feb 26, 2019 at 05:26:10PM +1100, Suraj Jitindar Singh wrote: > On Tue, 2019-02-26 at 14:39 +1100, David Gibson wrote: > > On Tue, Feb 26, 2019 at 02:05:28PM +1100, Suraj Jitindar Singh wrote: > > > Add spapr_cap SPAPR_CAP_LARGE_DECREMENTER to be used to control the > > > availability and size of the large decrementer made available to > > > the > > > guest. > > > > > > Signed-off-by: Suraj Jitindar Singh > > > --- > > > hw/ppc/spapr.c | 2 ++ > > > hw/ppc/spapr_caps.c | 45 > > > +++++++++++++++++++++++++++++++++++++++++++++ > > > include/hw/ppc/spapr.h | 5 ++++- > > > 3 files changed, 51 insertions(+), 1 deletion(-) > > > > > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > > > index b6a571b6f1..acf62a2b9f 100644 > > > --- a/hw/ppc/spapr.c > > > +++ b/hw/ppc/spapr.c > > > @@ -2077,6 +2077,7 @@ static const VMStateDescription vmstate_spapr > > > = { > > > &vmstate_spapr_irq_map, > > > &vmstate_spapr_cap_nested_kvm_hv, > > > &vmstate_spapr_dtb, > > > + &vmstate_spapr_cap_large_decr, > > > NULL > > > } > > > }; > > > @@ -4288,6 +4289,7 @@ static void > > > spapr_machine_class_init(ObjectClass *oc, void *data) > > > smc->default_caps.caps[SPAPR_CAP_IBS] = SPAPR_CAP_BROKEN; > > > smc->default_caps.caps[SPAPR_CAP_HPT_MAXPAGESIZE] = 16; /* > > > 64kiB */ > > > smc->default_caps.caps[SPAPR_CAP_NESTED_KVM_HV] = > > > SPAPR_CAP_OFF; > > > + smc->default_caps.caps[SPAPR_CAP_LARGE_DECREMENTER] = 0; > > > > This looks basically fine, but the name kind of suggests it's a > > boolean, whereas it's actually a number of bits. I wonder if just > > calling it "decrementer bits" would be clearer, with it defaulting to > > 32. > > Yes, except there's a difference between a decrementer with 32 bits and > a large decrementer with 32 bits... Ok, and that difference is..? > SPAPR_CAP_LARGE_DECR_NR_BITS? That could work. -- 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