All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maarten <maarten@rmail.be>
To: Florian Fainelli <florian.fainelli@broadcom.com>
Cc: Doug Berger <opendmb@gmail.com>,
	netdev@vger.kernel.org,
	Broadcom internal kernel review list
	<bcm-kernel-feedback-list@broadcom.com>,
	Phil Elwell <phil@raspberrypi.com>
Subject: Re: [PATCH] net: bcmgenet: Reset RBUF on first open
Date: Mon, 26 Feb 2024 20:14:54 +0100	[thread overview]
Message-ID: <47ba4ef5a42fe7412d7e3432a0995464@rmail.be> (raw)
In-Reply-To: <bc73b1e2-d99d-4ac2-9ae0-a55a8b271747@broadcom.com>

Florian Fainelli schreef op 2024-02-26 18:34:
> On 2/23/24 15:53, Maarten Vanraes wrote:
>> From: Phil Elwell <phil@raspberrypi.com>
>> 
>> If the RBUF logic is not reset when the kernel starts then there
>> may be some data left over from any network boot loader. If the
>> 64-byte packet headers are enabled then this can be fatal.
>> 
>> Extend bcmgenet_dma_disable to do perform the reset, but not when
>> called from bcmgenet_resume in order to preserve a wake packet.
>> 
>> N.B. This different handling of resume is just based on a hunch -
>> why else wouldn't one reset the RBUF as well as the TBUF? If this
>> isn't the case then it's easy to change the patch to make the RBUF
>> reset unconditional.
> 
> The real question is why is not the boot loader putting the GENET core
> into a quasi power-on-reset state, since this is what Linux expects,
> and also it seems the most conservative and prudent approach. Assuming
> the RDMA and Unimac RX are disabled, otherwise we would happily
> continuing to accept packets in DRAM, then the question is why is not
> the RBUF flushed too, or is it flushed, but this is insufficient, if
> so, have we determined why?

I can only say that when I was testing upstream kernels (6.7, 6.8) I had 
a lot of issue rebooting the RPI4B, and after some searched, I found 
this patch in the raspberrypi kernel (from 2020) and since I've used it, 
I do not have this issue anymore for at least 10 boots. Not sure if I 
should've added a Tested-By with myself?

>> 
>> See: https://github.com/raspberrypi/linux/issues/3850
>> 
>> Signed-off-by: Phil Elwell <phil@raspberrypi.com>
>> Signed-off-by: Maarten Vanraes <maarten@rmail.be>
>> ---
>>   drivers/net/ethernet/broadcom/genet/bcmgenet.c | 16 ++++++++++++----
>>   1 file changed, 12 insertions(+), 4 deletions(-)
>> 
>> This patch fixes a problem on RPI 4B where in ~2/3 cases (if you're 
>> using
>> nfsroot), you fail to boot; or at least the boot takes longer than
>> 30 minutes.
> 
> This makes me wonder whether this also fixes the issues that Maxime
> reported a long time ago, which I can reproduce too, but have not been
> able to track down the source of:
> 
> https://lore.kernel.org/linux-kernel/20210706081651.diwks5meyaighx3e@gilmour/
> 
>> 
>> Doing a simple ping revealed that when the ping starts working again
>> (during the boot process), you have ping timings of ~1000ms, 2000ms or
>> even 3000ms; while in normal cases it would be around 0.2ms.
> 
> I would prefer that we find a way to better qualify whether a RBUF
> reset is needed or not, but I suppose there is not any other way,
> since there is an "RBUF enabled" bit that we can key off.
> 
> Doug, what do you think?

  reply	other threads:[~2024-02-26 19:15 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-23 23:53 [PATCH] net: bcmgenet: Reset RBUF on first open Maarten Vanraes
2024-02-26 17:34 ` Florian Fainelli
2024-02-26 19:14   ` Maarten [this message]
2024-02-26 23:13   ` Doug Berger
2024-02-27 12:53     ` Paolo Abeni
2024-03-05 15:13     ` Jakub Kicinski
2024-03-05 20:36       ` Maarten
2024-03-05 21:07         ` Jakub Kicinski
2024-03-06  8:03           ` Maarten
2024-03-16 11:53     ` Maarten
2024-03-19 16:56       ` Florian Fainelli
2024-03-19 21:11         ` Maarten
2024-03-19 21:50           ` Florian Fainelli

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=47ba4ef5a42fe7412d7e3432a0995464@rmail.be \
    --to=maarten@rmail.be \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=florian.fainelli@broadcom.com \
    --cc=netdev@vger.kernel.org \
    --cc=opendmb@gmail.com \
    --cc=phil@raspberrypi.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.