lkml.org 
[lkml]   [2020]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v8 07/13] perf stat: factor out event handling loop into dispatch_events()
    On Wed, Jun 17, 2020 at 11:40:03AM +0300, Alexey Budankov wrote:
    >
    > Consolidate event dispatching loops for fork, attach and system
    > wide monitoring use cases into common dispatch_events() function.
    >
    > Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
    > ---
    > tools/perf/builtin-stat.c | 35 ++++++++++++++++++++++++-----------
    > 1 file changed, 24 insertions(+), 11 deletions(-)
    >
    > diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
    > index 3bc538576607..39749c290508 100644
    > --- a/tools/perf/builtin-stat.c
    > +++ b/tools/perf/builtin-stat.c
    > @@ -557,6 +557,27 @@ static bool is_target_alive(struct target *_target,
    > return false;
    > }
    >
    > +static int dispatch_events(bool forks, int timeout, int interval, int *times, struct timespec *ts)
    > +{
    > + bool stop = false;
    > + int child = 0, status = 0;
    > +
    > + while (1) {
    > + if (forks)
    > + child = waitpid(child_pid, &status, WNOHANG);
    > + else
    > + child = !is_target_alive(&target, evsel_list->core.threads) ? 1 : 0;

    please renme child to something more accurate, so the condition
    below makes more sense, like child_stoped or such

    jirka

    > +
    > + if (done || stop || child)
    > + break;
    > +
    > + nanosleep(ts, NULL);
    > + stop = process_timeout(timeout, interval, times);
    > + }
    > +
    > + return status;
    > +}
    > +

    SNIP

    \
     
     \ /
      Last update: 2020-06-23 16:56    [W:2.119 / U:0.216 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site