Re: [PATCH v3 net-next 2/2] net: dsa: qca: ar9331: export stats64

From: Jakub Kicinski
Date: Thu Dec 03 2020 - 11:36:45 EST


On Thu, 3 Dec 2020 09:50:11 +0100 Oleksij Rempel wrote:
> @Jakub,
>
> > You can't take sleeping locks from .ndo_get_stats64.
> >
> > Also regmap may sleep?
> >
> > + ret = regmap_read(priv->regmap, reg, &val);
>
> Yes. And underling layer is mdio bus which is by default sleeping as
> well.
>
> > Am I missing something?
>
> In this log, the ar9331_get_stats64() was never called from atomic or
> irq context. Why it should not be sleeping?

You missed some long discussions about this within last week on netdev.
Also Documentation/networking/statistics.rst.

To answer your direct question - try:

# cat /proc/net/dev

procfs iterates over devices while holding only an RCU read lock.