Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752964AbdHKOuM (ORCPT ); Fri, 11 Aug 2017 10:50:12 -0400 Received: from mx2.suse.de ([195.135.220.15]:36065 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752631AbdHKOuL (ORCPT ); Fri, 11 Aug 2017 10:50:11 -0400 Subject: Re: [PATCH] xen/events: Fix interrupt lost during irq_disable and irq_enable To: Liu Shuo , linux-kernel@vger.kernel.org Cc: Boris Ostrovsky , Thomas Gleixner , David Vrabel , Ingo Molnar , Anoob Soman , Vitaly Kuznetsov , Len Brown , KarimAllah Ahmed , "moderated list:XEN HYPERVISOR INTERFACE" References: <1501347598-15084-1-git-send-email-shuo.a.liu@intel.com> From: Juergen Gross Message-ID: <05e28568-6d4b-e081-0522-bf1234226a17@suse.com> Date: Fri, 11 Aug 2017 16:50:08 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <1501347598-15084-1-git-send-email-shuo.a.liu@intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: de-DE Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 771 Lines: 22 On 29/07/17 18:59, Liu Shuo wrote: > Here is a device has xen-pirq-MSI interrupt. Dom0 might lost interrupt > during driver irq_disable/irq_enable. Here is the scenario, > 1. irq_disable -> disable_dynirq -> mask_evtchn(irq channel) > 2. dev interrupt raised by HW and Xen mark its evtchn as pending > 3. irq_enable -> startup_pirq -> eoi_pirq -> > clear_evtchn(channel of irq) -> clear pending status > 4. consume_one_event process the irq event without pending bit assert > which result in interrupt lost once > 5. No HW interrupt raising anymore. > > Now use enable_dynirq for enable_pirq of xen_pirq_chip to remove > eoi_pirq when irq_enable. > > Signed-off-by: Liu Shuo Pushed to xen/tip.git for-linus-4.13b Thanks, Juergen