From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965097AbcCNM1R (ORCPT ); Mon, 14 Mar 2016 08:27:17 -0400 Received: from mail-wm0-f42.google.com ([74.125.82.42]:37903 "EHLO mail-wm0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964849AbcCNM1J (ORCPT ); Mon, 14 Mar 2016 08:27:09 -0400 Subject: Re: [PART1 RFC v2 06/10] svm: Add interrupt injection via AVIC To: Suravee Suthikulpanit , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= References: <1457124368-2025-1-git-send-email-Suravee.Suthikulpanit@amd.com> <1457124368-2025-7-git-send-email-Suravee.Suthikulpanit@amd.com> <56DD9FF5.7010201@redhat.com> <20160308215424.GA31328@potion.brq.redhat.com> <56E004A2.70702@redhat.com> <20160309160050.GB31328@potion.brq.redhat.com> <56E6874E.4010807@amd.com> Cc: joro@8bytes.org, bp@alien8.de, gleb@kernel.org, alex.williamson@redhat.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, wei@redhat.com, sherry.hurwitz@amd.com From: Paolo Bonzini Message-ID: <56E6AE14.2060909@redhat.com> Date: Mon, 14 Mar 2016 13:27:00 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <56E6874E.4010807@amd.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 14/03/2016 10:41, Suravee Suthikulpanit wrote: >>>>>> >>>>>> + kvm_lapic_set_vector(vec, avic_get_bk_page_entry(svm, >>>>>> APIC_IRR)); >>>> >>>> (I think that smp_mb here would make sense, even though we're fine now >>>> thanks to re-checking vcpu->mode in kvm_vcpu_kick. >>> >>> Right, though only a smp_mb__after_atomic() is required (which is a >>> compiler barrier). It is similarly required in vmx. >> >> True, kvm_lapic_set_vector uses a lock prefix. >> >> (I thought it behaves like atomic_set, which would require MFENCE for >> correct ordering here ... I don't like smp_mb__after_atomic much >> because of the discrepancy on some atomic operations.) >> > > So, should i just use smb_mb() in this case? You should use smp_mb__after_atomic(). Paolo