Hi John,
Sorry just a "ping" on this still pending patch (or better two patches if
you agree with what I mentioned in the previous email).

Many thanks!
Federico


Il giorno mer 14 apr 2021 alle ore 05:15 Federico Pellegrin <
[email protected]> ha scritto:

>
> Hi John,
> Thanks for the feedback!
>
> This patch should be applied on the top of the 9/9 of the previous bunch
> (this one:
> https://lists.fedorahosted.org/archives/list/[email protected]/thread/JAC5IL6A6GNFL2MI5EPS3NEPWA6PWCLU/
> ) that is still pending, as I was assuming that could go in too ([PATCH
> 9/9] tuna_gui: add command line option to explicitly disable perf usage). I
> believe if you apply that too, then it should be fine.
>
> In my opinion that 9/9 patch should be still useful, as it covers still
> some use cases, depending what information one is after (since ie. when in
> perf mode you don't get context switches or so), which cannot be fulfilled
> if we force always the user to go (when automatically detected on the
> system) in "perf mode".
>
> Of course if you don't agree with that one (or if applying both still
> creates problems), please just let me know and I'll immediately submit a
> new version of this patch that doesn't rely it, so it can be merged cleanly.
>
> Thanks!
> Federico
>
>
>
> Il giorno mar 13 apr 2021 alle ore 22:38 John Kacur <[email protected]>
> ha scritto:
>
>>
>>
>> On Thu, 25 Mar 2021, Federico Pellegrin wrote:
>>
>> > When in perf mode (so not polling) previously the GUI would be
>> > refreshed at the arrival of any single perf event. This may mean
>> > that it would get refreshed all the time especially on quite loaded
>> > systems, causing very high CPU load and unuseable GUI.
>> >
>> > The patch limits the refresh to the minimum refresh_time (already
>> > used for polling and configurable via -R command line by the user)
>> > to prevent such cases. If no events arrive, the GUI will still not
>> > be refreshed at all as before.
>> >
>> > Signed-off-by: Federico Pellegrin <[email protected]>
>> > ---
>> >  tuna/gui/procview.py | 14 ++++++++++----
>> >  tuna/tuna_gui.py     |  2 +-
>> >  2 files changed, 11 insertions(+), 5 deletions(-)
>> >
>> > diff --git a/tuna/gui/procview.py b/tuna/gui/procview.py
>> > index c224e4b..dc2e94e 100755
>> > --- a/tuna/gui/procview.py
>> > +++ b/tuna/gui/procview.py
>> > @@ -219,6 +219,7 @@ class procview:
>> >          self.treeview = treeview
>> >          self.nr_cpus = procfs.cpuinfo().nr_cpus
>> >          self.gladefile = gladefile
>> > +        self.evlist_added = True
>> >
>> >          self.evlist = None
>> >          if not disable_perf:
>> > @@ -347,7 +348,7 @@ class procview:
>> >                          else:
>> >                              self.perf_counter[tid] =
>> event.sample_period
>> >
>> > -        self.show()
>> > +        self.evlist_added = True  # Mark that event arrived, so next
>> periodic show() will refresh GUI
>> >          return True
>> >
>> >      def perf_init(self):
>> > @@ -426,9 +427,14 @@ class procview:
>> >          # create the rows.
>> >          if not self.refreshing and not force_refresh:
>> >              return
>> > -        row = self.tree_store.get_iter_first()
>> > -        self.update_rows(self.ps, row, None)
>> > -        self.treeview.show_all()
>> > +
>> > +        # If using perf only refresh if we saw at least a new event
>> since last refresh
>> > +        if not self.evlist or self.evlist_added:
>> > +            self.evlist_added = None
>> > +
>> > +            row = self.tree_store.get_iter_first()
>> > +            self.update_rows(self.ps, row, None)
>> > +            self.treeview.show_all()
>> >
>> >      def update_rows(self, threads, row, parent_row):
>> >          new_tids = list(threads.keys())
>> > diff --git a/tuna/tuna_gui.py b/tuna/tuna_gui.py
>> > index 83af063..f1f2caa 100755
>> > --- a/tuna/tuna_gui.py
>> > +++ b/tuna/tuna_gui.py
>> > @@ -146,7 +146,7 @@ class main_gui:
>> >          if not self.procview.evlist: # Poll, as we don't have perf
>> >              self.ps.reload()
>> >              self.ps.reload_threads()
>> > -            self.procview.show()
>> > +        self.procview.show()
>> >          self.irqview.refresh()
>> >          return True
>> >
>> > --
>> > 2.26.3
>> >
>> >
>>
>> I like the idea but the patch does not apply cleanly, do you want to take
>> a look?
>>
>> Thanks
>>
>> John
>>
>
_______________________________________________
tuna-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedorahosted.org/archives/list/[email protected]
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to