2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-06 20:53:54 +08:00
linux-next/arch/x86/kvm
Takuya Yoshikawa 515a01279a KVM: pre-allocate one more dirty bitmap to avoid vmalloc()
Currently x86's kvm_vm_ioctl_get_dirty_log() needs to allocate a bitmap by
vmalloc() which will be used in the next logging and this has been causing
bad effect to VGA and live-migration: vmalloc() consumes extra systime,
triggers tlb flush, etc.

This patch resolves this issue by pre-allocating one more bitmap and switching
between two bitmaps during dirty logging.

Performance improvement:
  I measured performance for the case of VGA update by trace-cmd.
  The result was 1.5 times faster than the original one.

  In the case of live migration, the improvement ratio depends on the workload
  and the guest memory size. In general, the larger the memory size is the more
  benefits we get.

Note:
  This does not change other architectures's logic but the allocation size
  becomes twice. This will increase the actual memory consumption only when
  the new size changes the number of pages allocated by vmalloc().

Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
Signed-off-by: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
2011-01-12 11:28:46 +02:00
..
emulate.c KVM: fix typo in copyright notice 2010-10-24 10:53:14 +02:00
i8254.c KVM: fix typo in copyright notice 2010-10-24 10:53:14 +02:00
i8254.h KVM: x86: Introduce a workqueue to deliver PIT timer interrupts 2010-08-01 10:46:49 +03:00
i8259.c KVM: i8259: initialize isr_ack 2011-01-02 11:52:48 +02:00
irq.c KVM: fix typo in copyright notice 2010-10-24 10:53:14 +02:00
irq.h KVM: Convert PIC lock from raw spinlock to ordinary spinlock 2010-10-24 10:52:56 +02:00
Kconfig KVM: Halt vcpu if page it tries to access is swapped out 2011-01-12 11:21:39 +02:00
kvm_cache_regs.h KVM: MMU: Introduce kvm_pdptr_read_mmu 2010-10-24 10:52:42 +02:00
kvm_timer.h KVM: arch/x86/kvm/kvm_timer.h checkpatch cleanup 2010-05-17 12:14:42 +03:00
lapic.c KVM: Avoid double interrupt injection with vapic 2011-01-12 11:23:36 +02:00
lapic.h KVM: Add HYPER-V apic access MSRs 2010-03-01 12:36:00 -03:00
Makefile KVM: Halt vcpu if page it tries to access is swapped out 2011-01-12 11:21:39 +02:00
mmu_audit.c KVM: fix typo in copyright notice 2010-10-24 10:53:14 +02:00
mmu.c KVM: propagate fault r/w information to gup(), allow read-only memory 2011-01-12 11:28:40 +02:00
mmu.h KVM: MMU: Don't track nested fault info in error-code 2010-10-24 10:52:55 +02:00
mmutrace.h KVM: MMU: support disable/enable mmu audit dynamicly 2010-10-24 10:51:56 +02:00
paging_tmpl.h KVM: propagate fault r/w information to gup(), allow read-only memory 2011-01-12 11:28:40 +02:00
svm.c KVM: SVM: Fold save_host_msrs() and load_host_msrs() into their callers 2011-01-12 11:23:34 +02:00
timer.c KVM: fix typo in copyright notice 2010-10-24 10:53:14 +02:00
trace.h KVM: Trace emulated instructions 2010-05-17 12:17:35 +03:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c KVM: VMX: remove setting of shadow_base_ptes for EPT 2011-01-12 11:23:37 +02:00
x86.c KVM: pre-allocate one more dirty bitmap to avoid vmalloc() 2011-01-12 11:28:46 +02:00
x86.h KVM: SVM: Do not report xsave in supported cpuid 2010-12-08 17:28:37 +02:00