Announcement

Collapse
No announcement yet.

New Wake Locks Patches Published For Linux Kernel

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

  • New Wake Locks Patches Published For Linux Kernel

    Phoronix: New Wake Locks Patches Published For Linux Kernel

    While this weekend saw the release of the Linux 3.3-rc5 kernel, which Linus Torvalds self-admitted was pretty boring, also hitting the mailing list this past week were new kernel patches to implement auto-sleep and "wake locks" support...

    http://www.phoronix.com/vr.php?view=MTA2Mjg

  • #2
    huh? i could have sworn linux already had this ability and if not, it's pretty easy to write a shell script that suspends automatically based around your wake-ups. am i missing something here?

    btw, i don't use suspend and never really have - i've only had a laptop with a working battery for about a year and i don't like suspending my desktops when they're in the middle of something.

    Comment


    • #3
      Kernel

      I guess the big idea here is to add this functionality to the kernel to make it work out of the box, without the need to script anything. The kernel could also possibly be "more intelligent" about guessing if there's something going on or if it's fine to suspend. Instead of saying "sleep if there's no user input for ten minutes" it should be possible to do something like "sleep if there are no active tasks" (watching a movie, listening to music, downloading a file, ...). Not sure you're able to cover all that with a (simple) script.

      Comment


      • #4
        If the kernel would just count wakeup sources and suspend when they are 0, why can't it just give this number under /proc for userspace to do the same?

        Comment


        • #5
          "controversial work"

          Could someone provide some detail on why this is "controversial work"?

          Comment


          • #6
            Originally posted by Wildfire View Post
            I guess the big idea here is to add this functionality to the kernel to make it work out of the box, without the need to script anything. The kernel could also possibly be "more intelligent" about guessing if there's something going on or if it's fine to suspend. Instead of saying "sleep if there's no user input for ten minutes" it should be possible to do something like "sleep if there are no active tasks" (watching a movie, listening to music, downloading a file, ...). Not sure you're able to cover all that with a (simple) script.
            well, a simple script couldn't but a script in general could. these are the kinds of things that are being added to the kernel that are multiplying it's size - this is not a necessary feature. to me, all that should be added to the kernel are things that add/fix functionality and make your hardware work to its full potential and nothing more. suspend is a functionality thing, but the kernel deciding when it should happen is just a feature.

            this 1 little thing might not seem like a big deal, but this stuff adds up yet people like linus torvalds complain how big the kernel is getting. there's been a lot of changes like this lately and the kernel is really starting to become too much of an all-in-one thing and it shouldn't be. maybe i don't have an intel cpu, but i have to deal with hundreds, possibly thousands of lines of code that target intel-only processors. maybe i don't want drivers for devices i'll never own (such as kinect), but they're added anyway. of course you could argue that i could customize the kernel myself or download a more limited version, but i shouldn't have to.

            the point is, the kernel is being packed full of things that never belonged there in the first place. if i want to suspend my computer automatically, i'll download something for that. if i have an intel cpu, i'll download the fixes for it. if i use a kinect, i'll download the drivers for it myself. its much easier to add features than remove.

            Comment


            • #7
              Originally posted by schmidtbag View Post
              maybe i don't want drivers for devices i'll never own (such as kinect), but they're added anyway. of course you could argue that i could customize the kernel myself or download a more limited version, but i shouldn't have to.

              Seriously, how is anyone going to know beforehand which devices you have and don't have?

              As I see it, this is the least disruptive strategy.

              Comment


              • #8
                Originally posted by sabriah View Post
                Seriously, how is anyone going to know beforehand which devices you have and don't have?

                As I see it, this is the least disruptive strategy.
                well most distros could ship with packages that install most, or all drivers for you. but even if they didn't, linux is notorious for leaving you in the dark with setting it up anyway. i learned almost everything i know on my own. i checked some forums here and there to figure out a weird problem but other than that i didn't look at any guides because they were either outdated, very slow-paced, or incomplete.

                considering linux is very community driven, cramming all these things into 1 big package kinda shrinks the community from offering alternatives.

                Comment


                • #9
                  Originally posted by schmidtbag View Post
                  The point is, the kernel is being packed full of things that never belonged there in the first place. if i want to suspend my computer automatically, i'll download something for that. if i have an intel cpu, i'll download the fixes for it. if i use a kinect, i'll download the drivers for it myself. its much easier to add features than remove.
                  And how do you download all of these things, if your particulare network card isn't supported ootb? This sounds pretty much like what Windows is doing. I have a dual boot setup and on a fresh install I always have to use Linux to download all kinds of things (like network drivers) to get Windows into a usable state. On the other hand, my Linux installation just works.
                  I think the main point about kernel size is aimed towards maintenance. The larger your code base the more difficult it gets to maintain. But it's not something the user needs to be primarily concerned about.
                  Either get yourself a distro that comes with a "reasonable" kernel or, yes, do build it yourself if you're concerned about getting the best possible performance. To be honest, the only place I still do this is my router, to add support for HW encryption (Via Padlock).

                  Comment


                  • #10
                    Originally posted by schmidtbag View Post
                    huh? i could have sworn linux already had this ability and if not, it's pretty easy to write a shell script that suspends automatically based around your wake-ups. am i missing something here?

                    btw, i don't use suspend and never really have - i've only had a laptop with a working battery for about a year and i don't like suspending my desktops when they're in the middle of something.
                    I think you're totally missing something, yes. This isn't S3 suspend-to-RAM or whatever, this is suspending just the CPU to put the device into a low-power mode like Android does these wake/sleep cycles could take place several times a second if necessary. "Wake Locks" are signals that something requires processing either now or at some specified time in the future; any CPU jobs without Wake Locks are assumed not to require computation immediately, so if nothing else is locking the CPU "awake", the device can go to sleep and save some power.

                    The difference to standard power-saving is that this policy is "sleep unless someone explicitly says something needs to be done now" rather than the usual opportunistic "sleep if there's nothing else to do".

                    Comment


                    • #11
                      Originally posted by Wildfire View Post
                      And how do you download all of these things, if your particulare network card isn't supported ootb? This sounds pretty much like what Windows is doing. I have a dual boot setup and on a fresh install I always have to use Linux to download all kinds of things (like network drivers) to get Windows into a usable state. On the other hand, my Linux installation just works.
                      I think the main point about kernel size is aimed towards maintenance. The larger your code base the more difficult it gets to maintain. But it's not something the user needs to be primarily concerned about.
                      Either get yourself a distro that comes with a "reasonable" kernel or, yes, do build it yourself if you're concerned about getting the best possible performance. To be honest, the only place I still do this is my router, to add support for HW encryption (Via Padlock).
                      well obviously stuff like network drivers and other essentials like keyboards would be supported by default. but like i said, the average distro would come with most of the necessary drivers and you just uninstall any extras you don't use (if you so choose) or install what has not been included but not necessary to get a functional system.

                      @cyborg16
                      see, that's exactly what i needed clarification on, and so what you described i think is pretty cool and is something that would be a great addition to the kernel.

                      Comment


                      • #12
                        Your distribution of choice can and should be handling this aspect, why remove them from the kernel source and make it harder for those building images for less popular configurations when your only problem is with what *.ko files are installed on your system?

                        Comment


                        • #13
                          Originally posted by Cyborg16 View Post
                          I think you're totally missing something, yes. This isn't S3 suspend-to-RAM or whatever, this is suspending just the CPU to put the device into a low-power mode like Android does these wake/sleep cycles could take place several times a second if necessary. "Wake Locks" are signals that something requires processing either now or at some specified time in the future; any CPU jobs without Wake Locks are assumed not to require computation immediately, so if nothing else is locking the CPU "awake", the device can go to sleep and save some power.
                          That's what I thought at first, but the article wasn't exactly clear on that. I did some searching through Google, but couldn't find any clear "evidence" either way. In any case, it does sound like a nice feature.

                          @schmidtbag: Isn't that, what a modular kernel is for? The kernel contains just the bare essentials, everything else is a module that is loaded on demand. All you're "wasting" by having modules you never use is a little disk space. I'd rather have some "useless" modules on my disk instead of having to recompile my kernel after buying some new hardware.

                          Comment


                          • #14
                            I hope this patch doesn't introduce additional latency (that's usually the case with low-power states).

                            Comment

                            Working...
                            X