Re: [PATCH 5/7] powerpc/ftrace: Update ftrace_location() for powerpc -mprofile-kernel

From: Steven Rostedt
Date: Tue Jun 18 2019 - 11:50:15 EST


On Tue, 18 Jun 2019 20:17:04 +0530
"Naveen N. Rao" <naveen.n.rao@xxxxxxxxxxxxxxxxxx> wrote:

> @@ -1551,7 +1551,7 @@ unsigned long ftrace_location_range(unsigned long start, unsigned long end)
> key.flags = end; /* overload flags, as it is unsigned long */
>
> for (pg = ftrace_pages_start; pg; pg = pg->next) {
> - if (end < pg->records[0].ip ||
> + if (end <= pg->records[0].ip ||

This breaks the algorithm. "end" is inclusive. That is, if you look for
a single byte, where "start" and "end" are the same, and it happens to
be the first ip on the pg page, it will be skipped, and not found.

-- Steve

> start >= (pg->records[pg->index - 1].ip + MCOUNT_INSN_SIZE))
> continue;
> rec = bsearch(&key, pg->records, pg->index,