* [PATCH 1/3] powernv/pci: Use pnv_phb as the private data for debugfs entries
@ 2019-09-12 5:29 Oliver O'Halloran
2019-09-12 5:29 ` [PATCH 2/3] powernv/pci: Allow any write trigger the diag dump Oliver O'Halloran
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Oliver O'Halloran @ 2019-09-12 5:29 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Oliver O'Halloran
Use the pnv_phb structure as the private data pointer for the debugfs
files. This lets us delete some code and an open-coded use of
hose->private_data.
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
---
arch/powerpc/platforms/powernv/pci-ioda.c | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
index 2f650e1..b24339b 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -3044,19 +3044,12 @@ static void pnv_ioda_setup_pe_seg(struct pnv_ioda_pe *pe)
#ifdef CONFIG_DEBUG_FS
static int pnv_pci_diag_data_set(void *data, u64 val)
{
- struct pci_controller *hose;
- struct pnv_phb *phb;
+ struct pnv_phb *phb = data;
s64 ret;
if (val != 1ULL)
return -EINVAL;
- hose = (struct pci_controller *)data;
- if (!hose || !hose->private_data)
- return -ENODEV;
-
- phb = hose->private_data;
-
/* Retrieve the diag data from firmware */
ret = opal_pci_get_phb_diag_data2(phb->opal_id, phb->diag_data,
phb->diag_data_size);
@@ -3094,7 +3087,7 @@ static void pnv_pci_ioda_create_dbgfs(void)
continue;
}
- debugfs_create_file("dump_diag_regs", 0200, phb->dbgfs, hose,
+ debugfs_create_file("dump_diag_regs", 0200, phb->dbgfs, phb,
&pnv_pci_diag_data_fops);
}
#endif /* CONFIG_DEBUG_FS */
--
2.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] powernv/pci: Allow any write trigger the diag dump
2019-09-12 5:29 [PATCH 1/3] powernv/pci: Use pnv_phb as the private data for debugfs entries Oliver O'Halloran
@ 2019-09-12 5:29 ` Oliver O'Halloran
2019-09-12 5:29 ` [PATCH 3/3] powernv/pci: Add a debugfs entry to dump PHB's IODA PE state Oliver O'Halloran
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Oliver O'Halloran @ 2019-09-12 5:29 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Oliver O'Halloran
Make the dump trigger off any input rather than just '1'. This allows you
to write "echo 1> dump_diag_data" and it'll do what you want rather than
erroring out pointlessly.
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
---
arch/powerpc/platforms/powernv/pci-ioda.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
index b24339b..f684d3a 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -3047,9 +3047,6 @@ static int pnv_pci_diag_data_set(void *data, u64 val)
struct pnv_phb *phb = data;
s64 ret;
- if (val != 1ULL)
- return -EINVAL;
-
/* Retrieve the diag data from firmware */
ret = opal_pci_get_phb_diag_data2(phb->opal_id, phb->diag_data,
phb->diag_data_size);
--
2.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] powernv/pci: Add a debugfs entry to dump PHB's IODA PE state
2019-09-12 5:29 [PATCH 1/3] powernv/pci: Use pnv_phb as the private data for debugfs entries Oliver O'Halloran
2019-09-12 5:29 ` [PATCH 2/3] powernv/pci: Allow any write trigger the diag dump Oliver O'Halloran
@ 2019-09-12 5:29 ` Oliver O'Halloran
2019-09-23 8:10 ` Alexey Kardashevskiy
2019-09-23 8:08 ` [PATCH 1/3] powernv/pci: Use pnv_phb as the private data for debugfs entries Alexey Kardashevskiy
2020-01-29 5:17 ` Michael Ellerman
3 siblings, 1 reply; 6+ messages in thread
From: Oliver O'Halloran @ 2019-09-12 5:29 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Oliver O'Halloran
Add a debugfs entry to dump the state of the active IODA PEs. The IODA PE
state reflects how the PHB's internal concept of a PE is configured. This
is separate to the EEH PE state and is managed power the PowerNV PCI
backend rather than the EEH core.
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
---
arch/powerpc/platforms/powernv/pci-ioda.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
index f684d3a..941902b 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -3061,6 +3061,33 @@ static int pnv_pci_diag_data_set(void *data, u64 val)
DEFINE_SIMPLE_ATTRIBUTE(pnv_pci_diag_data_fops, NULL,
pnv_pci_diag_data_set, "%llu\n");
+static int pnv_pci_ioda_pe_dump(void *data, u64 val)
+{
+ struct pnv_phb *phb = data;
+ int pe_num;
+
+ for (pe_num = 0; pe_num < phb->ioda.total_pe_num; pe_num++) {
+ struct pnv_ioda_pe *pe = &phb->ioda.pe_array[pe_num];
+
+ if (!test_bit(pe_num, phb->ioda.pe_alloc))
+ continue;
+
+ pe_warn(pe, "rid: %04x dev count: %2d flags: %s%s%s%s%s%s\n",
+ pe->rid, pe->device_count,
+ (pe->flags & PNV_IODA_PE_DEV) ? "dev " : "",
+ (pe->flags & PNV_IODA_PE_BUS) ? "bus " : "",
+ (pe->flags & PNV_IODA_PE_BUS_ALL) ? "all " : "",
+ (pe->flags & PNV_IODA_PE_MASTER) ? "master " : "",
+ (pe->flags & PNV_IODA_PE_SLAVE) ? "slave " : "",
+ (pe->flags & PNV_IODA_PE_VF) ? "vf " : "");
+ }
+
+ return 0;
+}
+
+DEFINE_SIMPLE_ATTRIBUTE(pnv_pci_ioda_pe_dump_fops, NULL,
+ pnv_pci_ioda_pe_dump, "%llu\n");
+
#endif /* CONFIG_DEBUG_FS */
static void pnv_pci_ioda_create_dbgfs(void)
@@ -3086,6 +3113,8 @@ static void pnv_pci_ioda_create_dbgfs(void)
debugfs_create_file("dump_diag_regs", 0200, phb->dbgfs, phb,
&pnv_pci_diag_data_fops);
+ debugfs_create_file("dump_ioda_pe_state", 0200, phb->dbgfs, phb,
+ &pnv_pci_ioda_pe_dump_fops);
}
#endif /* CONFIG_DEBUG_FS */
}
--
2.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/3] powernv/pci: Use pnv_phb as the private data for debugfs entries
2019-09-12 5:29 [PATCH 1/3] powernv/pci: Use pnv_phb as the private data for debugfs entries Oliver O'Halloran
2019-09-12 5:29 ` [PATCH 2/3] powernv/pci: Allow any write trigger the diag dump Oliver O'Halloran
2019-09-12 5:29 ` [PATCH 3/3] powernv/pci: Add a debugfs entry to dump PHB's IODA PE state Oliver O'Halloran
@ 2019-09-23 8:08 ` Alexey Kardashevskiy
2020-01-29 5:17 ` Michael Ellerman
3 siblings, 0 replies; 6+ messages in thread
From: Alexey Kardashevskiy @ 2019-09-23 8:08 UTC (permalink / raw)
To: Oliver O'Halloran, linuxppc-dev
On 12/09/2019 15:29, Oliver O'Halloran wrote:
> Use the pnv_phb structure as the private data pointer for the debugfs
> files. This lets us delete some code and an open-coded use of
> hose->private_data.
>
> Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> ---
> arch/powerpc/platforms/powernv/pci-ioda.c | 11 ++---------
> 1 file changed, 2 insertions(+), 9 deletions(-)
>
> diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
> index 2f650e1..b24339b 100644
> --- a/arch/powerpc/platforms/powernv/pci-ioda.c
> +++ b/arch/powerpc/platforms/powernv/pci-ioda.c
> @@ -3044,19 +3044,12 @@ static void pnv_ioda_setup_pe_seg(struct pnv_ioda_pe *pe)
> #ifdef CONFIG_DEBUG_FS
> static int pnv_pci_diag_data_set(void *data, u64 val)
> {
> - struct pci_controller *hose;
> - struct pnv_phb *phb;
> + struct pnv_phb *phb = data;
> s64 ret;
>
> if (val != 1ULL)
> return -EINVAL;
>
> - hose = (struct pci_controller *)data;
> - if (!hose || !hose->private_data)
> - return -ENODEV;
> -
> - phb = hose->private_data;
> -
> /* Retrieve the diag data from firmware */
> ret = opal_pci_get_phb_diag_data2(phb->opal_id, phb->diag_data,
> phb->diag_data_size);
> @@ -3094,7 +3087,7 @@ static void pnv_pci_ioda_create_dbgfs(void)
> continue;
> }
>
> - debugfs_create_file("dump_diag_regs", 0200, phb->dbgfs, hose,
> + debugfs_create_file("dump_diag_regs", 0200, phb->dbgfs, phb,
> &pnv_pci_diag_data_fops);
> }
> #endif /* CONFIG_DEBUG_FS */
>
--
Alexey
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] powernv/pci: Add a debugfs entry to dump PHB's IODA PE state
2019-09-12 5:29 ` [PATCH 3/3] powernv/pci: Add a debugfs entry to dump PHB's IODA PE state Oliver O'Halloran
@ 2019-09-23 8:10 ` Alexey Kardashevskiy
0 siblings, 0 replies; 6+ messages in thread
From: Alexey Kardashevskiy @ 2019-09-23 8:10 UTC (permalink / raw)
To: Oliver O'Halloran, linuxppc-dev
On 12/09/2019 15:29, Oliver O'Halloran wrote:
> Add a debugfs entry to dump the state of the active IODA PEs. The IODA PE
> state reflects how the PHB's internal concept of a PE is configured. This
> is separate to the EEH PE state and is managed power the PowerNV PCI
> backend rather than the EEH core.
>
> Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
> ---
> arch/powerpc/platforms/powernv/pci-ioda.c | 29 +++++++++++++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
> index f684d3a..941902b 100644
> --- a/arch/powerpc/platforms/powernv/pci-ioda.c
> +++ b/arch/powerpc/platforms/powernv/pci-ioda.c
> @@ -3061,6 +3061,33 @@ static int pnv_pci_diag_data_set(void *data, u64 val)
> DEFINE_SIMPLE_ATTRIBUTE(pnv_pci_diag_data_fops, NULL,
> pnv_pci_diag_data_set, "%llu\n");
>
> +static int pnv_pci_ioda_pe_dump(void *data, u64 val)
> +{
> + struct pnv_phb *phb = data;
> + int pe_num;
> +
> + for (pe_num = 0; pe_num < phb->ioda.total_pe_num; pe_num++) {
> + struct pnv_ioda_pe *pe = &phb->ioda.pe_array[pe_num];
> +
> + if (!test_bit(pe_num, phb->ioda.pe_alloc))
> + continue;
> +
> + pe_warn(pe, "rid: %04x dev count: %2d flags: %s%s%s%s%s%s\n",
> + pe->rid, pe->device_count,
> + (pe->flags & PNV_IODA_PE_DEV) ? "dev " : "",
> + (pe->flags & PNV_IODA_PE_BUS) ? "bus " : "",
> + (pe->flags & PNV_IODA_PE_BUS_ALL) ? "all " : "",
> + (pe->flags & PNV_IODA_PE_MASTER) ? "master " : "",
> + (pe->flags & PNV_IODA_PE_SLAVE) ? "slave " : "",
> + (pe->flags & PNV_IODA_PE_VF) ? "vf " : "");
Printing raw flags value would hurt imho, just in case (we add some
later and forget about debugfs? memory corruption?). Or not :)
Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> + }
> +
> + return 0;
> +}
> +
> +DEFINE_SIMPLE_ATTRIBUTE(pnv_pci_ioda_pe_dump_fops, NULL,
> + pnv_pci_ioda_pe_dump, "%llu\n");
> +
> #endif /* CONFIG_DEBUG_FS */
>
> static void pnv_pci_ioda_create_dbgfs(void)
> @@ -3086,6 +3113,8 @@ static void pnv_pci_ioda_create_dbgfs(void)
>
> debugfs_create_file("dump_diag_regs", 0200, phb->dbgfs, phb,
> &pnv_pci_diag_data_fops);
> + debugfs_create_file("dump_ioda_pe_state", 0200, phb->dbgfs, phb,
> + &pnv_pci_ioda_pe_dump_fops);
> }
> #endif /* CONFIG_DEBUG_FS */
> }
>
--
Alexey
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/3] powernv/pci: Use pnv_phb as the private data for debugfs entries
2019-09-12 5:29 [PATCH 1/3] powernv/pci: Use pnv_phb as the private data for debugfs entries Oliver O'Halloran
` (2 preceding siblings ...)
2019-09-23 8:08 ` [PATCH 1/3] powernv/pci: Use pnv_phb as the private data for debugfs entries Alexey Kardashevskiy
@ 2020-01-29 5:17 ` Michael Ellerman
3 siblings, 0 replies; 6+ messages in thread
From: Michael Ellerman @ 2020-01-29 5:17 UTC (permalink / raw)
To: Oliver O'Halloran, linuxppc-dev; +Cc: Oliver O'Halloran
On Thu, 2019-09-12 at 05:29:43 UTC, Oliver O'Halloran wrote:
> Use the pnv_phb structure as the private data pointer for the debugfs
> files. This lets us delete some code and an open-coded use of
> hose->private_data.
>
> Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Series applied to powerpc next, thanks.
https://git.kernel.org/powerpc/c/22ba7289079be12c85895fee41602139e9553c93
cheers
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-01-29 5:28 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-12 5:29 [PATCH 1/3] powernv/pci: Use pnv_phb as the private data for debugfs entries Oliver O'Halloran
2019-09-12 5:29 ` [PATCH 2/3] powernv/pci: Allow any write trigger the diag dump Oliver O'Halloran
2019-09-12 5:29 ` [PATCH 3/3] powernv/pci: Add a debugfs entry to dump PHB's IODA PE state Oliver O'Halloran
2019-09-23 8:10 ` Alexey Kardashevskiy
2019-09-23 8:08 ` [PATCH 1/3] powernv/pci: Use pnv_phb as the private data for debugfs entries Alexey Kardashevskiy
2020-01-29 5:17 ` Michael Ellerman
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.