[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <cb06b33acdad04bef8c9541b4247a36f51cf2d36.camel@amazon.co.uk>
Date: Mon, 23 Sep 2024 19:38:14 +0000
From: "Allister, Jack" <jalliste@...zon.co.uk>
To: "Orlov, Ivan" <iorlov@...zon.co.uk>, "seanjc@...gle.com"
<seanjc@...gle.com>
CC: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-kselftest@...r.kernel.org" <linux-kselftest@...r.kernel.org>,
"bp@...en8.de" <bp@...en8.de>, "dave.hansen@...ux.intel.com"
<dave.hansen@...ux.intel.com>, "hpa@...or.com" <hpa@...or.com>,
"mingo@...hat.com" <mingo@...hat.com>, "tglx@...utronix.de"
<tglx@...utronix.de>, "Allister, Jack" <jalliste@...zon.co.uk>,
"pbonzini@...hat.com" <pbonzini@...hat.com>, "nh-open-source@...zon.com"
<nh-open-source@...zon.com>, "shuah@...nel.org" <shuah@...nel.org>,
"kvm@...r.kernel.org" <kvm@...r.kernel.org>, "x86@...nel.org"
<x86@...nel.org>
Subject: Re: [PATCH 0/4] Process some MMIO-related errors without KVM exit
On Mon, 2024-09-23 at 10:04 -0700, Sean Christopherson wrote:
>
> On Mon, Sep 23, 2024, Ivan Orlov wrote:
> > Currently, KVM may return a variety of internal errors to VMM when
> > accessing MMIO, and some of them could be gracefully handled on the
> > KVM
> > level instead. Moreover, some of the MMIO-related errors are
> > handled
> > differently in VMX in comparison with SVM, which produces certain
> > inconsistency and should be fixed. This patch series introduces
> > KVM-level handling for the following situations:
> >
> > 1) Guest is accessing MMIO during event delivery: triple fault
> > instead
> > of internal error on VMX and infinite loop on SVM
> >
> > 2) Guest fetches an instruction from MMIO: inject #UD and resume
> > guest
> > execution without internal error
>
> No. This is not architectural behavior. It's not even remotely
> close to
> architectural behavior. KVM's behavior isn't great, but making up
> _guest visible_
> behavior is not going to happen.
Is this a no to the whole series or from the cover letter?
For patch 1 we have observed that if a guest has incorrectly set it's
IDT base to point inside of an MMIO region it will result in a triple
fault (bare metal Cascake Lake Intel). Yes a sane operating system is
not really going to be doing setting it's IDT or GDT base to point into
an MMIO region, but we've seen occurrences. Normally when other
external things have gone horribly wrong.
Ivan can clarify as to what's been seen on AMD platforms regarding the
infinite loop for patch one. This was also tested on bare metal
hardware. Injection of the #UD within patch 2 may be debatable but I
believe Ivan has some more data from experiments backing this up.
Best regards,
Jack
Powered by blists - more mailing lists