All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: "Bayduraev, Alexey V" <alexey.v.bayduraev@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Andi Kleen <ak@linux.intel.com>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Alexander Antonov <alexander.antonov@linux.intel.com>,
	Alexei Budankov <abudankov@huawei.com>,
	Riccardo Mancini <rickyman7@gmail.com>
Subject: Re: [PATCH v3 6/8] perf session: Move event read code to separate function
Date: Mon, 11 Oct 2021 15:21:19 +0200	[thread overview]
Message-ID: <YWQ6TyyYRfx9AXLH@krava> (raw)
In-Reply-To: <f8d0accb-b569-3fcd-ffe5-99e2fab4c8b7@linux.intel.com>

On Mon, Oct 11, 2021 at 12:53:30PM +0300, Bayduraev, Alexey V wrote:
> 
> 
> On 11.10.2021 12:08, Bayduraev, Alexey V wrote:
> > 
> > On 08.10.2021 17:38, Jiri Olsa wrote:
> >> On Fri, Oct 08, 2021 at 11:42:18AM +0300, Bayduraev, Alexey V wrote:
> >>>
> >>>
> >>> On 08.10.2021 10:33, Jiri Olsa wrote:
> >>>> On Thu, Oct 07, 2021 at 01:25:41PM +0300, Alexey Bayduraev wrote:
> >>>>
> >>>> SNIP
> >>>>
> >>>>>  static int
> >>>>> -reader__process_events(struct reader *rd, struct perf_session *session,
> >>>>> -		       struct ui_progress *prog)
> >>>>> +reader__read_event(struct reader *rd, struct perf_session *session,
> >>>>> +		   struct ui_progress *prog)
> > 
> > SNIP
> > 
> >>>>
> >>>> active_decomp should be set/unset within reader__process_events,
> >>>> not just for single event read, right?
> >>>
> >>> No, it should be set before perf_session__process_event/process_decomp_events
> >>> and unset after these calls. So active_decomp setting/unsetting is moved in
> >>> this patch to the reader__read_event function. This is necessary for multiple
> >>> trace reader because it could call reader__read_event in round-robin manner.
> >>
> >> hum, is that code already in? I can't see this happening in current code
> > 
> > Probably I don't understand the question. In [PATCH v3 2/8] I introduced 
> > active_decomp pointer in perf_session. It is initialized by a pointer to the 
> > decompressor object in perf_session. In reader__process_events it is set to 
> > the reader decompressor object. And it is reset to the session decompressor 
> > object at exit. In this case we do not need to reset it after each 
> > perf_session__process_event because this code reads events in loop with 
> > constant reader object. Maybe setting of active_decomp should be at the 
> > entrance to the reader__process_events, not before reader__process_events, 
> > in [PATCH v3 2/8]. All this code is new.
> 
> We set active_decomp for perf_session__process_event (rd->process() in our
> case) and for __perf_session__process_decomp_events, active_decomp is not 
> necessary for other parts of reader__process_events.

so what I see in the code is:

__perf_session__process_events
{
	struct reader rd;

	reader__process_events(rd)
	{
		reader__read_event(rd)
		{
->			session->active_decomp = &rd->decomp_data;
			rd->process(...
->			session->active_decomp = &session->decomp_data;
		}

	}
}


we set session->active_decomp for each event that we process
and I don't understand why we can't do that just once in
__perf_session__process_events, so it'd be like:

__perf_session__process_events
{
	struct reader rd;

->	session->active_decomp = &rd->decomp_data;

	reader__process_events(rd)
	{
		reader__read_event(rd)
		{
			rd->process(...
		}

	}

->	session->active_decomp = &session->decomp_data;
}


or within reader__process_events if it's more convenient

jirka

> 
> Regards,
> Alexey
> 
> > 
> > In this patch I separates single event reading and moves setting/resetting
> > of active_decomp before/after perf_session__process_event because this is 
> > necessary for multiple trace reader. 
> > 
> > Regards,
> > Alexey
> > 
> >>
> >> jirka
> >>
> >>>
> >>> Regards,
> >>> Alexey
> >>>
> >>>>
> >>>> jirka
> >>>>
> >>>>>  	return err;
> >>>>>  }
> >>>>>  
> >>>>> -- 
> >>>>> 2.19.0
> >>>>>
> >>>>
> >>>
> >>
> 


  reply	other threads:[~2021-10-11 13:21 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-07 10:25 [PATCH v3 0/5] perf session: Extend reader object to allow multiple readers Alexey Bayduraev
2021-10-07 10:25 ` [PATCH v3 1/8] perf session: Move all state items to reader object Alexey Bayduraev
2021-10-07 10:25 ` [PATCH v3 2/8] perf session: Introduce decompressor in " Alexey Bayduraev
2021-10-07 10:25 ` [PATCH v3 3/8] perf session: Move init/release code to separate functions Alexey Bayduraev
2021-10-07 10:25 ` [PATCH v3 4/8] perf session: Move map code to separate function Alexey Bayduraev
2021-10-07 10:25 ` [PATCH v3 5/8] perf session: Move unmap code to reader__mmap Alexey Bayduraev
2021-10-07 10:25 ` [PATCH v3 6/8] perf session: Move event read code to separate function Alexey Bayduraev
2021-10-08  7:33   ` Jiri Olsa
2021-10-08  8:42     ` Bayduraev, Alexey V
2021-10-08 14:38       ` Jiri Olsa
2021-10-11  9:08         ` Bayduraev, Alexey V
2021-10-11  9:53           ` Bayduraev, Alexey V
2021-10-11 13:21             ` Jiri Olsa [this message]
2021-10-11 16:40               ` Bayduraev, Alexey V
2021-10-11 19:56                 ` Jiri Olsa
2021-10-07 10:25 ` [PATCH v3 7/8] perf session: Introduce reader return codes Alexey Bayduraev
2021-10-07 10:25 ` [PATCH v3 8/8] perf session: Introduce reader EOF function Alexey Bayduraev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YWQ6TyyYRfx9AXLH@krava \
    --to=jolsa@redhat.com \
    --cc=abudankov@huawei.com \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.antonov@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=alexey.v.bayduraev@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rickyman7@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.