From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steve Rutherford Subject: Re: [RFC PATCH 3/4] KVM: x86: Add EOI exit bitmap inference Date: Wed, 13 May 2015 15:21:00 -0700 Message-ID: <20150513222100.GC23867@google.com> References: <1431481652-27268-1-git-send-email-srutherford@google.com> <1431481652-27268-3-git-send-email-srutherford@google.com> <5552EB35.2070806@siemens.com> <555305A5.8060601@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Jan Kiszka , kvm@vger.kernel.org, ahonig@google.com To: Paolo Bonzini Return-path: Received: from mail-ie0-f180.google.com ([209.85.223.180]:34572 "EHLO mail-ie0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934135AbbEMWVG (ORCPT ); Wed, 13 May 2015 18:21:06 -0400 Received: by iecmd7 with SMTP id md7so45410806iec.1 for ; Wed, 13 May 2015 15:21:05 -0700 (PDT) Content-Disposition: inline In-Reply-To: <555305A5.8060601@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Wed, May 13, 2015 at 10:04:53AM +0200, Paolo Bonzini wrote: > > > On 13/05/2015 08:12, Jan Kiszka wrote: > >> +void kvm_scan_ioapic_routes(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap) > >> +{ > >> + struct kvm *kvm = vcpu->kvm; > >> + struct kvm_kernel_irq_routing_entry *entry; > >> + struct kvm_irq_routing_table *table; > >> + u32 i, nr_rt_entries; > >> + > >> + mutex_lock(&kvm->irq_lock); > > This only needs irq_srcu protection, not irq_lock, so the lookup cost > becomes much smaller (all CPUs can proceed in parallel). > > You would need to put an smp_mb here, to ensure that irq_routing is read > after KVM_SCAN_IOAPIC is cleared. You can introduce > smb_mb__after_srcu_read_lock in order to elide it. > > The matching memory barrier would be a smp_mb__before_atomic in > kvm_make_scan_ioapic_request. > Makes sense, I'll update this for the next iteration. Steve