Re: [PATCH next V3 3/5] PCI: Print PCI device link status in kernel log

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/21/2018 10:10 PM, Bjorn Helgaas wrote:
On Wed, Mar 21, 2018 at 07:59:21PM +0000, Keller, Jacob E wrote:
-----Original Message-----
From: Bjorn Helgaas [mailto:helgaas@xxxxxxxxxx]
Sent: Wednesday, March 21, 2018 12:48 PM
To: Tal Gilboa <talgi@xxxxxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>; Linux PCI <linux-
pci@xxxxxxxxxxxxxxx>; Tariq Toukan <tariqt@xxxxxxxxxxxx>; Keller, Jacob E
<jacob.e.keller@xxxxxxxxx>
Subject: Re: [PATCH next V3 3/5] PCI: Print PCI device link status in kernel log

On Wed, Mar 21, 2018 at 09:43:48AM +0200, Tal Gilboa wrote:
On 3/20/2018 4:05 PM, Bjorn Helgaas wrote:
[+cc Jacob]

On Mon, Mar 12, 2018 at 02:06:08PM +0200, Tal Gilboa wrote:
Add pcie_print_link_status() function for querying and verifying
a PCI device link status. The PCI speed and width are reported
in kernel log.
This provides a unified method for all PCI devices to
report status and issues, instead of each device reporting in a
different way, using different code.

So let's see if we agree on the steps:
1. my_speed_cap, my_width_cap <- calculate device PCIe caps
2. avail_bw, limiting_dev <- calculate PCIe chain bandwidth
3. my_bw <- my_speed_cap * my_width_cap
4. If avail_bw == my_bw print available bandwidth + PCIe caps
5. Else print available bandwidth + limited by + capable bandwidth + PCIe
caps

What do you think?

Steps 2 and 3 might need to be smart enough to apply the effect of
encoding differences between generations.

In step 2, we don't have any current user of the "limiting_dev"
information, so I'd omit it until we have somebody who wants it.

In step 5, we don't know the "limited by" part (unless you want to add
that).

It might be useful to have the limited by information printed, even
if no driver yet bothered to do it today.

I wouldn't object to printing that information (although it increases
the challenge of making the message pithy), and it's basically free to
collect it.


Coding done, currently under internal review. Will submit right after.
I'm having some trouble printing the limiting device bus. Any recommendations on which format to use? dev->bus->name gives me the 6 first digits (e.g. "0000:07"). How do I get the last 3 (e.g. "00.0")? dev->bus->primary and dev->bus->number seem like good candidates but the actual values I get seem off.



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux