public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: "Radim Krčmář" <rkrcmar@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	alex.williamson@redhat.com, mtosatti@redhat.com, gleb@kernel.org,
	jan.kiszka@siemens.com
Subject: Re: [PATCH 4/7] KVM: vmx: Allow the guest to run with dirty debug registers
Date: Mon, 10 Mar 2014 13:17:04 +0100	[thread overview]
Message-ID: <20140310121704.GB16023@potion.brq.redhat.com> (raw)
In-Reply-To: <531CCB15.6070402@redhat.com>

2014-03-09 21:12+0100, Paolo Bonzini:
> Il 09/03/2014 19:26, Radim Krčmář ha scritto:
> >> +
> >> +		/*
> >> +		 * No more DR vmexits; force a reload of the debug registers
> >> +		 * and reenter on this instruction.  The next vmexit will
> >> +		 * retrieve the full state of the debug registers.
> >> +		 */
> >> +		vcpu->arch.switch_db_regs |= KVM_DEBUGREG_WONT_EXIT;
> >> +		return 1;
> >> +	}
> >> +
> >
> >We could make the code slighly uglier and move the functional part of
> >this block before the previous one, so it would do both things in one
> >exit.
> 
> I considered this, but decided that it's unlikely for emulation to
> be faster than hardware---especially on those AMD CPUs that lack
> decode assists (and it's good for VMX and SVM code to look as
> similar as possible).

I meant to move it before the block that exits if there is the
'exception on access' bit set in cr7, so we wouldn't exit again right
away on the actual access, which is quite likely.
(Exiting without emulation was a great move.)

> >(Exception handler will likely access DR too.)
> 
> Which exception handler?

For #DB. (Pure guesswork, I haven't seen any of them.)

  reply	other threads:[~2014-03-10 12:17 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-07 11:42 [PATCH 0/7] KVM: x86: Let the guest write to multiple debug registers with one vmexit Paolo Bonzini
2014-03-07 11:42 ` [PATCH 1/7] KVM: vmx: we do rely on loading DR7 on entry Paolo Bonzini
2014-03-07 11:42 ` [PATCH 2/7] KVM: x86: change vcpu->arch.switch_db_regs to a bit mask Paolo Bonzini
2014-03-07 11:42 ` [PATCH 3/7] KVM: x86: Allow the guest to run with dirty debug registers Paolo Bonzini
2014-03-09 18:28   ` Radim Krčmář
2014-03-09 20:07     ` Paolo Bonzini
2014-03-10 12:11       ` Radim Krčmář
2014-03-07 11:42 ` [PATCH 4/7] KVM: vmx: " Paolo Bonzini
2014-03-09 18:26   ` Radim Krčmář
2014-03-09 20:12     ` Paolo Bonzini
2014-03-10 12:17       ` Radim Krčmář [this message]
2014-03-10 12:24         ` Paolo Bonzini
2014-03-07 11:42 ` [PATCH 5/7] KVM: nVMX: Allow nested guests " Paolo Bonzini
2014-03-07 11:42 ` [PATCH 6/7] KVM: svm: set/clear all DR intercepts in one swoop Paolo Bonzini
2014-03-07 11:42 ` [PATCH 7/7] KVM: svm: Allow the guest to run with dirty debug registers Paolo Bonzini
2014-03-09  8:11 ` [PATCH 0/7] KVM: x86: Let the guest write to multiple debug registers with one vmexit Jan Kiszka
2014-03-09  8:15   ` Jan Kiszka
2014-03-09  8:31     ` Paolo Bonzini
2014-03-10 12:23 ` Radim Krčmář

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=20140310121704.GB16023@potion.brq.redhat.com \
    --to=rkrcmar@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=gleb@kernel.org \
    --cc=jan.kiszka@siemens.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=pbonzini@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox