From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 19FB5C282DD for ; Mon, 8 Apr 2019 01:27:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DBD9020880 for ; Mon, 8 Apr 2019 01:27:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="A2QtCdQQ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726495AbfDHB1r (ORCPT ); Sun, 7 Apr 2019 21:27:47 -0400 Received: from mail-yw1-f67.google.com ([209.85.161.67]:38554 "EHLO mail-yw1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726412AbfDHB1q (ORCPT ); Sun, 7 Apr 2019 21:27:46 -0400 Received: by mail-yw1-f67.google.com with SMTP id m207so4366777ywd.5 for ; Sun, 07 Apr 2019 18:27:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=gMClCoGru9SbxhXyYZVyCMVONtLpGHa2M0yJ+er1miE=; b=A2QtCdQQSFDU4f21dwX6N79T3jCPQF4Hl46wepGY/kgsHKCgyN3BqiZ4C6rZmzJb31 cJ4G0Eirmq4Run87mh+cYOA9RdVF8kU3IMzCHvWobwxKT5d7daXNZjldNBGKpgftBkCW fn5vsbAfRp6H/ktj/pNb/XEOOk1spGSHW1AyZyjFdiO1Y60ODrBHIFUW95tofMZq7mWF guVHiT2Sb4sdIVbdT9lN6ydtDfpAWZyJUYUOdpi+8RVyCY5/kMyFPSRayuNOqqbBvPuM ENAu9Tixxmrtz8Qr7pduDB2yoEF8FNFaFKr9w4cckUpU6GPlMSgxDRW6TpJW/ZQfxZDs 34cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=gMClCoGru9SbxhXyYZVyCMVONtLpGHa2M0yJ+er1miE=; b=S9c4QiJt4YKm4FEleRPencujaAzUoC8lu1tgi1piud6k1zdep7qL3OQT1nmuToewiC VVDOmmDuhO4AsFGne86ENpR5f5kW+QA11W8i33FrFHUlgIgwmUC2g6lvIZ8qRtRNEFoG Td0vxgKQlnftBw1uM3DdCbuh1+6jczPRK05HcjexgCy6NrMs/9UpZHu0dOXDN1twAabN h0MvUnuUQBE9TfjqOl0hiSxUcHO2d18nd9CFKw8fMQcIzvgdIQy+g56RbYKbF+A/V7a6 ydMt7X/cYAdT3qKCp7oVsAAJJfj1IKV1gKD32b61Rtf24DrtKZHKW2EJ9SsgAlHu3Qgi qXkw== X-Gm-Message-State: APjAAAWXHjRWnH+Y3KUWfL5hvCeZKDfNtsSHuaSYScoipx49CUaHpXH6 Wf7PwbQQBDHn7DuXDPPzdDfS6UDJPd7vEhA5 X-Google-Smtp-Source: APXvYqxy+Tp7yCqsliZlcm1nenyTrrwCNgADPR4oKcQqfaY6gz4abEEnUxXxTT1UyQ2NuOAYRawlZQ== X-Received: by 2002:a81:441e:: with SMTP id r30mr21344710ywa.65.1554686865231; Sun, 07 Apr 2019 18:27:45 -0700 (PDT) Received: from localhost.localdomain (li931-65.members.linode.com. [45.56.113.65]) by smtp.gmail.com with ESMTPSA id 190sm10494919ywd.62.2019.04.07.18.27.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 07 Apr 2019 18:27:43 -0700 (PDT) From: Leo Yan To: "kvm@vger.kernel.org" , "kvmarm@lists.cs.columbia.edu" , Will Deacon , Jean-Philippe Brucker , Marc Zyngier , Eric Auger , Robin Murphy Cc: Leo Yan Subject: [PATCH v4 0/3] vfio-pci: Support INTx mode re-enabling Date: Mon, 8 Apr 2019 09:27:16 +0800 Message-Id: <20190408012719.16158-1-leo.yan@linaro.org> X-Mailer: git-send-email 2.17.1 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org When enable vfio-pci mode for NIC driver on Juno board, the IRQ is failed to forward properly from host to guest, finally root caused this issue is related with kvmtool cannot re-enable INTx mode properly. So the basic working flow to reproduce this issue is as below: Host Guest ------------- -------------------- INTx mode MSI enable failed in NIC driver MSI disable in NIC driver Switch back to INTx mode --> kvmtool doesn't support So this patch is to support INTx mode re-enabling; patch 0001 is one minor fixing up for eventfd releasing; patch 0002 introduces a new function vfio_pci_init_intx() which is used to finish INTx one-time initialisation; patch 0003 is the core patch for support INTx mode re-enabling, when kvmtool detects MSI is disabled it rollbacks to INTx mode. This patch set has been tested on Juno-r2 board. == Changes for V4 == * Removed the unnecessary comments in patch 0003 (Jean-Philippe). * Added Jean-Philippe's review tags. == Changes for V3 == * Add new function vfio_pci_init_intx() for one-time initialisation. * Simplized INTx re-enabling (don't change irq_line anymore at the runtime). Leo Yan (3): vfio-pci: Release INTx's unmask eventfd properly vfio-pci: Add new function for INTx one-time initialisation vfio-pci: Re-enable INTx mode when disable MSI/MSIX include/kvm/vfio.h | 1 + vfio/pci.c | 95 ++++++++++++++++++++++++++++++---------------- 2 files changed, 64 insertions(+), 32 deletions(-) -- 2.19.1