Announcement

Collapse
No announcement yet.

The Ryzen 3000 Boot Problem With Newer Linux Distros Might Be Due To RdRand Issue

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • The Ryzen 3000 Boot Problem With Newer Linux Distros Might Be Due To RdRand Issue

    Phoronix: The Ryzen 3000 Boot Problem With Newer Linux Distros Might Be Due To RdRand Issue

    As outlined yesterday, AMD's Ryzen 3000 processors are very fast but having issues booting newer Linux distributions. The exact issue causing that boot issue on 2019 Linux distribution releases doesn't appear to be firmly resolved yet but some are believing it is an RdRand instruction issue on these newer processors manifested by systemd...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    I find it amusing that Windows is very resilient towards hardware and you can easily install something like Windows XP from 2001 on brand-new 2019 PCs while Linux has always had troubles booting even on modern PCs.

    Comment


    • #3
      Originally posted by birdie View Post
      I find it amusing that Windows is very resilient towards hardware and you can easily install something like Windows XP from 2001 on brand-new 2019 PCs while Linux has always had troubles booting even on modern PCs.
      The problem here seems to be that systemd directly uses the rdrand instruction from the CPU without reading the AMD Programmers Manual.


      Hardware modifies the CF flag to indicate whether the value returned in the destination register is valid. If CF = 1, the value is valid. If CF = 0, the value is invalid. Software must test the state of the CF flag prior to using the value returned in the destination register to determine if the value is valid. If the returned value is invalid, software must execute the instruction again. Software should implement a retry limit to ensure forward progress of code.
      As far as I can see they are not doing this: https://github.com/systemd/systemd/p...014d0eb6bae077

      Looks like a systemd bug to me.

      edit: My bad. Seems to be a CPU bug. Sorry.
      Last edited by -MacNuke-; 08 July 2019, 12:15 PM.

      Comment


      • #4
        Originally posted by birdie View Post
        I find it amusing that Windows is very resilient towards hardware and you can easily install something like Windows XP from 2001 on brand-new 2019 PCs while Linux has always had troubles booting even on modern PCs.
        yeah, no systemd no problem here on my side ,-)

        Comment


        • #5
          As the article states,it's the brand new Linux, which doesn't boot. Elder work fine. If your OS doesn't provide a driver for the hardware, you won't have issues.

          Comment


          • #6
            birdie I remember Windows XP needed SATA drivers on floppy to detect hard drives so installation wasn't that straightforward (got ASUS A7N8X Deluxe so YMMV).
            I hope AMD can resolve this problem soon. I'm considering building my first PC in many years and team red looks very promising.

            Comment


            • #7
              Originally posted by -MacNuke- View Post

              The problem here seems to be that systemd directly uses the rdrand instruction from the CPU without reading the AMD Programmers Manual.




              As far as I can see they are not doing this: https://github.com/systemd/systemd/p...014d0eb6bae077

              Looks like a systemd bug to me.
              The comment in the commit you linked to states that despite CF=1 it STILL returns -1 all the time.

              Comment


              • #8
                Originally posted by -MacNuke- View Post

                The problem here seems to be that systemd directly uses the rdrand instruction from the CPU without reading the AMD Programmers Manual.




                As far as I can see they are not doing this: https://github.com/systemd/systemd/p...014d0eb6bae077

                Looks like a systemd bug to me.
                At least Poettering himself says they _are_ checking for the CF flag and AMD family 22 CPU's are reporting a success when returning garbage values: https://github.com/systemd/systemd/i...ment-490276949

                Yes, it appears that AMD is not correctly setting CF. We check for that, and are actually entirely fine if it's not set and will fall back to getrandom() in that case.

                See: https://github.com/systemd/systemd/b...dom-util.c#L54

                Comment


                • #9
                  Originally posted by -MacNuke- View Post

                  The problem here seems to be that systemd directly uses the rdrand instruction from the CPU without reading the AMD Programmers Manual.




                  As far as I can see they are not doing this: https://github.com/systemd/systemd/p...014d0eb6bae077

                  Looks like a systemd bug to me.
                  Has this been reported to them?

                  Comment


                  • #10
                    Originally posted by flecht View Post
                    birdie I remember Windows XP needed SATA drivers on floppy to detect hard drives so installation wasn't that straightforward (got ASUS A7N8X Deluxe so YMMV).
                    I hope AMD can resolve this problem soon. I'm considering building my first PC in many years and team red looks very promising.
                    Yep, that's true but still ntoskrnl is sturdy as ****. An embedding SATA drivers was a no-brainer.

                    Comment

                    Working...
                    X