All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@redhat.com>
To: Jiri Olsa <jolsa@redhat.com>
Cc: Yisheng Xie <xieyisheng1@huawei.com>,
	mingo@redhat.com, peterz@infradead.org, namhyung@kernel.org,
	acme@kernel.org, alexander.shishkin@linux.intel.com,
	linux-kernel@vger.kernel.org,
	Kan Liang <kan.liang@linux.intel.com>
Subject: Re: [PATCH] perf mmap: Discard head in overwrite_rb_find_range
Date: Wed, 7 Mar 2018 10:58:54 -0300	[thread overview]
Message-ID: <20180307135854.GA2187@redhat.com> (raw)
In-Reply-To: <20180307102157.GC22848@krava>

Em Wed, Mar 07, 2018 at 11:21:57AM +0100, Jiri Olsa escreveu:
> On Tue, Mar 06, 2018 at 07:44:23PM +0800, Yisheng Xie wrote:
> > In overwrite mode, start will be set to head in perf_mmap__read_init.
> > Therefore, it is no need to set the start one more in
> > overwrite_rb_find_range and *start can be used as head instead of
> > passing head to overwrite_rb_find_range.
> 
> it conflicts a little with recent cleanup from Kan Liang,,
>   https://marc.info/?t=152035082800001&r=1&w=2
> 
> otherwise it looks ok to me

yeah, wait a while till I push Kan's simplifications and then resubmit,
ok?

- Arnaldo
 
> jirka
> 
> > 
> > Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
> > ---
> >  tools/perf/util/mmap.c | 15 +++++++--------
> >  1 file changed, 7 insertions(+), 8 deletions(-)
> > 
> > diff --git a/tools/perf/util/mmap.c b/tools/perf/util/mmap.c
> > index 91531a7..6751ac9 100644
> > --- a/tools/perf/util/mmap.c
> > +++ b/tools/perf/util/mmap.c
> > @@ -223,19 +223,18 @@ int perf_mmap__mmap(struct perf_mmap *map, struct mmap_params *mp, int fd)
> >  	return 0;
> >  }
> >  
> > -static int overwrite_rb_find_range(void *buf, int mask, u64 head, u64 *start, u64 *end)
> > +static int overwrite_rb_find_range(void *buf, int mask, u64 *start, u64 *end)
> >  {
> >  	struct perf_event_header *pheader;
> > -	u64 evt_head = head;
> > +	u64 evt_head = *start;
> >  	int size = mask + 1;
> >  
> > -	pr_debug2("overwrite_rb_find_range: buf=%p, head=%"PRIx64"\n", buf, head);
> > -	pheader = (struct perf_event_header *)(buf + (head & mask));
> > -	*start = head;
> > +	pr_debug2("%s: buf=%p, start=%"PRIx64"\n", __func__, buf, *start);
> > +	pheader = (struct perf_event_header *)(buf + (*start & mask));
> >  	while (true) {
> > -		if (evt_head - head >= (unsigned int)size) {
> > +		if (evt_head - *start >= (unsigned int)size) {
> >  			pr_debug("Finished reading overwrite ring buffer: rewind\n");
> > -			if (evt_head - head > (unsigned int)size)
> > +			if (evt_head - *start > (unsigned int)size)
> >  				evt_head -= pheader->size;
> >  			*end = evt_head;
> >  			return 0;
> > @@ -287,7 +286,7 @@ int perf_mmap__read_init(struct perf_mmap *md, bool overwrite,
> >  		 * Backward ring buffer is full. We still have a chance to read
> >  		 * most of data from it.
> >  		 */
> > -		if (overwrite_rb_find_range(data, md->mask, head, startp, endp))
> > +		if (overwrite_rb_find_range(data, md->mask, startp, endp))
> >  			return -EINVAL;
> >  	}
> >  
> > -- 
> > 1.7.12.4
> > 

  parent reply	other threads:[~2018-03-07 13:59 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-06 11:44 [PATCH] perf mmap: Discard head in overwrite_rb_find_range Yisheng Xie
2018-03-07 10:21 ` Jiri Olsa
2018-03-07 11:01   ` Yisheng Xie
2018-03-07 13:58   ` Arnaldo Carvalho de Melo [this message]
2018-03-08  1:05     ` Yisheng Xie

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=20180307135854.GA2187@redhat.com \
    --to=acme@redhat.com \
    --cc=acme@kernel.org \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=jolsa@redhat.com \
    --cc=kan.liang@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=xieyisheng1@huawei.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.