Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1500288 > unrolled thread
| Started by | Wanpeng Li <kernellwp@gmail.com> |
|---|---|
| First post | 2016-10-13 16:10 +0200 |
| Last post | 2016-10-14 14:20 +0200 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH RFC V3 0/6] KVM: LAPIC: Add APIC Timer periodic/oneshot mode VMX preemption timer support Wanpeng Li <kernellwp@gmail.com> - 2016-10-13 16:10 +0200
Re: [PATCH RFC V3 0/6] KVM: LAPIC: Add APIC Timer periodic/oneshot mode VMX preemption timer support Wanpeng Li <kernellwp@gmail.com> - 2016-10-14 12:10 +0200
Re: [PATCH RFC V3 0/6] KVM: LAPIC: Add APIC Timer periodic/oneshot mode VMX preemption timer support Paolo Bonzini <pbonzini@redhat.com> - 2016-10-14 13:20 +0200
Re: [PATCH RFC V3 0/6] KVM: LAPIC: Add APIC Timer periodic/oneshot mode VMX preemption timer support Paolo Bonzini <pbonzini@redhat.com> - 2016-10-14 14:20 +0200
| From | Wanpeng Li <kernellwp@gmail.com> |
|---|---|
| Date | 2016-10-13 16:10 +0200 |
| Subject | [PATCH RFC V3 0/6] KVM: LAPIC: Add APIC Timer periodic/oneshot mode VMX preemption timer support |
| Message-ID | <srMwF-2X1-5@gated-at.bofh.it> |
Most windows guests which I have on hand currently still utilize APIC Timer periodic/oneshot mode instead of APIC Timer tsc-deadline mode: - windows 2008 server r2 - windows 2012 server r2 - windows 7 - windows 10 This patchset adds the APIC Timer periodic/oneshot mode VMX preemption timer support. I test the patchset by modifying kvm-unit-test/apic.flat to test 10w times APIC timer operations (from guest writes LVTT to timer fire and return to guest). The patchset reduces ~300+ clock cycles for each APIC timer oneshot mode operation virtualization. However, the performance of periodic mode is still bad, so this version is still a RFC. Your comments to improve the patchset is a great appreciated. v2 -> v3: * remove kvm_lapic_hv_timer_in_use() check in apic_get_tmcc, replace the hritmer_get_remaining() by target_expiration - now * rename expired_period to target_expiration * introduce set_target_expiration() helper * move the checking of minimal period to set_target_expiration() * cleanup kvm_get_lapic_target_deadline_tsc() v1 -> v2: * remember the timeout when setting up the timer to get a correct TMCCT * move apic->lapic_timer.period/tscdeadline caculations to start_apic_timer() Wanpeng Li (6): KVM: LAPIC: extract start_sw_period() to handle periodic/oneshot mode KVM: LAPIC: guarantee the timer is in tsc-deadline mode when rdmsr MSR_IA32_TSCDEADLINE KVM: LAPIC: introduce set_target_expiration to set target expiration time KVM: LAPIC: introduce kvm_get_lapic_target_expiration_tsc() to get APIC Timer target deadline tsc KVM: LAPIC: rename start/cancel_hv_tscdeadline to start/cancel_hv_timer KVM: LAPIC: Add APIC Timer periodic/oneshot mode VMX preemption timer support arch/x86/kvm/lapic.c | 173 +++++++++++++++++++++++++++++++-------------------- arch/x86/kvm/lapic.h | 2 + arch/x86/kvm/x86.c | 2 +- 3 files changed, 109 insertions(+), 68 deletions(-) -- 1.9.1
[toc] | [next] | [standalone]
| From | Wanpeng Li <kernellwp@gmail.com> |
|---|---|
| Date | 2016-10-14 12:10 +0200 |
| Subject | Re: [PATCH RFC V3 0/6] KVM: LAPIC: Add APIC Timer periodic/oneshot mode VMX preemption timer support |
| Message-ID | <ss7B7-8l7-17@gated-at.bofh.it> |
| In reply to | #1500288 |
2016-10-13 19:34 GMT+08:00 Wanpeng Li <kernellwp@gmail.com>: [...] > > The patchset reduces ~300+ clock cycles for each APIC timer oneshot mode > operation virtualization. However, the performance of periodic mode is > still bad, so this version is still a RFC. Your comments to improve the > patchset is a great appreciated. I observed that the clock cycles between the start of kvm_lapic_expired_hv_timer() (periodic mode emulated through restart a preemption timer after the last preemption timer vmexit) to kvm_inject_apic_timer_irqs() is almost half of the clock cycles between the start of apic_timer_fn() (periodic mode emulated through hrtimer) to kvm_inject_apic_timers_irqs(), so the overhead of preemption timer is lower in this path. Maybe something is still not correct in other places which results in performance of periodic mode emulated by VMX preemption timer is still not good. Any help is a great appreciated. :) Radim, Paolo, ping :) Regards, Wanpeng Li
[toc] | [prev] | [next] | [standalone]
| From | Paolo Bonzini <pbonzini@redhat.com> |
|---|---|
| Date | 2016-10-14 13:20 +0200 |
| Subject | Re: [PATCH RFC V3 0/6] KVM: LAPIC: Add APIC Timer periodic/oneshot mode VMX preemption timer support |
| Message-ID | <ss8GS-zD-5@gated-at.bofh.it> |
| In reply to | #1500820 |
On 14/10/2016 12:05, Wanpeng Li wrote: > 2016-10-13 19:34 GMT+08:00 Wanpeng Li <kernellwp@gmail.com>: > [...] >> >> The patchset reduces ~300+ clock cycles for each APIC timer oneshot mode >> operation virtualization. However, the performance of periodic mode is >> still bad, so this version is still a RFC. Your comments to improve the >> patchset is a great appreciated. > > I observed that the clock cycles between the start of > kvm_lapic_expired_hv_timer() (periodic mode emulated through restart a > preemption timer after the last preemption timer vmexit) to > kvm_inject_apic_timer_irqs() is almost half of the clock cycles > between the start of apic_timer_fn() (periodic mode emulated through > hrtimer) to kvm_inject_apic_timers_irqs(), so the overhead of > preemption timer is lower in this path. Maybe something is still not > correct in other places which results in performance of periodic mode > emulated by VMX preemption timer is still not good. Any help is a > great appreciated. :) > > Radim, Paolo, ping :) Just post the patches and we'll see. :) Another useful thing to do is to prepare testcases similar to tscdeadline_latency, but using the periodic and oneshot modes. Paolo
[toc] | [prev] | [next] | [standalone]
| From | Paolo Bonzini <pbonzini@redhat.com> |
|---|---|
| Date | 2016-10-14 14:20 +0200 |
| Subject | Re: [PATCH RFC V3 0/6] KVM: LAPIC: Add APIC Timer periodic/oneshot mode VMX preemption timer support |
| Message-ID | <ss9CW-197-11@gated-at.bofh.it> |
| In reply to | #1500834 |
On 14/10/2016 14:06, Wanpeng Li wrote: > thing to do is > to prepare testcases similar to tscdeadline_latency, but using the > periodic and oneshot modes. > > > I have already post a kvm-unit-test/ apic.flat patch which can test > periodic mode latency. :) That one runs for a very short time, it's different from tscdeadline_latency. Paolo
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web