From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicholas Piggin Date: Tue, 25 Jan 2022 03:26:26 +0000 Subject: Re: [PATCH v4 4/5] KVM: PPC: mmio: Return to guest after emulation failure Message-Id: <1643080025.cz96zd90xb.astroid@bobo.none> List-Id: References: <20220121222626.972495-1-farosas@linux.ibm.com> <20220121222626.972495-5-farosas@linux.ibm.com> In-Reply-To: <20220121222626.972495-5-farosas@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Fabiano Rosas , kvm-ppc@vger.kernel.org Cc: aik@ozlabs.ru, linuxppc-dev@lists.ozlabs.org Excerpts from Fabiano Rosas's message of January 22, 2022 8:26 am: > If MMIO emulation fails we don't want to crash the whole guest by > returning to userspace. > > The original commit bbf45ba57eae ("KVM: ppc: PowerPC 440 KVM > implementation") added a todo: > > /* XXX Deliver Program interrupt to guest. */ > > and later the commit d69614a295ae ("KVM: PPC: Separate loadstore > emulation from priv emulation") added the Program interrupt injection > but in another file, so I'm assuming it was missed that this block > needed to be altered. > > Also change the message to a ratelimited one since we're letting the > guest run and it could flood the host logs. > > Signed-off-by: Fabiano Rosas Reviewed-by: Nicholas Piggin One small thing... > --- > arch/powerpc/kvm/powerpc.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c > index 27fb2b70f631..214602c58f13 100644 > --- a/arch/powerpc/kvm/powerpc.c > +++ b/arch/powerpc/kvm/powerpc.c > @@ -307,9 +307,9 @@ int kvmppc_emulate_mmio(struct kvm_vcpu *vcpu) > u32 last_inst; > > kvmppc_get_last_inst(vcpu, INST_GENERIC, &last_inst); > - /* XXX Deliver Program interrupt to guest. */ > - pr_emerg("%s: emulation failed (%08x)\n", __func__, last_inst); > - r = RESUME_HOST; > + pr_info_ratelimited("KVM: guest access to device memory using unsupported instruction (PID: %d opcode: %#08x)\n", > + current->pid, last_inst); Minor thing but KVM now has some particular printing helpers so I wonder if we should start moving to them in general with our messages. vcpu_debug_ratelimited() maybe? Thanks, Nick