From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Williamson Subject: Re: [PATCH] vfio-pci: PCI hot reset interface Date: Mon, 19 Aug 2013 16:59:37 -0600 Message-ID: <1376953177.2657.33.camel@ul30vt.home> References: <20130814200845.21923.64284.stgit@bling.home> <1376521578.13642.65.camel@ul30vt.home> <1376937682.2657.15.camel@ul30vt.home> <1376952167.25016.85.camel@pasglop> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: Bjorn Helgaas , "linux-pci@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" , Alexander Viro , linux-fsdevel To: Benjamin Herrenschmidt Return-path: In-Reply-To: <1376952167.25016.85.camel@pasglop> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Tue, 2013-08-20 at 08:42 +1000, Benjamin Herrenschmidt wrote: > On Mon, 2013-08-19 at 14:02 -0600, Bjorn Helgaas wrote: > > I guess. And supply the pci_slot rather than the pci_dev? I'm a > > little bit worried because the idea of a "slot" is not well-defined in > > the spec, and we have sort of an ad hoc method of discovering and > > managing them, e.g., acpiphp and pciehp might discover the same slot. > > But I guess that's no reason to bury generic code in vfio. > > And I don't have pci_slot's at all yet on powerpc "powernv" (the host > platform for KVM) since at this stage we don't support physical hotplug > on the target machines... > > Alex, why specifically looking for "slots" here ? I don't quite > understand. It makes sense to be able to reset individual devices > whether they are on the otherboard, behind extension chassis or directly > on slots... a) resetting a slot may have a smaller footprint than resetting a bus, b) hotplug controllers sometimes need to be involved in a bus reset. For b) I have a specific example where my Lenovo S20 workstation has an onboard tg3 NIC attached to a root port supporting pciehp (go figure since the tg3 is soldered onto the motherboard) and doing a secondary bus reset at the root port triggers a presence detection change and therefore tries to do a surprise removal. By doing a "slot" reset, I have the hotplug controller code manage the bus reset by disabling presence detection around the bus reset. If you don't have slots and you don't need anything special around a secondary bus reset, you're fine. It's just an opportunity to provide a hook for the hotplug controller to participate. Thanks, Alex