From: Amey Narkhede <ameynarkhede03@gmail.com>
To: "Pali Rohár" <pali@kernel.org>
Cc: bhelgaas@google.com, alex.williamson@redhat.com,
raphael.norwitz@nutanix.com, linux-kernel@vger.kernel.org,
linux-pci@vger.kernel.org
Subject: Re: [PATCH 4/4] PCI/sysfs: Allow userspace to query and set device reset mechanism
Date: Mon, 15 Mar 2021 19:13:23 +0530 [thread overview]
Message-ID: <20210315134323.llz2o7yhezwgealp@archlinux> (raw)
In-Reply-To: <20210314235545.girtrazsdxtrqo2q@pali>
On 21/03/15 12:55AM, Pali Rohár wrote:
> On Friday 12 March 2021 23:04:52 ameynarkhede03@gmail.com wrote:
> > From: Amey Narkhede <ameynarkhede03@gmail.com>
> >
> > Add reset_methods_enabled bitmap to struct pci_dev to
> > keep track of user preferred device reset mechanisms.
> > Add reset_method sysfs attribute to query and set
> > user preferred device reset mechanisms.
> >
> > Signed-off-by: Amey Narkhede <ameynarkhede03@gmail.com>
> > ---
> > Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
> > Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
> >
> > Documentation/ABI/testing/sysfs-bus-pci | 15 ++++++
> > drivers/pci/pci-sysfs.c | 66 +++++++++++++++++++++++--
> > drivers/pci/pci.c | 3 +-
> > include/linux/pci.h | 2 +
> > 4 files changed, 82 insertions(+), 4 deletions(-)
> >
> > diff --git a/Documentation/ABI/testing/sysfs-bus-pci b/Documentation/ABI/testing/sysfs-bus-pci
> > index 25c9c3977..ae53ecd2e 100644
> > --- a/Documentation/ABI/testing/sysfs-bus-pci
> > +++ b/Documentation/ABI/testing/sysfs-bus-pci
> > @@ -121,6 +121,21 @@ Description:
> > child buses, and re-discover devices removed earlier
> > from this part of the device tree.
> >
> > +What: /sys/bus/pci/devices/.../reset_method
> > +Date: March 2021
> > +Contact: Amey Narkhede <ameynarkhede03@gmail.com>
> > +Description:
> > + Some devices allow an individual function to be reset
> > + without affecting other functions in the same slot.
> > + For devices that have this support, a file named reset_method
> > + will be present in sysfs. Reading this file will give names
> > + of the device supported reset methods. Currently used methods
> > + are enclosed in brackets. Writing the name of any of the device
> > + supported reset method to this file will set the reset method to
> > + be used when resetting the device. Writing "none" to this file
> > + will disable ability to reset the device and writing "default"
> > + will return to the original value.
> > +
>
> Hello Amey!
>
> I think that this API does not work for PCIe Hot Reset (=PCI secondary
> bus reset) and PCIe Warm Reset.
>
> First reset method is bound to the bus, not device and therefore kernel
> does not have to see any registered device. So there would be no
> "reset_method" sysfs file, and also no "reset" sysfs file. But PCIe Hot
> Reset is in most cases needed when buggy card is not registered on bus,
> to trigger this reset. And with this API this is not possible.
>
> PCIe Warm Reset is done by PERST# signal. When signal is asserted then
> device is in reset state and therefore is not registered. So again
> kernel does not have to see registered device.
>
> Moreover for mPCIe form factor cards, boards can share one PERST# signal
> with more PCIe cards and control this signal via GPIO. So asserting
> PERST# GPIO can trigger Warm reset for more PCIe cards, not just one. It
> depends on board or topology.
>
> So... I do not think that current approach with "reset_method" sysfs
> entry bound to the PCI device does not work for PCI secondary bus reset
> and also cannot be used for implementing PCIe Warm Reset.
>
> I would rather suggest to re-design and prepare a new API which would
> work also with PCIe Hot Reset and PCIe Warm Reset.
>
> This "reset" sysfs file can work only with PCI Function Level Reset or
> some PM or device specific reset. But not with reset types which are
> more like slot or bus orientated.
>
The scope of this patch was to expose current reset methods
to the userspace. Also reset methods are available
for only those devices that allow an individual function to be reset
without affecting other functions in the same device.
So if those conditions are satisfied by the device then it can
use slot reset (pci_dev_reset_slot_function) and secondary bus
reset(pci_parent_bus_reset) which I think are hot reset and
warm reset respectively.
Thanks,
Amey
[...]
next prev parent reply other threads:[~2021-03-15 13:44 UTC|newest]
Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-12 17:34 [PATCH 0/4] Expose and manage PCI device reset ameynarkhede03
2021-03-12 17:34 ` [PATCH 1/4] PCI: Refactor pcie_flr to follow calling convention of other reset methods ameynarkhede03
2021-03-12 17:34 ` [PATCH 2/4] PCI: Add new bitmap for keeping track of supported reset mechanisms ameynarkhede03
2021-03-14 23:51 ` Pali Rohár
2021-03-12 17:34 ` [PATCH 3/4] PCI: Remove reset_fn field from pci_dev ameynarkhede03
2021-03-14 23:52 ` Pali Rohár
2021-03-12 17:34 ` [PATCH 4/4] PCI/sysfs: Allow userspace to query and set device reset mechanism ameynarkhede03
2021-03-14 23:55 ` Pali Rohár
2021-03-15 13:43 ` Amey Narkhede [this message]
2021-03-15 13:52 ` Pali Rohár
2021-03-15 14:34 ` Alex Williamson
2021-03-15 14:52 ` Pali Rohár
2021-03-15 15:03 ` Alex Williamson
2021-03-17 19:02 ` Pali Rohár
2021-03-17 19:15 ` Alex Williamson
2021-03-17 19:24 ` Pali Rohár
2021-03-17 19:32 ` Alex Williamson
2021-03-17 19:40 ` Pali Rohár
2021-03-17 20:00 ` Alex Williamson
2021-03-17 20:13 ` Pali Rohár
2021-03-18 14:31 ` Amey Narkhede
2021-03-23 14:34 ` Pali Rohár
2021-03-23 14:44 ` Alex Williamson
2021-03-23 15:32 ` Amey Narkhede
2021-03-23 16:06 ` Alex Williamson
2021-03-23 16:15 ` Alex Williamson
2021-03-15 15:07 ` Leon Romanovsky
2021-03-15 15:33 ` Amey Narkhede
2021-03-15 16:29 ` Alex Williamson
2021-03-15 18:32 ` Raphael Norwitz
2021-03-17 4:20 ` Leon Romanovsky
2021-03-17 10:24 ` Amey Narkhede
2021-03-17 11:02 ` Leon Romanovsky
2021-03-17 11:23 ` Amey Narkhede
2021-03-17 11:47 ` Leon Romanovsky
2021-03-17 13:17 ` Amey Narkhede
2021-03-17 13:58 ` Leon Romanovsky
2021-03-17 17:31 ` Alex Williamson
2021-03-18 9:09 ` Leon Romanovsky
2021-03-18 14:22 ` Amey Narkhede
2021-03-18 14:57 ` Leon Romanovsky
2021-03-18 17:01 ` Amey Narkhede
2021-03-18 17:35 ` Leon Romanovsky
2021-03-18 17:43 ` Amey Narkhede
2021-03-18 18:14 ` Enrico Weigelt, metux IT consult
2021-03-19 13:05 ` Leon Romanovsky
2021-03-19 15:23 ` Amey Narkhede
2021-03-19 15:37 ` Leon Romanovsky
2021-03-19 15:53 ` Amey Narkhede
2021-03-18 17:58 ` Enrico Weigelt, metux IT consult
2021-03-19 13:07 ` Leon Romanovsky
2021-03-18 16:39 ` Alex Williamson
2021-03-18 17:22 ` Leon Romanovsky
2021-03-18 17:38 ` Amey Narkhede
2021-03-18 18:34 ` Enrico Weigelt, metux IT consult
2021-03-19 12:59 ` Leon Romanovsky
2021-03-19 13:48 ` Enrico Weigelt, metux IT consult
2021-03-19 15:51 ` Leon Romanovsky
2021-03-19 15:57 ` Bjorn Helgaas
2021-03-19 16:24 ` Leon Romanovsky
2021-03-19 16:23 ` Alex Williamson
2021-03-20 9:10 ` Leon Romanovsky
2021-03-20 14:59 ` Alex Williamson
2021-03-21 8:40 ` Leon Romanovsky
2021-03-21 14:57 ` Amey Narkhede
2021-03-22 17:10 ` Alex Williamson
2021-03-24 10:03 ` Leon Romanovsky
2021-03-24 14:37 ` Alex Williamson
2021-03-24 15:13 ` Leon Romanovsky
2021-03-24 17:17 ` Alex Williamson
2021-03-25 8:37 ` Leon Romanovsky
2021-03-25 14:55 ` Alex Williamson
2021-03-25 16:09 ` Leon Romanovsky
2021-03-25 17:22 ` Amey Narkhede
2021-03-25 17:36 ` Leon Romanovsky
2021-03-25 17:53 ` Alex Williamson
2021-03-26 6:40 ` Leon Romanovsky
2021-03-26 9:18 ` Krzysztof Wilczyński
2021-03-26 12:54 ` Leon Romanovsky
2021-03-26 14:20 ` Alex Williamson
2021-03-27 6:02 ` Leon Romanovsky
2021-03-25 16:26 ` Amey Narkhede
2021-03-25 16:46 ` Leon Romanovsky
2021-03-18 17:51 ` Enrico Weigelt, metux IT consult
[not found] ` <20210312112043.3f2954e3@omen.home.shazbot.org>
2021-03-12 18:40 ` [PATCH 0/4] Expose and manage PCI device reset Amey Narkhede
2021-03-12 18:58 ` Krzysztof Wilczyński
2021-03-12 19:06 ` Amey Narkhede
2021-03-12 19:20 ` Krzysztof Wilczyński
2021-03-13 2:02 ` Raphael Norwitz
2021-03-14 12:09 ` Leon Romanovsky
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=20210315134323.llz2o7yhezwgealp@archlinux \
--to=ameynarkhede03@gmail.com \
--cc=alex.williamson@redhat.com \
--cc=bhelgaas@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=pali@kernel.org \
--cc=raphael.norwitz@nutanix.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox