From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: David Vrabel <david.vrabel@citrix.com>, alex.williamson@redhat.com
Cc: Sander Eikelenboom <linux@eikelenboom.it>,
bhelgaas@google.com, linux-pci@vger.kernel.org,
Boris Ostrovsky <boris.ostrovsky@oracle.com>,
linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [Xen-devel] [PATCH v5 9/9] xen/pciback: Implement PCI reset slot or bus with 'do_flr' SysFS attribute
Date: Thu, 4 Dec 2014 14:05:14 -0500 [thread overview]
Message-ID: <20141204190514.GB4545@laptop.dumpdata.com> (raw)
In-Reply-To: <5480702F.2060004@citrix.com>
On Thu, Dec 04, 2014 at 02:31:11PM +0000, David Vrabel wrote:
> On 04/12/14 14:09, Sander Eikelenboom wrote:
> >
> > Thursday, December 4, 2014, 2:43:06 PM, you wrote:
> >
> >> On 04/12/14 13:10, Sander Eikelenboom wrote:
> >>>
> >>> Thursday, December 4, 2014, 1:24:47 PM, you wrote:
> >>>
> >>>> On 04/12/14 12:06, Konrad Rzeszutek Wilk wrote:
> >>>>>
> >>>>> On Dec 4, 2014 6:30 AM, David Vrabel <david.vrabel@citrix.com> wrote:
> >>>>>>
> >>>>>> On 03/12/14 21:40, Konrad Rzeszutek Wilk wrote:
> >>>>>>>
> >>>>>>> Instead of doing all this complex dance, we depend on the toolstack
> >>>>>>> doing the right thing. As such implement the 'do_flr' SysFS attribute
> >>>>>>> which 'xl' uses when a device is detached or attached from/to a guest.
> >>>>>>> It bypasses the need to worry about the PCI lock.
> >>>>>>
> >>>>>> No. Get pciback to add its own "reset" sysfs file (as I have repeatedly
> >>>>>> proposed).
> >>>>>>
> >>>>>
> >>>>> Which does not work as the kobj will complain (as there is already an 'reset' associated with the PCI device).
> >>>
> >>>> It is only needed if the core won't provide one.
> >>>
> >>>> +static int pcistub_try_create_reset_file(struct pci_dev *pci)
> >>>> +{
> >>>> + struct xen_pcibk_dev_data *dev_data = pci_get_drvdata(pci);
> >>>> + struct device *dev = &pci->dev;
> >>>> + int ret;
> >>>> +
> >>>> + /* Already have a per-function reset? */
> >>>> + if (pci_probe_reset_function(pci) == 0)
> >>>> + return 0;
> >>>> +
> >>>> + ret = device_create_file(dev, &dev_attr_reset);
> >>>> + if (ret < 0)
> >>>> + return ret;
> >>> + dev_data->>created_reset_file = true;
> >>>> + return 0;
> >>>> +}
> >>>
> >>> Wouldn't the "core-reset-sysfs-file" be still wired to the end up calling
> >>> "pci.c:__pci_dev_reset" ?
> >>>
> >>> The problem with that function is that from my testing it seems that the
> >>> first option "pci_dev_specific_reset" always seems to return succes, so all the
> >>> other options are skipped (flr, pm, slot, bus). However the device it self is
> >>> not properly reset enough (perhaps the pci_dev_specific_reset is good enough for
> >>> none virtualization purposes and it's probably the least intrusive. For
> >>> virtualization however it would be nice to be sure it resets properly, or have a
> >>> way to force a specific reset routine.)
> >
> >> Then you need work with the maintainer for those specific devices or
> >> drivers to fix their specific reset function.
> >
> >> I'm not adding stuff to pciback to workaround broken quirks.
> >
> > OK that's a pretty clear message there, so if one wants to use pci and vga
> > passthrough one should better use KVM and vfio-pci.
>
> Have you (or anyone else) ever raised the problem with the broken reset
> quirk for certain devices with the relevant maintainer?
>
> > vfio-pci has:
> > - logic to do the try-slot-bus-reset logic
>
> Just because vfio-pci fixed it incorrectly doesn't mean pciback has to
> as well.
>
> It makes no sense for both pciback and vfio-pci to workaround problems
> with pci_function_reset() in different ways -- it should be fixed in the
> core PCI code so both can benefit and make use of the same code.
We seem to be going in circles.
This thread: http://patchwork.ozlabs.org/patch/368668/
has an interesting discussion that pretty much touches all of this
and I believe it ends with David agreeing with Alex that an
bus-reset is a perfect use-case.
I believe the contention was on how to expose this interface
to the user-space. David's was thinking to use 'reset' while
I used 'do_flr' (which is a misleading name but hte toolstack
already does it). Perhaps we should just have (as David suggested)
an 'bus_reset' on the devices.
I am going to go on a limb and presume that David was thinking
that this 'bus_reset' would be exposed in the generic PCI land?
>
> David
>
next prev parent reply other threads:[~2014-12-04 19:05 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-04 12:06 [PATCH v5 9/9] xen/pciback: Implement PCI reset slot or bus with 'do_flr' SysFS attribute Konrad Rzeszutek Wilk
2014-12-04 12:06 ` Konrad Rzeszutek Wilk
2014-12-04 12:24 ` David Vrabel
2014-12-04 12:24 ` [Xen-devel] " David Vrabel
2014-12-04 13:10 ` Sander Eikelenboom
2014-12-04 13:10 ` Sander Eikelenboom
2014-12-04 13:43 ` [Xen-devel] " David Vrabel
2014-12-04 14:09 ` Sander Eikelenboom
2014-12-04 14:09 ` [Xen-devel] " Sander Eikelenboom
2014-12-04 14:14 ` Sander Eikelenboom
2014-12-04 14:14 ` Sander Eikelenboom
2014-12-04 14:31 ` David Vrabel
2014-12-04 14:31 ` [Xen-devel] " David Vrabel
2014-12-04 14:50 ` Sander Eikelenboom
2014-12-04 14:50 ` [Xen-devel] " Sander Eikelenboom
2014-12-04 15:39 ` Alex Williamson
2014-12-04 16:25 ` Sander Eikelenboom
2014-12-04 16:25 ` [Xen-devel] " Sander Eikelenboom
2014-12-04 16:55 ` Alex Williamson
2014-12-04 16:55 ` [Xen-devel] " Alex Williamson
2014-12-05 10:30 ` David Vrabel
2014-12-05 17:22 ` Konrad Rzeszutek Wilk
2014-12-05 17:22 ` [Xen-devel] " Konrad Rzeszutek Wilk
2014-12-08 10:38 ` David Vrabel
2014-12-08 16:04 ` Konrad Rzeszutek Wilk
2014-12-08 16:04 ` [Xen-devel] " Konrad Rzeszutek Wilk
2014-12-08 10:38 ` David Vrabel
2014-12-05 10:30 ` David Vrabel
2014-12-04 15:39 ` Alex Williamson
2014-12-04 19:05 ` Konrad Rzeszutek Wilk [this message]
2014-12-04 19:05 ` Konrad Rzeszutek Wilk
2014-12-04 13:43 ` David Vrabel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141204190514.GB4545@laptop.dumpdata.com \
--to=konrad.wilk@oracle.com \
--cc=alex.williamson@redhat.com \
--cc=bhelgaas@google.com \
--cc=boris.ostrovsky@oracle.com \
--cc=david.vrabel@citrix.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux@eikelenboom.it \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.