Re: My transfer ring grew to 740 segments

David Laight
2025-03-16T13:20:50Z

On Sun, 16 Mar 2025 11:27:44 +0100
Michał Pecio <michal.pecio@gmail.com> wrote:

> On Fri, 14 Mar 2025 19:15:36 +0000, David Laight wrote:
> > Several years ago I found a bug in one of the asmedia chips that it
> > only processed one entry from the command ring each time the doorbell
> > was rung (the normal transfers were fine).
> > It would get 'out of step' so every time you sent a new command an
> > old one got executed instead - very confusing.
>
>
> Interesting, but it doesn't seem to reproduce here.
> I tried Promontory, ASM3142, ASM1142, ASM1042.

So it isn't what you are hitting.

>
...
> Was it supposed to happen every time, or only randomly?

It happened whenever two commands got queued.
So the usb-net initialisation hit it.

> > I don't remember seeing the bug 'worked around' while I was actively
> > looking at the changes - so it may still be present.
> > So setting up the ethernet interface I was using only worked most of
> > the time. Reproducible by adding two commands but only ringing the
> > bell once. I fixed it by ringing the doorbell again in the completion
> > interrupt path.
>
> I don't see any evidence of such workaround today.

The machine that failed is 'no longer with us'.
Was an AMD piledriver (or similar vintage) with (IIRC) an asmedia USB3
controller.

The project I was working on got canned - so I stopped persuing fixes.

David

>
> Regards,
> Michal