On Fri, 20 Jan 2017 14:04:08 +0800 Cao jin <caoj.f...@cn.fujitsu.com> wrote:
> On 01/19/2017 06:36 AM, Alex Williamson wrote: > > On Sat, 31 Dec 2016 17:13:08 +0800 > > Cao jin <caoj.f...@cn.fujitsu.com> wrote: > > > >> From: Chen Fan <chen.fan.f...@cn.fujitsu.com> > >> > >> Add 'aer' property, let user choose whether expose the aer capability > >> or not. > > > > But that's not what it does, it only controls the behavior in response > > to non-fatal errors, the capability is exposed regardless. > > > > This commit log is legacy, and defaults to off is a result of the > configuration restriction & your previous discussion, right? > > In current version, if 'aer' property is off, we just allocate the > config space via pcie_add_capability(), we don't init the AER > capability, the value is all 0s there, so does that still mean > "capability is exposed regardless"? The design has changed, we no longer require a matching host and guest topology, we can more easily transparently enable non-fatal error correction. We need to reevaluate whether previous decisions are still valid, we cannot blindly assume that a requirement for a previous design still applies. Thanks, Alex > >> Should disable aer feature by default, because only non-fatal > >> error is supported now. > > > > Why does that mean it should be disabled by default? What bad thing > > happens if we enable this opportunistically? > > > >> Signed-off-by: Chen Fan <chen.fan.f...@cn.fujitsu.com> > >> Signed-off-by: Dou Liyang <douly.f...@cn.fujitsu.com> > >> Signed-off-by: Cao jin <caoj.f...@cn.fujitsu.com> > >> --- > >> hw/vfio/pci.c | 2 ++ > >> 1 file changed, 2 insertions(+) > >> > >> diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c > >> index 9861f72..fc9db66 100644 > >> --- a/hw/vfio/pci.c > >> +++ b/hw/vfio/pci.c > >> @@ -3057,6 +3057,8 @@ static Property vfio_pci_dev_properties[] = { > >> DEFINE_PROP_UINT32("x-pci-sub-device-id", VFIOPCIDevice, > >> sub_device_id, PCI_ANY_ID), > >> DEFINE_PROP_UINT32("x-igd-gms", VFIOPCIDevice, igd_gms, 0), > >> + DEFINE_PROP_BIT("aer", VFIOPCIDevice, features, > >> + VFIO_FEATURE_ENABLE_AER_BIT, false), > >> /* > >> * TODO - support passed fds... is this necessary? > >> * DEFINE_PROP_STRING("vfiofd", VFIOPCIDevice, vfiofd_name), > > > > > > > > . > > >