All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Oltean <olteanv@gmail.com>
To: Eric Dumazet <edumazet@google.com>
Cc: "David S . Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, netdev <netdev@vger.kernel.org>,
	Andrew Lunn <andrew@lunn.ch>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Cong Wang <xiyou.wangcong@gmail.com>,
	Stephen Hemminger <stephen@networkplumber.org>,
	George McCollister <george.mccollister@gmail.com>,
	Oleksij Rempel <o.rempel@pengutronix.de>,
	Jay Vosburgh <j.vosburgh@gmail.com>,
	Veaceslav Falico <vfalico@gmail.com>,
	Andy Gospodarek <andy@greyhouse.net>,
	Arnd Bergmann <arnd@arndb.de>, Taehee Yoo <ap420073@gmail.com>,
	Jiri Pirko <jiri@mellanox.com>, Florian Westphal <fw@strlen.de>
Subject: Re: [PATCH v3 net-next 10/12] net: bonding: ensure .ndo_get_stats64 can sleep
Date: Thu, 7 Jan 2021 13:33:13 +0200	[thread overview]
Message-ID: <20210107113313.q4e42cj6jigmdmbs@skbuf> (raw)
In-Reply-To: <CANn89i+NfBw7ZpL-DTDA3QGBK=neT2R7qKYn_pcvDmRAOkaUsQ@mail.gmail.com>

On Thu, Jan 07, 2021 at 12:18:28PM +0100, Eric Dumazet wrote:
> What a mess really.

Thanks, that's at least _some_ feedback :)

> You chose to keep the assumption that ndo_get_stats() would not fail,
> since we were providing the needed storage from callers.
>
> If ndo_get_stats() are now allowed to sleep, and presumably allocate
> memory, we need to make sure
> we report potential errors back to the user.
>
> I think your patch series is mostly good, but I would prefer not
> hiding errors and always report them to user space.
> And no, netdev_err() is not appropriate, we do not want tools to look
> at syslog to guess something went wrong.

Well, there are only 22 dev_get_stats callers in the kernel, so I assume
that after the conversion to return void, I can do another conversion to
return int, and then I can convert the ndo_get_stats64 method to return
int too. I will keep the plain ndo_get_stats still void (no reason not
to).

> Last point about drivers having to go to slow path, talking to
> firmware : Make sure that malicious/innocent users
> reading /proc/net/dev from many threads in parallel wont brick these devices.
>
> Maybe they implicitly _relied_ on the fact that firmware was gently
> read every second and results were cached from a work queue or
> something.

How? I don't understand how I can make sure of that.

There is an effort initiated by Jakub to standardize the ethtool
statistics. My objection was that you can't expect that to happen unless
dev_get_stats is sleepable just like ethtool -S is. So I think the same
reasoning should apply to ethtool -S too, really.

  reply	other threads:[~2021-01-07 11:34 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-07  9:49 [PATCH v3 net-next 00/12] Make .ndo_get_stats64 sleepable Vladimir Oltean
2021-01-07  9:49 ` [PATCH v3 net-next 01/12] net: mark dev_base_lock for deprecation Vladimir Oltean
2021-01-07  9:49 ` [PATCH v3 net-next 02/12] net: introduce a mutex for the netns interface lists Vladimir Oltean
2021-01-07  9:49 ` [PATCH v3 net-next 03/12] net: procfs: hold netif_lists_lock when retrieving device statistics Vladimir Oltean
2021-01-07  9:49 ` [PATCH v3 net-next 04/12] net: sysfs: don't hold dev_base_lock while " Vladimir Oltean
2021-01-07  9:49 ` [PATCH v3 net-next 05/12] s390/appldata_net_sum: hold the netdev lists lock when " Vladimir Oltean
2021-01-07  9:49 ` [PATCH v3 net-next 06/12] parisc/led: reindent the code that gathers " Vladimir Oltean
2021-01-07  9:49 ` [PATCH v3 net-next 07/12] parisc/led: hold the netdev lists lock when retrieving " Vladimir Oltean
2021-01-07  9:49 ` [PATCH v3 net-next 08/12] net: make dev_get_stats return void Vladimir Oltean
2021-01-07 13:01   ` kernel test robot
2021-01-07 13:01     ` kernel test robot
2021-01-07 13:15     ` Vladimir Oltean
2021-01-08  0:50       ` Rong Chen
2021-01-08  0:50         ` Rong Chen
2021-01-07  9:49 ` [PATCH v3 net-next 09/12] net: net_failover: ensure .ndo_get_stats64 can sleep Vladimir Oltean
2021-01-07  9:49 ` [PATCH v3 net-next 10/12] net: bonding: " Vladimir Oltean
2021-01-07 11:18   ` Eric Dumazet
2021-01-07 11:33     ` Vladimir Oltean [this message]
2021-01-07 12:58       ` Eric Dumazet
2021-01-08  3:59         ` Saeed Mahameed
2021-01-08  8:57           ` Vladimir Oltean
2021-01-08 19:25             ` Saeed Mahameed
2021-01-08  9:14           ` Eric Dumazet
2021-01-08  9:21             ` Vladimir Oltean
2021-01-08  9:27               ` Eric Dumazet
2021-01-08 19:38                 ` Saeed Mahameed
2021-01-08 20:20                   ` Vladimir Oltean
2021-01-08 19:33             ` Saeed Mahameed
2021-01-07  9:49 ` [PATCH v3 net-next 11/12] net: mark ndo_get_stats64 as being able to sleep Vladimir Oltean
2021-01-07  9:49 ` [PATCH v3 net-next 12/12] net: remove obsolete comments about ndo_get_stats64 context from eth drivers Vladimir Oltean

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=20210107113313.q4e42cj6jigmdmbs@skbuf \
    --to=olteanv@gmail.com \
    --cc=andrew@lunn.ch \
    --cc=andy@greyhouse.net \
    --cc=ap420073@gmail.com \
    --cc=arnd@arndb.de \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=fw@strlen.de \
    --cc=george.mccollister@gmail.com \
    --cc=j.vosburgh@gmail.com \
    --cc=jiri@mellanox.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=o.rempel@pengutronix.de \
    --cc=stephen@networkplumber.org \
    --cc=vfalico@gmail.com \
    --cc=xiyou.wangcong@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.