From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36502) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YxROa-0002ie-8r for qemu-devel@nongnu.org; Tue, 26 May 2015 22:48:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YxROW-0005EH-6n for qemu-devel@nongnu.org; Tue, 26 May 2015 22:48:40 -0400 Received: from [59.151.112.132] (port=15496 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YxROV-00059J-GP for qemu-devel@nongnu.org; Tue, 26 May 2015 22:48:36 -0400 From: Chen Fan Date: Wed, 27 May 2015 10:46:21 +0800 Message-ID: MIME-Version: 1.0 Content-Type: text/plain Subject: [Qemu-devel] [RFC v8.1 00/13] vfio-pci: pass the aer error to guest List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: izumi.taku@jp.fujitsu.com, alex.williamson@redhat.com For now, for vfio pci passthough devices when qemu receives an error from host aer report, there just terminate the guest, but usually user want to know what error occurred but stop the guest, so this patches add aer capability support for vfio device, and pass the error to guest, and have guest driver to recover from the error. and turning on SERR# for error forwording in bridge control register patch in seabios has been merged. v8-v8.1: 1. add check the case when one aer devices is re-hotplugged to upper bus which will conflict the present which enable aer. 2. add vfio_pci_affect_devices_is_multi to specify signal or multi in-use when call hot reset. v7-v8: 1. some bug fixes requested by Alex v6-v7: 1. add has_bus_reset to support reset host bus. v5-v6: 1. add secondary bus callbacks to reset host bus. v3-v4: 1. add 'x-aer' for user to off aer capability. 2. refactor vfio device to parse extended capabilities. v2-v3: 1. refactor vfio device to parse extended capability. 2. add global property for piix4 to disable vfio aer cap. v1-v2: 1. turn on SERR# for bridge control register in firmware. 2. initilize aer capability for vfio device. 3. fix some trivial bug. Chen Fan (13): vfio: extract vfio_get_hot_reset_info as a single function vfio: squeeze out vfio_pci_do_hot_reset for support bus reset vfio: add pcie extanded capability support aer: impove pcie_aer_init to support vfio device vfio: add aer support for vfio device vfio: add check host bus reset is support or not vfio: add check for vfio devices which enable aer should support bus reset pci: add bus reset_notifiers callbacks for host bus reset vfio: add sec_bus_reset notifier to notify physical bus reset is needed vfio: do hot bus reset when do virtual secondary bus reset pcie_aer: expose pcie_aer_msg() interface vfio-pci: pass the aer error to guest vfio: add 'aer' property to expose aercap hw/pci-bridge/ioh3420.c | 2 +- hw/pci-bridge/xio3130_downstream.c | 2 +- hw/pci-bridge/xio3130_upstream.c | 2 +- hw/pci/pci.c | 16 + hw/pci/pci_bridge.c | 5 + hw/pci/pcie_aer.c | 6 +- hw/vfio/pci.c | 587 +++++++++++++++++++++++++++++++++---- include/hw/pci/pci.h | 4 + include/hw/pci/pci_bus.h | 2 + include/hw/pci/pcie_aer.h | 3 +- 10 files changed, 566 insertions(+), 63 deletions(-) -- 1.9.3