All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Bandan Das <bsd@redhat.com>, kvm@vger.kernel.org
Cc: Marcelo Tosatti <mtosatti@redhat.com>,
	Gleb Natapov <gleb@kernel.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH v3 0/6] Emulator speedups - avoid initializations where possible
Date: Mon, 28 Apr 2014 12:28:53 +0200	[thread overview]
Message-ID: <535E2D65.4090508@redhat.com> (raw)
In-Reply-To: <1397666774-24713-1-git-send-email-bsd@redhat.com>

Il 16/04/2014 18:46, Bandan Das ha scritto:
> While initializing emulation context structure, kvm memsets to 0 a
> number of fields some of which are redundant since they get set
> eventually in x86_decode_insn. Cleanup unnecessary initializations
> and remove some fields.
>
> This is on top of Paolo's RFC
> KVM: x86: speedups for emulator memory accesses
> https://lkml.org/lkml/2014/4/1/494
>
> Here are the new realmode.flat numbers with improvement
> wrt unpatched kernel -
>
> 639 cycles/emulated jump instruction (4.3%)
> 776 cycles/emulated move instruction (7.5%)
> 791 cycles/emulated arithmetic instruction (11%)
> 943 cycles/emulated memory load instruction (5.2%)
> 948 cycles/emulated memory store instruction (7.6%)
> 929 cycles/emulated memory RMW instruction (9.0%)
>
> v1 numbers -
> 639 cycles/emulated jump instruction
> 786 cycles/emulated move instruction
> 802 cycles/emulated arithmetic instruction
> 936 cycles/emulated memory load instruction
> 970 cycles/emulated memory store instruction
> 1000 cycles/emulated memory RMW instruction
>
> v3:
> Minor changes as proposed in review
>  - 3/6 - cleanup typos
>  - 6/6 - change comment in struct x86_emulate_ctxt and add back a missing
>        	 if in decode_modrm
>
> v2:
> All thanks and credit to Paolo!
>  - 1/6 - no change
>  - 2/6 - new patch, inercept and check_perm replaced with checks for bits in ctxt->d
>  - 3/6 - new patch, remove if condition in decode_rm and rearrange bit operations
>  - 4/6 - remove else conditions from v1 and misc cleanups
>  - 5/6 - new patch, remove seg_override and related fields and functions
>  - 6/6 - new patch, remove memopp and move rip_relative to a local variable in
>          decode_modrm
>
> Bandan Das (6):
>   KVM: emulate: move init_decode_cache to emulate.c
>   KVM: emulate: Remove ctxt->intercept and ctxt->check_perm checks
>   KVM: emulate: cleanup decode_modrm
>   KVM: emulate: clean up initializations in init_decode_cache
>   KVM: emulate: rework seg_override
>   KVM: emulate: remove memopp and rip_relative
>
>  arch/x86/include/asm/kvm_emulate.h | 26 +++++++-----
>  arch/x86/kvm/emulate.c             | 85 ++++++++++++++++++--------------------
>  arch/x86/kvm/x86.c                 | 13 ------
>  3 files changed, 56 insertions(+), 68 deletions(-)
>

Applied to a private branch collecting all the emulator speedups.  Thanks!

Paolo

      parent reply	other threads:[~2014-04-28 10:28 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-16 16:46 [RFC PATCH v3 0/6] Emulator speedups - avoid initializations where possible Bandan Das
2014-04-16 16:46 ` [RFC PATCH v3 1/6] KVM: emulate: move init_decode_cache to emulate.c Bandan Das
2014-04-16 16:46 ` [RFC PATCH v3 2/6] KVM: emulate: Remove ctxt->intercept and ctxt->check_perm checks Bandan Das
2014-04-16 16:46 ` [RFC PATCH v3 3/6] KVM: emulate: cleanup decode_modrm Bandan Das
2014-04-16 16:46 ` [RFC PATCH v3 4/6] KVM: emulate: clean up initializations in init_decode_cache Bandan Das
2014-04-16 16:46 ` [RFC PATCH v3 5/6] KVM: emulate: rework seg_override Bandan Das
2014-04-16 16:46 ` [RFC PATCH v3 6/6] KVM: emulate: remove memopp and rip_relative Bandan Das
2014-04-28 10:28 ` Paolo Bonzini [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=535E2D65.4090508@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=bsd@redhat.com \
    --cc=gleb@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtosatti@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 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.