can: mcp251xfd: mcp251xfd_handle_rxovif(): denote RX overflow message to debug +...
authorMarc Kleine-Budde <mkl@pengutronix.de>
Mon, 15 Nov 2021 19:12:05 +0000 (20:12 +0100)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Sat, 8 Jan 2022 19:17:42 +0000 (20:17 +0100)
A RX overflow usually happens during high system load. Printing
overflow messages to the kernel log, which on embedded systems often
is outputted on the serial console, even increases the system load.

To decrease the system load in these situations, denote the messages
to debug level and wrap them with net_ratelimit().

Link: https://lore.kernel.org/all/20220105154300.1258636-7-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c

index a01a3fc..105426d 100644 (file)
@@ -1652,12 +1652,15 @@ static int mcp251xfd_handle_rxovif(struct mcp251xfd_priv *priv)
 
                /* If SERRIF is active, there was a RX MAB overflow. */
                if (priv->regs_status.intf & MCP251XFD_REG_INT_SERRIF) {
-                       netdev_info(priv->ndev,
-                                   "RX-%d: MAB overflow detected.\n",
-                                   ring->nr);
+                       if (net_ratelimit())
+                               netdev_dbg(priv->ndev,
+                                          "RX-%d: MAB overflow detected.\n",
+                                          ring->nr);
                } else {
-                       netdev_info(priv->ndev,
-                                   "RX-%d: FIFO overflow.\n", ring->nr);
+                       if (net_ratelimit())
+                               netdev_dbg(priv->ndev,
+                                          "RX-%d: FIFO overflow.\n",
+                                          ring->nr);
                }
 
                err = regmap_update_bits(priv->map_reg,