Thread (30 messages) flat view 30 messages, 3 authors, 2021-01-18

Re: [PATCH v6 net-next 11/15] net: catch errors from dev_get_stats

From: Vladimir Oltean <olteanv@gmail.com>
Date: 2021-01-18 10:44:26

On Mon, Jan 11, 2021 at 03:51:39PM -0800, Saeed Mahameed wrote:
On Tue, 2021-01-12 at 01:15 +0200, Vladimir Oltean wrote:
quoted
On Mon, Jan 11, 2021 at 02:54:50PM -0800, Saeed Mahameed wrote:
quoted
On Sat, 2021-01-09 at 19:26 +0200, Vladimir Oltean wrote:
quoted
From: Vladimir Oltean <vladimir.oltean@nxp.com>

dev_get_stats can now return error codes. Convert all remaining call
sites to look at that error code and stop processing.

The effects of simulating a kernel error (returning -ENOMEM) upon
existing programs or kernel interfaces:

- ifconfig and "cat /proc/net/dev" print up until the interface that
  failed, and there they return:
cat: read error: Cannot allocate memory

- ifstat and "ip -s -s link show":
RTNETLINK answers: Cannot allocate memory
Dump terminated

Some call sites are coming from a context that returns void (ethtool
stats, workqueue context). So since we can't report to the upper layer,
do the next best thing: print an error to the console.
another concern, one buggy netdev driver in a system will cause
unnecessary global failures when reading stats via netlink/procfs
for all the netdev in a netns, when other drivers will be happy to
report.

can't we just show a message in that driver's stats line about the
occurred err ? and show the normal stats line of all others ?
So you're worried that user space apps won't handle an error code when
reading from a file, but you're not worried that they'll start scraping
junk from procfs when we print this?
both are equivalently concerning.
to avoid any user crashes, we can just toss failed netdevs out from the
output.
I'm not sure I'm on the same page here, basically I churned through the
whole kernel to propagate the error code from dev_get_stats, just to not
report it anywhere?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help