On Tue, Aug 30, 2022 at 07:17:19AM +0200, Marcus Glocker wrote:

> Periodic transfers on dwctwo(4) work very unreliable today.  If I want
> to use my RPI3B+ as a workstation, the keyboard is working so
> unreliable, I can't hardly log-in to X.  Playing USB audio isn't fun
> either.
> 
> After circulating this diff internally for a while, and merging back the
> received feedback, I'm sending it out here.  This is version seven of
> the diff.  It includes another change, which is to run dwctwo(4) on
> IPL_VM instead of IPL_USB, like NetBSD does it already, and as briefly
> discussed with kettenis@.  It enhances the reliability of the periodic
> transfers further by prioritizing them against IPL_BIO interrupts, as
> i.e. coming from bcmsdhost(4).
> 
> The other majority of the diff contains the merging with the
> Linux driver, which did a large rework on the periodic scheduling
> to overcome similar issues we are seeing currently.  Also being
> in sync with the Linux driver will make future adaption of improvements
> much more easy.  Today we are so much out of sync, we can hardly adapt
> patches from there.
> 
> With this diff following tasks can run in parallel on my RPI3B+:
> 
>       * Reliable keyboard.
>       * USB audio streaming.
>       * USB video streaming.
>       * Disk operations.
> 
> Still on high system interrupts, audio will crackle a bit, and the
> keyboard will sometimes miss or repeat keystrokes.  I have some ideas
> on how to further improve that once the diff should make it in, like
> scheduling continuous transfers for isoc and interrupt pipes.  See my
> recent diff about 'Continuous USB transfers'.
> 
> I have tested it for quite a while on arm64 and regression tested on
> octeon.  As a summary;  It's still not perfect, but it's better than
> before, and I think it's the way forward to get still better :-)
> 
> Further testing, comments, and OKs welcome.

In the meantime I also have tested the uaudio(4) recording on the
RPI3B+;  While with a snapshot kernel there is consistent noise in
the recording, the recording with the synced driver is clear.

Reply via email to