Announcement

Collapse
No announcement yet.

The Leading Cause Of The Recent Linux Kernel Power Problems

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

  • #46
    Originally posted by agd5f View Post
    Coreboot is not a magic bullet.
    It may not be a magic bullet, and is still a hell if you do not have the hardware specs, but it is a hell of a lot easier to fix yourself then a binary blob...

    Comment


    • #47
      The ASPM-related messages from kernel can be very confusing, but there is an easy way to test if ASPM is active: Write something to /sys/module/pcie_aspm/parameters/policy

      I get this on new kernels WITHOUT pcie_aspm=force:

      Code:
      $ sudo echo powersave > /sys/module/pcie_aspm/parameters/policy
      bash: echo: write error: Operation not permitted
      On older kernels (I tested 2.6.36) or with pcie_aspm=force the value can be changed.

      Comment


      • #48
        Originally posted by ahlaht View Post
        The ASPM-related messages from kernel can be very confusing, but there is an easy way to test if ASPM is active: Write something to /sys/module/pcie_aspm/parameters/policy
        That's a good way to find out before rebooting the system, thanks. In my Sony Vaio EB's /var/log/dmesg, ASPM only appear once -- and that's from an older kernel. But the policy file indeed cannot be modified. I'll try forcing it when I get home.

        To the earlier poster with a Vaio -- which model? I'm guessing the top-line Z and S models might have a better BIOS than the ones in the budget lines.

        Comment


        • #49
          Originally posted by Xake View Post
          http://smolt.fedoraproject.org/static/stats/stats.html

          This site also tells a story...
          "System Product Name", "System Name" and "To Be Filled By O.E.M. To Be Filled By O.E.M." are all the predefined values, and supposed to be filled in by the BIOS developers before shipping. If they cannot even fill this in....
          To Be Filled By O.E.M. sounds like ASRock.

          Comment


          • #50
            Intel BIOS too?

            My motherboard is an Intel DP55WG and the BIOS is written by Intel.

            ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
            Another possibility is that the kernel code that makes the above decision isn't quite right.

            Comment


            • #51
              Originally posted by Rabauke View Post
              As far as I got it now:

              If the kernel disables ASPM, it's a BIOS bug (on newer systems)?
              I got a Thinkpad 410. So I request Lenovo to fix that?
              I have a Lenovo Thinkpad T520 and I have the same situation. I think I will call Lenovo about this.

              By the way, power consumption dropped from about 26 watts to 15 watts, which is about a 40% difference. Estimates on battery life increased from 5 hours to 8 hours, which is in-line with the battery life figures that I have seen on review sites. This is a new Sandy Bridge Optimus notebook that I purchased last month, so I was affected by the regression on day 1.

              Comment


              • #52
                FWIW, neither of my main systems appears to have the bug. I get:

                [adamw@adam cheese (f15 %)]$ cat /sys/module/pcie_aspm/parameters/policy
                default performance [powersave]

                indicating that powersave is the current policy, I guess, on both my laptop (Sony Vaio Z) and desktop (Asus P8P67 Deluxe mobo), running 2.6.38 kernels with no special parameters.

                Comment


                • #53
                  Originally posted by ahlaht View Post
                  Code:
                  $ sudo echo powersave > /sys/module/pcie_aspm/parameters/policy
                  bash: echo: write error: Operation not permitted
                  I think you should type that as root, not with sudo. BTW I'm not getting this error, but:
                  Code:
                  $ sudo echo powersave > /sys/module/pcie_aspm/parameters/policy 
                  bash: /sys/module/pcie_aspm/parameters/policy: Permission denied
                  However, as root, I'm getting what you wrote:
                  Code:
                  # echo powersave > /sys/module/pcie_aspm/parameters/policy
                  bash: echo: write error: Operation not permitted

                  Comment


                  • #54
                    I've just tried on my Gigabyte H55N-USB3 mobo, no improvement at all here. Still 49W idle (even after setting /sys/module/pcie-aspm/etc. to powersave.) No improvement either when the CPU is in heavy use, or when running "vblank_mode=0 glxgears".

                    I don't have any PCIe card though, if that matters.

                    Comment


                    • #55
                      So I take it this bug doesn't effect you if you have on processor graphics such as sandy bridge?

                      Comment


                      • #56
                        Originally posted by stqn View Post
                        I think you should type that as root, not with sudo.
                        Yes, you are right. Perhaps I wrote the command wrong. I don't actually use sudo myself. I assume something like this should work with sudo:

                        Code:
                        $ sudo sh -c "echo powersave > /sys/module/pcie_aspm/parameters/policy"

                        Comment


                        • #57
                          I'd definitely pay some extra euros for a phoronix approved BIOS/Coreboot implementation. But I usually buy extraordinary hardware like my Raon Everun Note - small companies that have problems to get their things out even with glitches. Still looking for a 7" Z-Series APU device (200 x 120 mm max.).

                          Comment


                          • #58
                            Originally posted by esquio View Post
                            As some people have seen, for some equipment setting pcie_aspm=force
                            doesn't enable ASPM (I've a HP i5 laptop also). Message is:
                            [ 0.000000] PCIe ASPM is forcedly enabled -> (Result of pcie_aspm=force)
                            [ 0.809691] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
                            -> (Result of crap ACPI tables. FADT for beeing more precise)

                            Dumping and disassembling the ACPI tables, and looking into FACP, you can read:
                            PCIe ASPM Not Supported (V4) : 1
                            So the kernel, even when forcing aspm, is disabling it due to not support claimed by the ACPI tables.

                            In my particular case, my laptop (HP with core i5) has been giving me a lot of problems due to bad ACPI tables related to hybrid graphics (DSDT table), and now the power draining pbroblems results from the same.

                            The real origin for most of this problems are related to buggy/crappy ACPI tables made by manufacturers like HP and others. Two reasons arise here for doing that:

                            First is that many manufacturers use Microsoft iasl compiler instead of Intel one, being the MS one more permissive and far less standard compliant than Intel one. Linux uses intel standards, so a problem is reached here. Use of Microsoft compiler gives more compliance with W7 than with ACPI standars, and so is favorable for this purpose. It's like the past problem with IE6 and mozilla with HTML standars, mozilla was close to the standard, but pages were mainly designed for IE.

                            And second, that many manufactures have agreements with MS (Haven't you seen the W7 recommended logo?), so using MS compiler and enhancing the divergence with the standard, or directly giving bad options when no W7 OS could be part of their agreement, as it's easy to demonstrate for some HP laptops.

                            Reaching this point, I think that the real step forward for Linux market share growth,
                            is to have a very strict database of Linux-compliant hardware. Ubuntu has started to do this in: http://www.ubuntu.com/certification/
                            and I'm sure that my next laptop will be from that list.

                            The problem with this list is that it only contains ubuntu certified systems, and probably canonical has no so much equipment to test, so the list, right now, is small.
                            At this point, an effort to develop a live iso cd/usb with a full set of tests that can ensure users that they are buying a Linux-compatible equipment would be very nice.
                            This automated test should automatically report the results and feed a database of certified and not certified equipment for the iso version. This will allow users to chose ubuntu certified equipment (mainly enterprise grade), or test-suite certified equipment, avoiding to buy non-certified equipment, and thus avoiding
                            a lot of bugs and developer efforts.

                            If the iso test-suite is fully automated and works well, I could expect that many people like me, and even vendors will run it in their selling equipment, and so, It could reach a point (If MS lets that happens) that some manufacturers stop their policies of ACPI sabotage.

                            Think twice, problems like this, hybrid, and other never would happen without the ACPI crap/buggy/sabotage tables by makers.
                            Now what if you rebuild the ACPI tables with the Intel iasl and override the broken table with the rebuilt one in the kernel so the broken table is ignored and the kernel uses the patched/recompiled table?

                            I remember there's a kernel option somewhere that lets you override the BIOS's ACPI tables with tables you compiled yourself and I forgot what it is called.

                            Comment


                            • #59
                              Originally posted by DeepDayze View Post
                              I remember there's a kernel option somewhere that lets you override the BIOS's ACPI tables with tables you compiled yourself and I forgot what it is called.
                              I think you are just confusing it with the DSDT table..

                              Comment


                              • #60
                                Yes, in old kernels you can override the DSTD table. (only the DSDT, not all the tables),
                                but the option was taked out from kernel some years ago. The reason was that you can really break some things with that.

                                In the present times, I've read that some people that want to run OSX in their PCs, do some kind ok modified tables and BIOSes for their systems, but it's no Linux compatible.

                                About the Linux firmware kit, and the Fedora hardware list (I didn't knew the latter, and it's interesting). Yes, I was refering to some mix of this projects in an automated live iso that tests and send results to a centralized service.

                                About the other point. I know that linux kernel doesn't use the Intel iasl, but it takes ACPI specifications mainly from Intel, and so they have similarities when dealing with no Intel compliant tables (AFAIK)

                                Comment

                                Working...
                                X