From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751946AbbD2S3F (ORCPT ); Wed, 29 Apr 2015 14:29:05 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:48802 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750808AbbD2S3C (ORCPT ); Wed, 29 Apr 2015 14:29:02 -0400 Message-ID: <5541226D.3070501@oracle.com> Date: Wed, 29 Apr 2015 14:26:53 -0400 From: Boris Ostrovsky User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: David Vrabel , konrad.wilk@oracle.com CC: xen-devel@lists.xenproject.org, annie.li@oracle.com, linux-kernel@vger.kernel.org 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> <55411BEF.5050605@citrix.com> In-Reply-To: <55411BEF.5050605@citrix.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Source-IP: aserv0021.oracle.com [141.146.126.233] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/29/2015 01:59 PM, David Vrabel wrote: > 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. This is pretty much what I was suggesting since setting the mask is done via bind_evtchn_to_cpu(). Except that I also want to call EVTCHNOP_bind_vcpu before that, just in case. -boris