From: Paolo Bonzini <pbonzini@redhat.com>
To: David Matlack <dmatlack@google.com>
Cc: kvm list <kvm@vger.kernel.org>,
linux-kernel@vger.kernel.org,
Andy Lutomirski <luto@amacapital.net>,
stable@vger.kernel.org
Subject: Re: [PATCH] kvm: x86: do not leak guest xcr0 into host interrupt handlers
Date: Thu, 7 Apr 2016 15:03:39 -0400 (EDT) [thread overview]
Message-ID: <1516493578.821675.1460055819108.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <CALzav=e_e9qV5+csaQOT0fmi8U4_VGa_9thg=D-V=v12wKbC-w@mail.gmail.com>
----- Original Message -----
> >>> While running my acceptance tests, in one case I got one CPU whose xcr0
> >>> had leaked into the host. This showed up as a SIGILL in strncasecmp's
> >>> AVX code, and a simple program confirmed it:
> >>>
> >>> $ cat xgetbv.c
> >>> #include <stdio.h>
> >>> int main(void)
> >>> {
> >>> unsigned xcr0_h, xcr0_l;
> >>> asm("xgetbv" : "=d"(xcr0_h), "=a"(xcr0_l) : "c"(0));
> >>> printf("%08x:%08x\n", xcr0_h, xcr0_l);
> >>> }
> >>> $ gcc xgetbv.c -O2
> >>> $ for i in `seq 0 55`; do echo $i `taskset -c $i ./a.out`; done|grep
> >>> -v 007
> >>> 19 00000000:00000003
> >>>
> >>> I'm going to rerun the tests without this patch, as it seems the most
> >>> likely culprit, and leave it out of the pull request if they pass.
> >>
> >> Agreed this is a very likely culprit. I think I see one way the
> >> guest's xcr0 can leak into the host.
> >
> > That's cancel_injection, right? If it's just about moving the load call
> > below, I can do that. Hmm, I will even test that today. :)
>
> Yes that's what I was thinking, move kvm_load_guest_xcr0 below that if.
>
> Thank you :). Let me know how testing goes.
It went well.
Paolo
next prev parent reply other threads:[~2016-04-07 19:03 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-30 19:24 [PATCH] kvm: x86: do not leak guest xcr0 into host interrupt handlers David Matlack
2016-03-31 8:05 ` Paolo Bonzini
2016-04-05 11:28 ` Paolo Bonzini
2016-04-05 15:56 ` David Matlack
2016-04-05 16:07 ` Paolo Bonzini
2016-04-07 9:08 ` Paolo Bonzini
2016-04-07 18:18 ` David Matlack
2016-04-07 19:03 ` Paolo Bonzini [this message]
2016-04-08 16:25 ` David Matlack
2016-04-08 16:50 ` Paolo Bonzini
2016-04-08 16:54 ` David Matlack
2016-04-22 7:30 ` Wanpeng Li
2016-04-22 17:21 ` David Matlack
2016-04-23 22:37 ` Wanpeng Li
-- strict thread matches above, loose matches on Subject: below --
2017-09-05 7:46 Lizhen You
2017-09-07 14:40 ` Greg KH
2017-09-08 1:28 ` You, Lizhen
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=1516493578.821675.1460055819108.JavaMail.zimbra@redhat.com \
--to=pbonzini@redhat.com \
--cc=dmatlack@google.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=stable@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).