From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anton Blanchard Date: Sat, 20 Oct 2018 06:59:23 +0000 Subject: Re: [PATCH] powerpc/time: Fix clockevent_decrementer initalisation for PR KVM Message-Id: <20181020175923.4cbc5434@kryten> List-Id: References: <20181019042319.9457-1-mpe@ellerman.id.au> In-Reply-To: <20181019042319.9457-1-mpe@ellerman.id.au> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Michael Ellerman Cc: linuxppc-dev@ozlabs.org, paulus@samba.org, kvm-ppc@vger.kernel.org On Fri, 19 Oct 2018 15:23:19 +1100 Michael Ellerman wrote: > In the recent commit 8b78fdb045de ("powerpc/time: Use > clockevents_register_device(), fixing an issue with large > decrementer") we changed the way we initialise the decrementer > clockevent(s). > > We no longer initialise the mult & shift values of > decrementer_clockevent itself. > > This has the effect of breaking PR KVM, because it uses those values > in kvmppc_emulate_dec(). The symptom is guest kernels spin forever > mid-way through boot. > > For now fix it by assigning back to decrementer_clockevent the mult > and shift values. Thanks Michael, I missed that completely. Acked-by: Anton Blanchard Anton > > Fixes: 8b78fdb045de ("powerpc/time: Use > clockevents_register_device(), fixing an issue with large > decrementer") Signed-off-by: Michael Ellerman --- > arch/powerpc/kernel/time.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c > index 40868f3ee113..68e8f963d108 100644 > --- a/arch/powerpc/kernel/time.c > +++ b/arch/powerpc/kernel/time.c > @@ -989,6 +989,10 @@ static void register_decrementer_clockevent(int > cpu) > printk_once(KERN_DEBUG "clockevent: %s mult[%x] shift[%d] > cpu[%d]\n", dec->name, dec->mult, dec->shift, cpu); > + > + /* Set values for KVM, see kvm_emulate_dec() */ > + decrementer_clockevent.mult = dec->mult; > + decrementer_clockevent.shift = dec->shift; > } > > static void enable_large_decrementer(void)