[Pdbg] [PATCH v4 18/30] main: Avoid printing top level "proc" if no child is enabled
Amitay Isaacs
amitay at ozlabs.org
Wed Oct 9 15:27:17 AEDT 2019
On Wed, 2019-10-09 at 15:20 +1100, Alistair Popple wrote:
> On Thursday, 3 October 2019 2:18:57 PM AEDT Amitay Isaacs wrote:
> > Signed-off-by: Amitay Isaacs <amitay at ozlabs.org>
> > ---
> > src/main.c | 18 ++++++++++++++++++
> > 1 file changed, 18 insertions(+)
> >
> > diff --git a/src/main.c b/src/main.c
> > index f7f891a..09c236e 100644
> > --- a/src/main.c
> > +++ b/src/main.c
> > @@ -513,6 +513,21 @@ static bool parse_options(int argc, char
> > *argv[])
> > return true;
> > }
> >
> > +static bool child_enabled(struct pdbg_target *target)
> > +{
> > + struct pdbg_target *child;
> > +
> > + pdbg_for_each_child_target(target, child) {
> > + if (child_enabled(child))
> > + return true;
>
> We shouldn't have to re-curse down the tree here. If a child target
> is enabled
> it's parent must also be enabled. Unless this series has changed
> something
> here?
>
> > + if (pdbg_target_status(child) == PDBG_TARGET_ENABLED)
> > + return true;
> > + }
> > +
> > + return false;
> > +}
> > +
> > static void print_target(struct pdbg_target *target, int level)
> > {
> > int i;
> > @@ -520,6 +535,9 @@ static void print_target(struct pdbg_target
> > *target, int
> level)
> > enum pdbg_target_status status;
> > const char *classname;
> >
> > + if (level == 0 && !child_enabled(target))
>
> I must have missed something as I don't understand why this is
> necessary. The
> top level target should only be enabled if explicitly selected on the
> command
> line or if any of it's children are enabled so in either case it
> should be
> printed.
>
> - Alistair
>
> > + return;
> > +
> > /* Does this target actually exist? */
> > status = pdbg_target_status(target);
> > if (status != PDBG_TARGET_ENABLED)
> >
>
>
>
pdbg -a probe on any of the palm machines would produce following output:
# pdbg -a probe
proc0:
fsi0: Kernel based FSI master (*)
pib0: POWER FSI2PIB (*)
core9: POWER8 Core (*)
thread0: POWER8 Thread (*)
thread1: POWER8 Thread (*)
thread2: POWER8 Thread (*)
thread3: POWER8 Thread (*)
thread4: POWER8 Thread (*)
thread5: POWER8 Thread (*)
thread6: POWER8 Thread (*)
thread7: POWER8 Thread (*)
core11: POWER8 Core (*)
thread0: POWER8 Thread (*)
thread1: POWER8 Thread (*)
thread2: POWER8 Thread (*)
thread3: POWER8 Thread (*)
thread4: POWER8 Thread (*)
thread5: POWER8 Thread (*)
thread6: POWER8 Thread (*)
thread7: POWER8 Thread (*)
core12: POWER8 Core (*)
thread0: POWER8 Thread (*)
thread1: POWER8 Thread (*)
thread2: POWER8 Thread (*)
thread3: POWER8 Thread (*)
thread4: POWER8 Thread (*)
thread5: POWER8 Thread (*)
thread6: POWER8 Thread (*)
thread7: POWER8 Thread (*)
core13: POWER8 Core (*)
thread0: POWER8 Thread (*)
thread1: POWER8 Thread (*)
thread2: POWER8 Thread (*)
thread3: POWER8 Thread (*)
thread4: POWER8 Thread (*)
thread5: POWER8 Thread (*)
thread6: POWER8 Thread (*)
thread7: POWER8 Thread (*)
proc1:
Since proc1 is virtual, it gets enabled and printed in the output. This patch is to avoid priting proc1 in the probe output.
Amitay.
--
When an old person dies, a library is lost. - Tommy Swann
More information about the Pdbg
mailing list