From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1031662AbbD2R7W (ORCPT ); Wed, 29 Apr 2015 13:59:22 -0400 Received: from smtp02.citrix.com ([66.165.176.63]:32947 "EHLO SMTP02.CITRIX.COM" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030924AbbD2R7P (ORCPT ); Wed, 29 Apr 2015 13:59:15 -0400 X-IronPort-AV: E=Sophos;i="5.11,671,1422921600"; d="scan'208";a="260002015" Message-ID: <55411BEF.5050605@citrix.com> Date: Wed, 29 Apr 2015 18:59:11 +0100 From: David Vrabel User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.4.0 MIME-Version: 1.0 To: Boris Ostrovsky , David Vrabel , CC: , , Subject: Re: [Xen-devel] [PATCH 1/4] xen/events: Clear cpu_evtchn_mask before resuming References: <1430236333-11905-1-git-send-email-boris.ostrovsky@oracle.com> <1430236333-11905-2-git-send-email-boris.ostrovsky@oracle.com> <553FB540.4040707@citrix.com> <553FD1A5.60409@oracle.com> <554107A6.50604@citrix.com> <55410CD6.2000708@oracle.com> In-Reply-To: <55410CD6.2000708@oracle.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-DLP: MIA2 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 29/04/15 17:54, Boris Ostrovsky wrote: > On 04/29/2015 12:32 PM, David Vrabel wrote: >> On 28/04/15 19:29, Boris Ostrovsky wrote: >>> On 04/28/2015 12:28 PM, David Vrabel wrote: >>>> >>>> From the commit log the evtchn_2l_resume() fucntion that's added >>>> sounds >>>> like it fixes the problem on its own? >>> It in fact makes this problem worse since now that cpu_evtchn_mask is >>> cleared during resume we cannot process the interrupt anymore in >>> evtchn_2l_handle_events(): irqs have to be bound to a cpu in order for >>> an interrupt to be processed. >> Perhaps evtchn_2l_resume() should set the local cpu mask for any bound >> event channels? And then you wouldn't need IRQ_MOVE_PCNTX. > > But then (at least in 2-level case) more than one VCPUs may pick the > same interrupt, won't they? Because the local cpu mask is what tells a > VCPU that it is allowed to claim an interrupt. We know that all event channels at this point are on VCPU0 (right?) so we only set the bit in that VCPU's mask. David