All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Tang Chen <tangchen@cn.fujitsu.com>,
	gleb@kernel.org, mtosatti@redhat.com, nadav.amit@gmail.com,
	jan.kiszka@web.de
Cc: kvm@vger.kernel.org, laijs@cn.fujitsu.com,
	isimatu.yasuaki@jp.fujitsu.com, guz.fnst@cn.fujitsu.com,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v8 0/8] kvm, mem-hotplug: Do not pin ept identity pagetable and apic access page.
Date: Wed, 24 Sep 2014 10:20:04 +0200	[thread overview]
Message-ID: <54227EB4.7070608@redhat.com> (raw)
In-Reply-To: <1411545478-9848-1-git-send-email-tangchen@cn.fujitsu.com>

Il 24/09/2014 09:57, Tang Chen ha scritto:
> ept identity pagetable and apic access page in kvm are pinned in memory.
> As a result, they cannot be migrated/hot-removed.
> 
> But actually they don't need to be pinned in memory.
> 
> [For ept identity page]
> Just do not pin it. When it is migrated, guest will be able to find the
> new page in the next ept violation.
> 
> [For apic access page]
> The hpa of apic access page is stored in VMCS APIC_ACCESS_ADDR pointer.
> When apic access page is migrated, we update VMCS APIC_ACCESS_ADDR pointer
> for each vcpu in addition.
> 
> This patch-set is based on Linux 3.17.0-rc5.
> 
> NOTE: Tested with -cpu xxx,-x2apic option.
>       But since nested vm pins some other pages in memory, if user uses nested
>       vm, memory hot-remove will not work.
> 
> Change log v7->v8:
> 1. Patch 1/9~3/9 were applied to kvm/queue by Paolo Bonzini <pbonzini@redhat.com>.
>    Just resend them, no changes.
> 2. Removed previous patch 4/9, which added unnecessary hook has_secondary_apic_access().
> 3. Set kvm_x86_ops->set_apic_access_page_addr to NULL when hardware had no flexpriority
>    functionality which actually exists only on x86. 
> 4. Moved declaration of kvm_arch_mmu_notifier_invalidate_page() to arch/*/include/asm/kvm_host.h.
> 5. Removed useless set_apic_access_page_addr() hook for svm.
> 
> Tang Chen (8):
>   kvm: Use APIC_DEFAULT_PHYS_BASE macro as the apic access page address.
>   kvm: Remove ept_identity_pagetable from struct kvm_arch.
>   kvm: Make init_rmode_identity_map() return 0 on success.
>   kvm, mem-hotplug: Reload L1's apic access page in vcpu_enter_guest().
>   kvm: Rename make_all_cpus_request() to kvm_make_all_cpus_request() and
>     make it non-static.
>   kvm, mem-hotplug: Reload L1's apic access page on migration when L2 is
>     running.
>   kvm, mem-hotplug: Add arch specific mmu notifier to handle apic access
>     migration.
>   kvm, mem-hotplug: Unpin and remove kvm_arch->apic_access_page.
> 
>  arch/arm/include/asm/kvm_host.h     |   5 ++
>  arch/arm64/include/asm/kvm_host.h   |   5 ++
>  arch/ia64/include/asm/kvm_host.h    |   7 ++
>  arch/mips/include/asm/kvm_host.h    |   6 ++
>  arch/powerpc/include/asm/kvm_host.h |   5 ++
>  arch/s390/include/asm/kvm_host.h    |   8 +++
>  arch/x86/include/asm/kvm_host.h     |   7 +-
>  arch/x86/kvm/svm.c                  |   3 +-
>  arch/x86/kvm/vmx.c                  | 130 ++++++++++++++++++++++++------------
>  arch/x86/kvm/x86.c                  |  45 +++++++++++--
>  include/linux/kvm_host.h            |   2 +
>  virt/kvm/kvm_main.c                 |  13 ++--
>  12 files changed, 180 insertions(+), 56 deletions(-)
> 

Thanks for your persistence!  The patches look good, I'll test them and
apply to kvm/queue.

Paolo

  parent reply	other threads:[~2014-09-24  8:20 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-24  7:57 [PATCH v8 0/8] kvm, mem-hotplug: Do not pin ept identity pagetable and apic access page Tang Chen
2014-09-24  7:57 ` [PATCH v8 1/8] kvm: Use APIC_DEFAULT_PHYS_BASE macro as the apic access page address Tang Chen
2014-09-24  7:57 ` [PATCH v8 2/8] kvm: Remove ept_identity_pagetable from struct kvm_arch Tang Chen
2014-09-24  7:57 ` [PATCH v8 3/8] kvm: Make init_rmode_identity_map() return 0 on success Tang Chen
2014-09-24  7:57 ` [PATCH v8 4/8] kvm, mem-hotplug: Reload L1's apic access page in vcpu_enter_guest() Tang Chen
2014-09-24 11:44   ` Paolo Bonzini
2014-09-24  7:57 ` [PATCH v8 5/8] kvm: Rename make_all_cpus_request() to kvm_make_all_cpus_request() and make it non-static Tang Chen
2014-09-24  7:57 ` [PATCH v8 6/8] kvm, mem-hotplug: Reload L1's apic access page on migration when L2 is running Tang Chen
2014-09-24  7:57 ` [PATCH v8 7/8] kvm, mem-hotplug: Add arch specific mmu notifier to handle apic access migration Tang Chen
2014-09-24  7:57 ` [PATCH v8 8/8] kvm, mem-hotplug: Unpin and remove kvm_arch->apic_access_page Tang Chen
2014-09-24  8:20 ` Paolo Bonzini [this message]
2014-09-24  8:25   ` [PATCH v8 0/8] kvm, mem-hotplug: Do not pin ept identity pagetable and apic access page Tang Chen
2014-09-25  8:19   ` Tang Chen
2014-09-25 13:43     ` Paolo Bonzini
2014-09-26  1:21       ` Tang Chen
2014-09-26  8:13         ` Paolo Bonzini

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=54227EB4.7070608@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=gleb@kernel.org \
    --cc=guz.fnst@cn.fujitsu.com \
    --cc=isimatu.yasuaki@jp.fujitsu.com \
    --cc=jan.kiszka@web.de \
    --cc=kvm@vger.kernel.org \
    --cc=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=nadav.amit@gmail.com \
    --cc=tangchen@cn.fujitsu.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.