Is that a thing at all? I doubt it but thought I’d check just in case.

    • Avid AmoebaOP
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      1 day ago

      Already done. I’m just trying to exhaust all the hypotheses I have in case I stumble upon a durable workaround that is applicable for others and cheaper. Good USB add-in cards are not cheap.

    • Avid AmoebaOP
      link
      fedilink
      arrow-up
      5
      arrow-down
      9
      ·
      edit-2
      1 day ago

      Oh yes, X would be AMD fixing their defective USB controllers but that won’t happen on a system produced years ago. 😂

      • gravitas_deficiency@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        17
        arrow-down
        1
        ·
        edit-2
        1 day ago

        You are evidently missing the entire point of what the X-Y problem is.

        What are you ACTUALLY trying to accomplish here? Why do (think) you need to throttle your USB speed to 50%?

        • Avid AmoebaOP
          link
          fedilink
          arrow-up
          11
          ·
          edit-2
          1 day ago

          I am trying to transfer data via USB at high speed without data corruption, silent resets and occasional device disconnects. Those are things that happen because the USB controllers on my motherboard made by AMD with some help from ASMedia do not function correctly at the speed they advertise. So given the problem the right solution is to get a firmware or hardware fix for these USB controllers, however that’s unlikely to happen. So I’m trying to find a workaround. I already have one (PCIe add-in card) but now I’m also testing running the bad controllers at half-speed which seems successful so far but I was wondering if there’s a way to do it in software. I’m currently bottlenecking the links by using 5Gb hubs between the controllers and the devices.

          • gravitas_deficiency@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            10
            ·
            edit-2
            1 day ago

            A bit of searching brought me here - would this suit your purposes?

            Edit: amusingly, one of the replies to the original question also points out that this is yet another classical example of the X-Y problem

            • Avid AmoebaOP
              link
              fedilink
              arrow-up
              7
              ·
              edit-2
              1 day ago

              Unfortunately it won’t because the transfers are happening between ZFS and the hardware storing the data so I can’t control the data rate at the application level (there are many different applications) or even at the ZFS level. This is why in this particular case I’m stuck with a potential hardware-related workaround. I mean I could do something stupid like configuring a suboptimal recordsize in ZFS but there could still be spikes and I’d prefer to get the hardware to stop losing bits and hoping ZFS would catch that. Decreasing data rates is a generally acceptable strategy to deal with signalling issues, if the decreased rate is usable for the application at hand. In my case it is.

              • gravitas_deficiency@sh.itjust.works
                link
                fedilink
                English
                arrow-up
                8
                ·
                edit-2
                1 day ago

                Heh, we’re still on the X-Y problem to a degree.

                I’d recommend another top-level reply to your post, or a new post, describing precisely how your hardware and ZFS pools are set up, alongside a description of the firmware/stability issues you’re seeing, and solutions you’ve tried already. We’re a bit far down a comment chain at the moment, so you’ll probably get more engagement that way. Not trying to be an ass - this actually sounds like an interesting (and, I’m sure, obnoxious) problem. Putting all the cards on the table will help people give you a more complete answer more quickly.

                • Avid AmoebaOP
                  link
                  fedilink
                  arrow-up
                  7
                  ·
                  1 day ago

                  The thing is that I’m already at the last couple of leaves in the investigation tree and I’m not willing to change anything upwards of the USB driver level. That’s why there isn’t much point in getting people to spin their wheels for solutions I can’t or won’t apply. If I was completely unable to get the data corruption and disconnects under control, I’d trash the system and replace it with Intel. Fortunately, a PCIe add-in USB controller seems to work well so I avoided the most costly solution. At this point I don’t actually need to get the motherboard ports to work well but I’m curious to follow down the signalling rabbit hole because I’m not the only one who’s having this problem and the problem doesn’t affect just this one use case. If I find a solution like an in-line 5Gb USB hub (reduces data rate), or just using USB-C ports instead of USB-A (reduces noise), or using this kind of cable instead of that kind, I could throw that as a cheaper workaround in this ZFS thread and elsewhere. The PCIe cards work but aren’t cheap.

    • Avid AmoebaOP
      link
      fedilink
      arrow-up
      10
      ·
      edit-2
      1 day ago

      Great question. In short, garbagy AMD USB controllers. I recently switched to a newer AMD board and have been hit with the same issues faced by these poor sods. I’ve been conducting testing over the last week, different combinations of ports, cables, loads, add-in PCIe USB controllers. The add-in cards seem to behave well, which is one way the folks from that thread solved their problems. The other being changing to Intel-based systems. Yesterday however I was watching an intro about USB redrivers by TI and they were discussing various signalling issues that could occur and how redrivers help. That led me to form the hypothesis that what I’m experiencing might be signalling related. E.g. that the combination of controllers/ports/cables simply can’t handle 10Gbps. That might be noise from some of those devices or surrounding ones that causes signal loss when operating at 10Gbps, speeds this setup can actually achieve. In order to test that I tried placing the DAS boxes behind a 5Gb hub plugged in a port that has previously shown a failure. So far it’s stable. This is why I was wondering whether there’s some magic in the kernel that could allow configuring 10Gb ports to operate at 5Gb.

        • Avid AmoebaOP
          link
          fedilink
          arrow-up
          3
          ·
          1 day ago

          I’ve been trying. Nothing has worked so far. I’ve got a few more cables/permutations to try.

  • Soleil (she/her ♀)@beehaw.org
    link
    fedilink
    arrow-up
    6
    ·
    1 day ago

    It’ll be compatible with 5 Gbps devices, but if you’re intentionally looking to restrict even 10 Gbps devices down to 5 Gbps for some reason, you might be able to find something in your BIOS that lets you do that, or you can get a USB 3.0 extension cable that’ll limit your speeds to 5 Gbps.

    • Avid AmoebaOP
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 day ago

      The extension cable is a great idea. I’m currently trying 5Gb hubs on the path. Seems to work.

      E: I think the USB-A connector for 5Gb and 10Gb is the same. The 10Gb cable must simply carry double the rate without losing data due to noise. Similar to Cat 5 vs Cat 6 ethernet cables. If so an extension should keep the controller-advertised speed downstream. Seems like hubs are the only option.

      • entropicdrift@lemmy.sdf.org
        link
        fedilink
        arrow-up
        3
        ·
        1 day ago

        There are powered extensions, so one of those might work, but a hub is certainly a comparable price and a more compact solution

  • krolden@lemmy.ml
    link
    fedilink
    arrow-up
    3
    arrow-down
    1
    ·
    1 day ago

    It will use whatever connection speed the device connected supports up to the speed of the host interface

  • Deckweiss@lemmy.world
    link
    fedilink
    arrow-up
    2
    arrow-down
    1
    ·
    edit-2
    1 day ago

    What kind of controller and what kind of Gb are you talking about?

    Storage controller for USB sticks?

    Or gaming controller with an advertised Gb/s USB bandwidth?

    • ferret@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      5
      arrow-down
      2
      ·
      edit-2
      1 day ago

      Probably a USB controller, considering that is what they said explicitly in the title. And probably the bandwidth the controller advertises to downstream devices.

        • Deckweiss@lemmy.world
          link
          fedilink
          arrow-up
          3
          ·
          1 day ago

          Just fyi

          a storage controller on an USB stick also has programmed “Gb” for addressing the flash storage. For example if you want to remove one of the flash chips, you could be asking how to reprogram the controller to use only half of it’s initial capacity. Thats what I was confused about.

          But you actually meant Gb/s.

          • Avid AmoebaOP
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            1 day ago

            You’re right, the correct term is Gb/s or Gbps. Edited.