On Tue, Jan 06, 2026 at 07:43:55PM -0500, Steven Rostedt wrote:
> >  
> > @@ -7304,30 +7305,6 @@ static int ftrace_process_locs(struct module *mod,
> >  
> >     /* We should have used all pages unless we skipped some */
> >     if (pg_unuse) {
> > -           unsigned long pg_remaining, remaining = 0;
> > -           unsigned long skip;
> > -
> > -           /* Count the number of entries unused and compare it to 
> > skipped. */
> > -           pg_remaining = (ENTRIES_PER_PAGE << pg->order) - pg->index;
> > -
> > -           if (!WARN(skipped < pg_remaining, "Extra allocated pages for 
> > ftrace")) {
> > -
> > -                   skip = skipped - pg_remaining;
> > -
> > -                   for (pg = pg_unuse; pg; pg = pg->next)
> > -                           remaining += 1 << pg->order;
> > -
> > -                   pages -= remaining;
> > -
> > -                   skip = DIV_ROUND_UP(skip, ENTRIES_PER_PAGE);
> > -
> > -                   /*
> > -                    * Check to see if the number of pages remaining would
> > -                    * just fit the number of entries skipped.
> > -                    */
> > -                   WARN(skip != remaining, "Extra allocated pages for 
> > ftrace: %lu with %lu skipped",
> > -                        remaining, skipped);
> > -           }
> 
> Don't remove this block. It's still needed. A lot of entries are
> skipped when adding the records. Weak functions and zero'd pointers
> that were part of the count are skipped. This is the code that handles
> that. It has nothing to do with rounding errors.
> 
Sorry, misunderstanding. I thought that is what you meant with "This will
make pages equal the number of pages that were allocated. Then I'm not sure
we need this extra logic."

What is the no longer needed extra logic ?

Thanks,
Guenter

Reply via email to