* [PATCH] net: macb: rate limit netdev error info print in the data path
@ 2026-09-20 10:09 Zijin Tao
2026-09-24 1:17 ` Jakub Kicinski
2026-09-24 9:02 ` Théo Lebrun
0 siblings, 2 replies; 7+ messages in thread
From: Zijin Tao @ 2026-09-20 10:09 UTC (permalink / raw)
To: maintainer
Cc: linux-kernel, theo.lebrun, conor.dooley, andrew+netdev, netdev,
Zijin Tao
Now the MACB ethernet driver print the netdev error information
directly by netdev_err(), which would lead to a large number of
error information print if there was a significant number of
error or just jumbo packets exceeding the MTU received when booting.
For example, it would print a large number of:
macb PHYT0036:00 eth0: not whole frame pointed by descriptor
macb PHYT0036:00 eth0: not whole frame pointed by descriptor
...
in gem_rx() by received a large number of packets without
RX_SOF or RX_EOF flag set, especially with unknown packet
type.
The unlimited prints here would greatly bother and delay
the system booting process unless the source stop sending
packets.
So rate limit the netdev error information print in the receive
and transmit data path.
Signed-off-by: Zijin Tao <taozj888@163.com>
---
drivers/net/ethernet/cadence/macb_main.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index b8234ac4b602..c32d48d03008 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -1617,16 +1617,16 @@ static int gem_rx(struct macb_queue *queue, struct napi_struct *napi,
count++;
if (!(ctrl & MACB_BIT(RX_SOF) && ctrl & MACB_BIT(RX_EOF))) {
- netdev_err(bp->netdev,
- "not whole frame pointed by descriptor\n");
+ if (net_ratelimit())
+ netdev_err(bp->netdev, "not whole frame pointed by descriptor\n");
bp->netdev->stats.rx_dropped++;
queue->stats.rx_dropped++;
break;
}
skb = queue->rx_skbuff[entry];
if (unlikely(!skb)) {
- netdev_err(bp->netdev,
- "inconsistent Rx descriptor chain\n");
+ if (net_ratelimit())
+ netdev_err(bp->netdev, "inconsistent Rx descriptor chain\n");
bp->netdev->stats.rx_dropped++;
queue->stats.rx_dropped++;
break;
@@ -1829,7 +1829,8 @@ static int macb_rx(struct macb_queue *queue, struct napi_struct *napi,
unsigned long flags;
u32 ctrl;
- netdev_err(bp->netdev, "RX queue corruption: reset it\n");
+ if (net_ratelimit())
+ netdev_err(bp->netdev, "RX queue corruption: reset it\n");
spin_lock_irqsave(&bp->lock, flags);
@@ -2102,7 +2103,8 @@ static int macb_interrupt_misc(struct macb_queue *queue, u32 status)
if (status & MACB_BIT(HRESP)) {
queue_work(system_bh_wq, &bp->hresp_err_bh_work);
- netdev_err(netdev, "DMA bus error: HRESP not OK\n");
+ if (net_ratelimit())
+ netdev_err(netdev, "DMA bus error: HRESP not OK\n");
macb_queue_isr_clear(bp, queue, MACB_BIT(HRESP));
}
@@ -2511,7 +2513,8 @@ static netdev_tx_t macb_start_xmit(struct sk_buff *skb,
else
hdrlen = skb_tcp_all_headers(skb);
if (skb_headlen(skb) < hdrlen) {
- netdev_err(bp->netdev, "Error - LSO headers fragmented!!!\n");
+ if (net_ratelimit())
+ netdev_err(bp->netdev, "Error - LSO headers fragmented!!!\n");
/* if this is required, would need to copy to single buffer */
return NETDEV_TX_BUSY;
}
--
2.34.1
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH] net: macb: rate limit netdev error info print in the data path
2026-09-20 10:09 [PATCH] net: macb: rate limit netdev error info print in the data path Zijin Tao
@ 2026-09-24 1:17 ` Jakub Kicinski
2026-09-24 6:36 ` taozj888
2026-09-24 9:02 ` Théo Lebrun
1 sibling, 1 reply; 7+ messages in thread
From: Jakub Kicinski @ 2026-09-24 1:17 UTC (permalink / raw)
To: Zijin Tao; +Cc: linux-kernel, theo.lebrun, conor.dooley, andrew+netdev, netdev
On Sun, 20 Sep 2026 18:09:20 +0800 Zijin Tao wrote:
> Now the MACB ethernet driver print the netdev error information
> directly by netdev_err(), which would lead to a large number of
> error information print if there was a significant number of
> error or just jumbo packets exceeding the MTU received when booting.
> For example, it would print a large number of:
>
> macb PHYT0036:00 eth0: not whole frame pointed by descriptor
> macb PHYT0036:00 eth0: not whole frame pointed by descriptor
> ...
Do you have the HW or you're acting based on LLM output?
If the latter, and since you can't follow the process please
don't post any more such patches.
If you do have the HW to test this - put into the commit message
what HW you have, and covering all the cases.
--
pw-bot: cr
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re:Re: [PATCH] net: macb: rate limit netdev error info print in the data path
2026-09-24 1:17 ` Jakub Kicinski
@ 2026-09-24 6:36 ` taozj888
0 siblings, 0 replies; 7+ messages in thread
From: taozj888 @ 2026-09-24 6:36 UTC (permalink / raw)
To: Jakub Kicinski
Cc: linux-kernel, theo.lebrun, conor.dooley, andrew+netdev, netdev
Hi Jakub:
Yes, we had the actual HW for our production environment which is based on a chip
that used the Cadence MACB implementation, and it really bothered our booting process
since it received a lot of jumob pkts which are just over the current MTU of the driver
and it has to show those error msgs.
The issue was reported by our production section. Actually the err msg here should include a timestamp
at the beginning, looks like:
[ 318.594950][ C0] macb PHYT0036:00 eth0: not whole frame pointed by descriptor
[ 318.602366][ C0] macb PHYT0036:00 eth0: not whole frame pointed by descriptor
...
but for simplicity, I just removed that part.
I will put some of the HW info into the commit msg as what you indicated.
Thanks,
Zijin Tao
At 2026-09-24 09:17:46, "Jakub Kicinski" <kuba@kernel.org> wrote:
>On Sun, 20 Sep 2026 18:09:20 +0800 Zijin Tao wrote:
>> Now the MACB ethernet driver print the netdev error information
>> directly by netdev_err(), which would lead to a large number of
>> error information print if there was a significant number of
>> error or just jumbo packets exceeding the MTU received when booting.
>> For example, it would print a large number of:
>>
>> macb PHYT0036:00 eth0: not whole frame pointed by descriptor
>> macb PHYT0036:00 eth0: not whole frame pointed by descriptor
>> ...
>
>Do you have the HW or you're acting based on LLM output?
>If the latter, and since you can't follow the process please
>don't post any more such patches.
>
>If you do have the HW to test this - put into the commit message
>what HW you have, and covering all the cases.
>--
>pw-bot: cr
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] net: macb: rate limit netdev error info print in the data path
2026-09-20 10:09 [PATCH] net: macb: rate limit netdev error info print in the data path Zijin Tao
2026-09-24 1:17 ` Jakub Kicinski
@ 2026-09-24 9:02 ` Théo Lebrun
2026-09-29 3:56 ` taozj888
1 sibling, 1 reply; 7+ messages in thread
From: Théo Lebrun @ 2026-09-24 9:02 UTC (permalink / raw)
To: Zijin Tao, maintainer; +Cc: linux-kernel, conor.dooley, andrew+netdev, netdev
Hello Zijin,
You missed part of my recent feedback [0][1]. Copy paste:
- Also you are missing the prefix [PATCH net] or [PATCH net-next].
Read up about this here (and read the full page):
https://www.kernel.org/doc/html/latest/process/maintainer-netdev.html
- Also your To/Cc list is weird, make sure to use
scripts/get_maintainer.pl (or use b4 for patch
management which uses it automatically).
In addition, make sure to read the "submitting patches" guide [2].
You missed:
- replying to all review points one by one using interleaved [4]
- V2 in subject [3]
- write up a changelog [4]
Also this one is less well known, but the net subsystem (and many others
nowadays) expect people to reply to Sashiko review emails to say
whether they agree or disagree. Especially if they disagree. You can
mostly skip over the pre-existing issues which don't relate to your
series.
For example Sashiko says you don't cover some log netdev_err() calls.
You can reply explaining why only the ones you touched are important to
deal with.
--
And I see just now I have in my inbox an email from you asking how to do
it properly. Good! But it doesn't show up on lore, I'm not sure why.
Replying to it here:
- Don't send the same patch but slightly modified. Maintainers need to
know the latest version. New version means V2/V3/etc, even if
changes are tiny (like a typo fix in commit message).
- Don't put V1 for the first revision. I think that's git-format-patch
default behavior.
- Using git-format-patch looks something like:
⟩ git format-patch -1 998b159fdd78 --subject-prefix="PATCH net" -v2
v2-0001-net-macb-take-bp-lock-around-NCR-read-modify-writ.patch
⟩ grep ^Subject v2-0001-net-macb-take-bp-lock-around-NCR-read-modify-writ.patch
Subject: [PATCH net v2] net: macb: take bp->lock around NCR read-modify-writes
⟩ scripts/get_maintainer.pl v2-0001-*.patch
"Théo Lebrun" <theo.lebrun@bootlin.com> (maintainer:ATMEL MACB ETHERNET DRIVER)
Conor Dooley <conor.dooley@microchip.com> (reviewer:ATMEL MACB ETHERNET DRIVER)
Andrew Lunn <andrew+netdev@lunn.ch> (maintainer:NETWORKING DRIVERS)
...
I think most people call scripts/get_maintainer.pl and write the
git send-email --to/--cc flags by hand. I've been using b4 for a few
years now so I don't really know the usual git format-patch workflow.
Or you can use `git send-email --cc-cmd=scripts/get_maintainer.pl`.
[0]: https://lore.kernel.org/all/DLKVCOXTNGVZ.3CC6KFXDIFJ3X@bootlin.com/
[1]: https://lore.kernel.org/all/DLKVEXS7X14N.XLLMBDDX6ZJW@bootlin.com/
[2]: https://www.kernel.org/doc/html/latest/process/submitting-patches.html
[3]: https://www.kernel.org/doc/html/latest/process/submitting-patches.html#subject-line
[4]: https://www.kernel.org/doc/html/latest/process/submitting-patches.html#respond-to-review-comments
Thanks,
--
Théo Lebrun, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re:Re: [PATCH] net: macb: rate limit netdev error info print in the data path
2026-09-24 9:02 ` Théo Lebrun
@ 2026-09-29 3:56 ` taozj888
2026-09-29 7:45 ` Théo Lebrun
0 siblings, 1 reply; 7+ messages in thread
From: taozj888 @ 2026-09-29 3:56 UTC (permalink / raw)
To: Théo Lebrun
Cc: maintainer, linux-kernel, conor.dooley, andrew+netdev, netdev
Hi Theo:
Thank you very much for your kindly reply.
For all your concerns in this mail thread and [0][1], I try to give my answers here
and hope it does not miss anything:
1. Yes, I missed the prefix [PATCH net], I will add it in my next commit; I would like to send it again as the 1st version
since I missed this needed part [PATCH net];
2. For the To/Cc list, I will use `git send-email --cc-cmd=scripts/get_maintainer.pl` as you indicated;
3. This whole patch is NOT LLM generated, it's really a bug hit in practice, the "PHYT0036:00"
device name is the real name that showed in our console output, I can't just imagine or made this name and it's really of out of my imagination.
I think it may be related to a vendor with some of the PCI addr but I think it may not be polite to say it directly.
Actually hallucinating a kernel log even a kernel patch is out of my knowledge, if you know to how and
wish to tell me, I think it should be really interesting!
4. Why it bothered the booting process?
In the booting process, the MACB driver received a large number of jumbo pkts that the driver can't see
the RX_EOF flag in the ctrl since the length of the pkt is larger than the current MTU. Those jumbo packets are
sent by other network cards in our machine box and they are legal and used to collect information for all other cards/blades So netdev_err()
prints a lot of error information in the console and occupied the full bandwidth of console, but other booting processes
also want to show some information in the console, and they have to wait util the whole error print of "not whole frame pointed by descriptor"
finished, so the system is delayed to be ready to the user.
5. For the severity tag and should this carry a Fixes tag and name the intended tree, please give out a clear indication from your experiences for what I described above. I really have not too much knowledge about that.
Thanks,
Zijin Tao
At 2026-09-24 17:02:03, "Théo Lebrun" <theo.lebrun@bootlin.com> wrote:
>Hello Zijin,
>
>You missed part of my recent feedback [0][1]. Copy paste:
>
> - Also you are missing the prefix [PATCH net] or [PATCH net-next].
> Read up about this here (and read the full page):
> https://www.kernel.org/doc/html/latest/process/maintainer-netdev.html
>
> - Also your To/Cc list is weird, make sure to use
> scripts/get_maintainer.pl (or use b4 for patch
> management which uses it automatically).
>
>In addition, make sure to read the "submitting patches" guide [2].
>You missed:
> - replying to all review points one by one using interleaved [4]
> - V2 in subject [3]
> - write up a changelog [4]
>
>Also this one is less well known, but the net subsystem (and many others
>nowadays) expect people to reply to Sashiko review emails to say
>whether they agree or disagree. Especially if they disagree. You can
>mostly skip over the pre-existing issues which don't relate to your
>series.
>
>For example Sashiko says you don't cover some log netdev_err() calls.
>You can reply explaining why only the ones you touched are important to
>deal with.
>
>--
>
>And I see just now I have in my inbox an email from you asking how to do
>it properly. Good! But it doesn't show up on lore, I'm not sure why.
>
>Replying to it here:
>
> - Don't send the same patch but slightly modified. Maintainers need to
> know the latest version. New version means V2/V3/etc, even if
> changes are tiny (like a typo fix in commit message).
>
> - Don't put V1 for the first revision. I think that's git-format-patch
> default behavior.
>
> - Using git-format-patch looks something like:
>
> ⟩ git format-patch -1 998b159fdd78 --subject-prefix="PATCH net" -v2
> v2-0001-net-macb-take-bp-lock-around-NCR-read-modify-writ.patch
>
> ⟩ grep ^Subject v2-0001-net-macb-take-bp-lock-around-NCR-read-modify-writ.patch
> Subject: [PATCH net v2] net: macb: take bp->lock around NCR read-modify-writes
>
> ⟩ scripts/get_maintainer.pl v2-0001-*.patch
> "Théo Lebrun" <theo.lebrun@bootlin.com> (maintainer:ATMEL MACB ETHERNET DRIVER)
> Conor Dooley <conor.dooley@microchip.com> (reviewer:ATMEL MACB ETHERNET DRIVER)
> Andrew Lunn <andrew+netdev@lunn.ch> (maintainer:NETWORKING DRIVERS)
> ...
>
> I think most people call scripts/get_maintainer.pl and write the
> git send-email --to/--cc flags by hand. I've been using b4 for a few
> years now so I don't really know the usual git format-patch workflow.
>
> Or you can use `git send-email --cc-cmd=scripts/get_maintainer.pl`.
>
>[0]: https://lore.kernel.org/all/DLKVCOXTNGVZ.3CC6KFXDIFJ3X@bootlin.com/
>[1]: https://lore.kernel.org/all/DLKVEXS7X14N.XLLMBDDX6ZJW@bootlin.com/
>[2]: https://www.kernel.org/doc/html/latest/process/submitting-patches.html
>[3]: https://www.kernel.org/doc/html/latest/process/submitting-patches.html#subject-line
>[4]: https://www.kernel.org/doc/html/latest/process/submitting-patches.html#respond-to-review-comments
>
>Thanks,
>
>--
>Théo Lebrun, Bootlin
>Embedded Linux and Kernel engineering
>https://bootlin.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] net: macb: rate limit netdev error info print in the data path
2026-09-29 3:56 ` taozj888
@ 2026-09-29 7:45 ` Théo Lebrun
2026-09-30 11:40 ` taozj888
0 siblings, 1 reply; 7+ messages in thread
From: Théo Lebrun @ 2026-09-29 7:45 UTC (permalink / raw)
To: taozj888; +Cc: maintainer, linux-kernel, conor.dooley, andrew+netdev, netdev
Hello Zijin,
Please use interleaved posting for replies, not top posting.
https://docs.kernel.org/process/submitting-patches.html#use-trimmed-interleaved-replies-in-email-discussions
On Tue Sep 29, 2026 at 5:56 AM CEST, Zijin wrote:
> Thank you very much for your kindly reply.
>
> For all your concerns in this mail thread and [0][1], I try to give
> my answers here and hope it does not miss anything:
>
> 1. Yes, I missed the prefix [PATCH net], I will add it in my next
> commit; I would like to send it again as the 1st version
> since I missed this needed part [PATCH net];
If patch stays the same it is OK, if it changes (for example because you
add trailers) then you must iterate onto v2.
> 2. For the To/Cc list, I will use `git send-email --cc-cmd=scripts/get_maintainer.pl` as you indicated;
>
> 3. This whole patch is NOT LLM generated, it's really a bug hit in practice, the "PHYT0036:00"
> device name is the real name that showed in our console output, I can't just imagine or made this name and it's really of out of my imagination.
> I think it may be related to a vendor with some of the PCI addr but I think it may not be polite to say it directly.
> Actually hallucinating a kernel log even a kernel patch is out of my knowledge, if you know to how and
> wish to tell me, I think it should be really interesting!
No I don't encourage you to hallucinate! It's what LLMs do sometimes
when you ask one to generate a commit message for a bug fix. They have
seen tons of commits with logs so they reproduce.
[...]
> 5. For the severity tag and should this carry a Fixes tag and name the
> intended tree, please give out a clear indication from your
> experiences for what I described above. I really have not too much
> knowledge about that.
Yes. You put those two trailers:
Fixes: 89e5785fc8a6 ("[PATCH] Atmel MACB ethernet driver")
Cc: stable@vger.kernel.org
See documentation link below (or kernel git log for many examples).
In your case you want the oldest commit that introduced one of those
logs. The macb_start_xmit() one for example got introduced with the
first driver commit, so that's what you target.
https://docs.kernel.org/process/submitting-patches.html#describe-your-changes
Thanks,
--
Théo Lebrun, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 7+ messages in thread* Re:Re: [PATCH] net: macb: rate limit netdev error info print in the data path
2026-09-29 7:45 ` Théo Lebrun
@ 2026-09-30 11:40 ` taozj888
0 siblings, 0 replies; 7+ messages in thread
From: taozj888 @ 2026-09-30 11:40 UTC (permalink / raw)
To: Théo Lebrun
Cc: maintainer, linux-kernel, conor.dooley, andrew+netdev, netdev
Hi Theo:
With all your information provided, I sent the patch in [PATCH net v2] again, hope it would satisfy the requirement.
If not, I would also change it as required.
Thank you,
Zijin Tao
At 2026-09-29 15:45:47, "Théo Lebrun" <theo.lebrun@bootlin.com> wrote:
>Hello Zijin,
>
>Please use interleaved posting for replies, not top posting.
>
>https://docs.kernel.org/process/submitting-patches.html#use-trimmed-interleaved-replies-in-email-discussions
>
>On Tue Sep 29, 2026 at 5:56 AM CEST, Zijin wrote:
>> Thank you very much for your kindly reply.
>>
>> For all your concerns in this mail thread and [0][1], I try to give
>> my answers here and hope it does not miss anything:
>>
>> 1. Yes, I missed the prefix [PATCH net], I will add it in my next
>> commit; I would like to send it again as the 1st version
>> since I missed this needed part [PATCH net];
>
>If patch stays the same it is OK, if it changes (for example because you
>add trailers) then you must iterate onto v2.
>
>> 2. For the To/Cc list, I will use `git send-email --cc-cmd=scripts/get_maintainer.pl` as you indicated;
>>
>> 3. This whole patch is NOT LLM generated, it's really a bug hit in practice, the "PHYT0036:00"
>> device name is the real name that showed in our console output, I can't just imagine or made this name and it's really of out of my imagination.
>> I think it may be related to a vendor with some of the PCI addr but I think it may not be polite to say it directly.
>> Actually hallucinating a kernel log even a kernel patch is out of my knowledge, if you know to how and
>> wish to tell me, I think it should be really interesting!
>
>No I don't encourage you to hallucinate! It's what LLMs do sometimes
>when you ask one to generate a commit message for a bug fix. They have
>seen tons of commits with logs so they reproduce.
>
>[...]
>
>> 5. For the severity tag and should this carry a Fixes tag and name the
>> intended tree, please give out a clear indication from your
>> experiences for what I described above. I really have not too much
>> knowledge about that.
>
>Yes. You put those two trailers:
>
> Fixes: 89e5785fc8a6 ("[PATCH] Atmel MACB ethernet driver")
> Cc: stable@vger.kernel.org
>
>See documentation link below (or kernel git log for many examples).
>
>In your case you want the oldest commit that introduced one of those
>logs. The macb_start_xmit() one for example got introduced with the
>first driver commit, so that's what you target.
>
>https://docs.kernel.org/process/submitting-patches.html#describe-your-changes
>
>Thanks,
>
>--
>Théo Lebrun, Bootlin
>Embedded Linux and Kernel engineering
>https://bootlin.com
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-09-30 11:41 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-20 10:09 [PATCH] net: macb: rate limit netdev error info print in the data path Zijin Tao
2026-09-24 1:17 ` Jakub Kicinski
2026-09-24 6:36 ` taozj888
2026-09-24 9:02 ` Théo Lebrun
2026-09-29 3:56 ` taozj888
2026-09-29 7:45 ` Théo Lebrun
2026-09-30 11:40 ` taozj888
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®