Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1266616

Re: [PATCH 0/3] Infinite loops in microcode while running guests

From Paolo Bonzini <pbonzini@redhat.com>
Newsgroups linux.kernel
Subject Re: [PATCH 0/3] Infinite loops in microcode while running guests
Date 2015-11-10 17:20 +0100
Message-ID <qtjOh-7kQ-1@gated-at.bofh.it> (permalink)
References <qtgdH-505-11@gated-at.bofh.it> <qtjbz-6QE-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw



On 10/11/2015 16:38, Jan Kiszka wrote:
> On 2015-11-10 13:22, Paolo Bonzini wrote:
>> Yes, these can happen.  The issue is that benign exceptions are
>> delivered serially, but two of them (#DB and #AC) can also happen
>> during exception delivery itself.  The subsequent infinite stream
>> of exceptions causes the processor to never exit guest mode.
>>
>> Paolo
>>
>> Eric Northup (1):
>>   KVM: x86: work around infinite loop in microcode when #AC is delivered
>>
>> Paolo Bonzini (2):
>>   KVM: svm: unconditionally intercept #DB
>>   KVM: x86: rename update_db_bp_intercept to update_bp_intercept
>>
>>  arch/x86/include/asm/kvm_host.h |  2 +-
>>  arch/x86/include/uapi/asm/svm.h |  1 +
>>  arch/x86/kvm/svm.c              | 22 +++++++++++-----------
>>  arch/x86/kvm/vmx.c              |  7 +++++--
>>  arch/x86/kvm/x86.c              |  2 +-
>>  5 files changed, 19 insertions(+), 15 deletions(-)
>>
> 
> So this affects both Intel and AMD CPUs equally? Nice cross-vendor
> "compatibility".

Yes, it's for both.

> And it can only be triggered via #AC and #DB, or also other exceptions
> (that KVM already happens to intercept)?

Yes, these are the sole benign exceptions that can occur during
exception delivery.  All other benign exceptions only occur as the
result of executing instructions.

> You may guess why I'm asking...
> Is any of the issues already documented in a vendor errata?

No idea.  As far as I understood, processor engineers consider this to
be intended behavior (!) though they admit that the outcome for
virtualization is bad.

I don't have a reproducer for this yet (I have only tested the patches
by ensuring that they do not regress on the legal cases), but from what
I heard at least on Intel the #AC injection actually causes a failed
VM-entry...  Yet, nothing in the manual suggests _why_.

Paolo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 0/3] Infinite loops in microcode while running guests Paolo Bonzini <pbonzini@redhat.com> - 2015-11-10 13:30 +0100
  Re: [PATCH 0/3] Infinite loops in microcode while running guests Jan Kiszka <jan.kiszka@siemens.com> - 2015-11-10 16:40 +0100
    Re: [PATCH 0/3] Infinite loops in microcode while running guests Paolo Bonzini <pbonzini@redhat.com> - 2015-11-10 17:20 +0100
  Re: [PATCH 0/3] Infinite loops in microcode while running guests Austin S Hemmelgarn <ahferroin7@gmail.com> - 2015-11-11 13:50 +0100
    Re: [PATCH 0/3] Infinite loops in microcode while running guests Paolo Bonzini <pbonzini@redhat.com> - 2015-11-11 14:10 +0100
      Re: [PATCH 0/3] Infinite loops in microcode while running guests Austin S Hemmelgarn <ahferroin7@gmail.com> - 2015-11-11 14:20 +0100
        Re: [PATCH 0/3] Infinite loops in microcode while running guests Jan Kiszka <jan.kiszka@siemens.com> - 2015-11-12 15:10 +0100
          Re: [PATCH 0/3] Infinite loops in microcode while running guests Paolo Bonzini <pbonzini@redhat.com> - 2015-11-12 15:40 +0100

csiph-web