From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= Subject: [PATCH v2 00/14] KVM: x86: change PIT discard policy and untangle related code Date: Wed, 17 Feb 2016 20:14:42 +0100 Message-ID: <1455736496-374-1-git-send-email-rkrcmar@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: kvm@vger.kernel.org, Paolo Bonzini , Yuki Shibuya To: linux-kernel@vger.kernel.org Return-path: Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org v2 - Different ordering; the important fix is first, which makes it easie= r to backport as improvements of [1/14] have complex dependencies. - Correct choice of atomics in [2/14]. - Explicit SMP barriers for lockless updates in [3/14]. - Protection against userspace races in kvm_vm_ioctl_reinject, [8/14]. - New code churn. (I tried to annotate locking, which required me to really look at the code and I couldn't leave it alone at that point; sorry.) This series only works with the discard policy, do you want to "fix" NM= I in the delay policy as well? (NMI delivery is still is going to be wrong by any standard, but will make some sense, at the cost of ugly code: we would always inject NMI when the timer fires and suppress NMI injection on EOI reinject.) Anatomy of the series: [1/14] fixes legacy NMI watchdog under discard policy. [2-7/14] prepare for optimization of the discard policy. [8/14] optimizes discard policy by removing notifiers. [9-14/14] slightly improve related code. I'm ok with dropping patches [2-14/14]. v1: http://www.spinics.net/lists/kvm/msg127017.html Radim Kr=C4=8Dm=C3=A1=C5=99 (14): KVM: x86: change PIT discard tick policy KVM: x86: simplify atomics in kvm_pit_ack_irq KVM: x86: add kvm_pit_reset_reinject KVM: x86: use atomic_t instead of pit.inject_lock KVM: x86: tone down WARN_ON pit.state_lock KVM: x86: pass struct kvm_pit instead of kvm in PIT KVM: x86: remove unnecessary uses of PIT state lock KVM: x86: remove notifiers from PIT discard policy KVM: x86: refactor kvm_create_pit KVM: x86: refactor kvm_free_pit KVM: x86: remove pit and kvm from kvm_kpit_state KVM: x86: remove pointless dereference of PIT KVM: x86: don't assume layout of kvm_kpit_state KVM: x86: move PIT timer function initialization arch/x86/kvm/i8254.c | 318 +++++++++++++++++++++++--------------------= -------- arch/x86/kvm/i8254.h | 15 +-- arch/x86/kvm/x86.c | 52 ++++++--- 3 files changed, 187 insertions(+), 198 deletions(-) --=20 2.7.1