From: Sean Christopherson <sean.j.christopherson@intel.com>
To: Rian Quinn <rianquinn@gmail.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: x86_64 INIT/SIPI Bug
Date: Fri, 9 Nov 2018 10:42:37 -0800 [thread overview]
Message-ID: <20181109184237.GA4051@linux.intel.com> (raw)
In-Reply-To: <CANmpu8Xuuuqhfa8Tspgd9cHXetNCBkRGuGfFFSovB1A1We=n+A@mail.gmail.com>
On Fri, Nov 09, 2018 at 11:04:59AM -0700, Rian Quinn wrote:
> >> I apologize upfront if this is the wrong place to post this, pretty new to this.
> >>
> >> We are working on the Bareflank Hypervisor (www.bareflank.org), and we
> >> are passing through the INIT/SIPI process (similar to how a VMX
> >> rootkit from EFI might boot the OS) and we noticed that on Arch Linux,
> >> the INIT/SIPI process stalls, something we are not seeing on Ubuntu.
> >
> > I'm confused, INIT is blocked post-VMXON, what are you passing through?
>
> You are correct that INIT will track unconditionally, but all we do is set the
> activity state to wait-for-sipi and return back, allowing Linux to continue
> its boot process.
That's not pass-through, maybe call it reflection? I realize I'm being
a bit pedantic, but differentiating between the two matters since true
pass-through gives you bare metal performance whereas reflection obviously
requires a round-trip VMX transition.
Most hypervisors don't need a delay because they don't pass-through the
local APIC and instead emulate INIT/SIPI/SIPI. In other words, forcing
a delay for all hypervisors is unwarranted.
The correct fix is probably to add a new hook to struct x86_hyper_init
to provide a custom init delay, and add Bareflank as a new hypervisor.
prev parent reply other threads:[~2018-11-09 18:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-08 22:23 x86_64 INIT/SIPI Bug Rian Quinn
2018-11-09 1:16 ` Eric W. Biederman
2018-11-09 16:13 ` Rian Quinn
2018-11-09 17:49 ` Sean Christopherson
2018-11-09 18:04 ` Rian Quinn
2018-11-09 18:42 ` Sean Christopherson [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181109184237.GA4051@linux.intel.com \
--to=sean.j.christopherson@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rianquinn@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.