All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Damato <jdamato@fastly.com>
To: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: netdev@vger.kernel.org, kuba@kernel.org, davem@davemloft.net,
	hawk@kernel.org, saeed@kernel.org, ttoukan.linux@gmail.com,
	brouer@redhat.com
Subject: Re: [net-next v4 11/11] page_pool: Add function to batch and return stats
Date: Fri, 4 Feb 2022 10:00:30 -0800	[thread overview]
Message-ID: <CALALjgwE6ozNjia78RKp=eBwWdWrNQTpkv_c34FN-aFe8LfFew@mail.gmail.com> (raw)
In-Reply-To: <YfzZyL+mnvcFdzYs@hades>

On Thu, Feb 3, 2022 at 11:46 PM Ilias Apalodimas
<ilias.apalodimas@linaro.org> wrote:
>
> On Thu, Feb 03, 2022 at 04:09:33PM -0800, Joe Damato wrote:
> > Adds a function page_pool_get_stats which can be used by drivers to obtain
> > the batched stats for a specified page pool.
> >
> > Signed-off-by: Joe Damato <jdamato@fastly.com>
> > ---
> >  include/net/page_pool.h |  9 +++++++++
> >  net/core/page_pool.c    | 25 +++++++++++++++++++++++++
> >  2 files changed, 34 insertions(+)
> >
> > diff --git a/include/net/page_pool.h b/include/net/page_pool.h
> > index bb87706..5257e46 100644
> > --- a/include/net/page_pool.h
> > +++ b/include/net/page_pool.h
> > @@ -153,6 +153,15 @@ struct page_pool_stats {
> >               u64 waive;  /* failed refills due to numa zone mismatch */
> >       } alloc;
> >  };
> > +
> > +/*
> > + * Drivers that wish to harvest page pool stats and report them to users
> > + * (perhaps via ethtool, debugfs, or another mechanism) can allocate a
> > + * struct page_pool_stats and call page_pool_get_stats to get the batched pcpu
> > + * stats.
> > + */
> > +struct page_pool_stats *page_pool_get_stats(struct page_pool *pool,
> > +                                         struct page_pool_stats *stats);
> >  #endif
> >
> >  struct page *page_pool_alloc_pages(struct page_pool *pool, gfp_t gfp);
> > diff --git a/net/core/page_pool.c b/net/core/page_pool.c
> > index 0bd084c..076593bb 100644
> > --- a/net/core/page_pool.c
> > +++ b/net/core/page_pool.c
> > @@ -35,6 +35,31 @@
> >               struct page_pool_stats __percpu *s = pool->stats;       \
> >               __this_cpu_inc(s->alloc.__stat);                        \
> >       } while (0)
> > +
> > +struct page_pool_stats *page_pool_get_stats(struct page_pool *pool,
> > +                                         struct page_pool_stats *stats)
> > +{
> > +     int cpu = 0;
> > +
> > +     if (!stats)
> > +             return NULL;
> > +
> > +     for_each_possible_cpu(cpu) {
> > +             const struct page_pool_stats *pcpu =
> > +                     per_cpu_ptr(pool->stats, cpu);
> > +
> > +             stats->alloc.fast += pcpu->alloc.fast;
> > +             stats->alloc.slow += pcpu->alloc.slow;
> > +             stats->alloc.slow_high_order +=
> > +                     pcpu->alloc.slow_high_order;
> > +             stats->alloc.empty += pcpu->alloc.empty;
> > +             stats->alloc.refill += pcpu->alloc.refill;
> > +             stats->alloc.waive += pcpu->alloc.waive;
> > +     }
> > +
> > +     return stats;
> > +}
> > +EXPORT_SYMBOL(page_pool_get_stats);
>
> You don't really need to return a pointer here. Just make the return code a
> bool

OK. Updated page_pool_get_stats to return a bool in my v5 branch.

  reply	other threads:[~2022-02-04 18:00 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-04  0:09 [net-next v4 00/11] page_pool: Add page_pool stat counters Joe Damato
2022-02-04  0:09 ` [net-next v4 01/11] page_pool: kconfig: Add flag for page pool stats Joe Damato
2022-02-04  7:42   ` Ilias Apalodimas
2022-02-04 17:59     ` Joe Damato
2022-02-04  0:09 ` [net-next v4 02/11] page_pool: Add per-pool-per-cpu struct Joe Damato
2022-02-04  0:09 ` [net-next v4 03/11] page_pool: Allocate and free stats structure Joe Damato
2022-02-04  0:09 ` [net-next v4 04/11] page_pool: Add macro for incrementing alloc stats Joe Damato
2022-02-04  0:09 ` [net-next v4 05/11] page_pool: Add fast path stat Joe Damato
2022-02-04  0:09 ` [net-next v4 06/11] page_pool: Add slow path order-0 stat Joe Damato
2022-02-04  0:09 ` [net-next v4 07/11] page_pool: Add slow path high order alloc stat Joe Damato
2022-02-04  0:09 ` [net-next v4 08/11] page_pool: Add stat tracking empty ring Joe Damato
2022-02-04  0:09 ` [net-next v4 09/11] page_pool: Add stat tracking cache refill Joe Damato
2022-02-04  0:09 ` [net-next v4 10/11] page_pool: Add a stat tracking waived pages Joe Damato
2022-02-04  7:44   ` Ilias Apalodimas
2022-02-04 17:59     ` Joe Damato
2022-02-04  0:09 ` [net-next v4 11/11] page_pool: Add function to batch and return stats Joe Damato
2022-02-04  7:46   ` Ilias Apalodimas
2022-02-04 18:00     ` Joe Damato [this message]
2022-02-04 13:58 ` [net-next v4 00/11] page_pool: Add page_pool stat counters Toke Høiland-Jørgensen
2022-02-04 18:04   ` Joe Damato

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='CALALjgwE6ozNjia78RKp=eBwWdWrNQTpkv_c34FN-aFe8LfFew@mail.gmail.com' \
    --to=jdamato@fastly.com \
    --cc=brouer@redhat.com \
    --cc=davem@davemloft.net \
    --cc=hawk@kernel.org \
    --cc=ilias.apalodimas@linaro.org \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=saeed@kernel.org \
    --cc=ttoukan.linux@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.