ACC SHELL

Path : /usr/share/doc/manual/opensuse-manuals_en/manual/
File Upload :
Current File : //usr/share/doc/manual/opensuse-manuals_en/manual/cha.pmanage.html

<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 31. Power Management</title><link rel="stylesheet" href="susebooks.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="Documentation"><link rel="up" href="part.reference.mobility.html" title="Part VI. Mobility"><link rel="prev" href="cha.mobile.html" title="Chapter 30. Mobile Computing with Linux"><link rel="next" href="cha.wireless.wlan.html" title="Chapter 32. Wireless LAN"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header" border="0" class="bctable"><tr><td width="80%"><div class="breadcrumbs"><p><a href="index.html"> Documentation</a><span class="breadcrumbs-sep"> &gt; </span><a href="book.opensuse.reference.html">Reference</a><span class="breadcrumbs-sep"> &gt; </span><a href="part.reference.mobility.html">Mobility</a><span class="breadcrumbs-sep"> &gt; </span><strong><a accesskey="p" title="Chapter 30. Mobile Computing with Linux" href="cha.mobile.html"><span>&#9664;</span></a>  <a accesskey="n" title="Chapter 32. Wireless LAN" href="cha.wireless.wlan.html"><span>&#9654;</span></a></strong></p></div></td></tr></table></div><div class="chapter" title="Chapter 31. Power Management"><div class="titlepage"><div><div><h2 class="title"><a name="cha.pmanage"></a>Chapter 31. Power Management<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#cha.pmanage">¶</a></span></h2></div></div></div><div class="toc"><p><b>Contents</b></p><dl><dt><span class="sect1"><a href="cha.pmanage.html#sec.pmanage.save">31.1. Power Saving Functions</a></span></dt><dt><span class="sect1"><a href="cha.pmanage.html#sec.pmanage.acpi">31.2. Advanced Configuration and Power Interface (ACPI)</a></span></dt><dt><span class="sect1"><a href="cha.pmanage.html#sec.pmanage.silenthd">31.3. Rest for the Hard Disk</a></span></dt><dt><span class="sect1"><a href="cha.pmanage.html#sec.powersave.trouble">31.4. Troubleshooting</a></span></dt><dt><span class="sect1"><a href="cha.pmanage.html#sec.powersave.info">31.5. For More Information</a></span></dt></dl></div><a class="indexterm" name="idx.power_management"></a><a class="indexterm" name="idx.laptops_power_management"></a><a class="indexterm" name="id502733"></a><p>
  Power management is especially important on laptop computers, but is also
  useful on other systems. ACPI (Advanced Configuration and Power Interface)
  is available on all modern computers (laptops, desktops, and servers).
  Power management technologies require suitable hardware and BIOS routines.
  Most laptops and many modern desktops and servers meet these requirements.
  It is also possible to control CPU frequency scaling to save power or
  decrease noise.
 </p><div class="sect1" title="31.1. Power Saving Functions"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.pmanage.save"></a>31.1. Power Saving Functions<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.pmanage.save">¶</a></span></h2></div></div></div><p>
   Power saving functions are not only significant for the mobile use of
   laptops, but also for desktop systems. The main functions and their use
   in ACPI are:
  </p><div class="variablelist"><dl><dt><span class="term">Standby<a class="indexterm" name="id502773"></a>
    </span></dt><dd><p>
      not supported.
     </p></dd><dt><span class="term">Suspend (to memory)<a class="indexterm" name="id502797"></a>
    </span></dt><dd><p>
      This mode writes the entire system state to the RAM. Subsequently, the
      entire system except the RAM is put to sleep. In this state, the
      computer consumes very little power. The advantage of this state is
      the possibility of resuming work at the same point within a few
      seconds without having to boot and restart applications. This function
      corresponds to the ACPI state <code class="literal">S3</code>. The support of
      this state is still under development and therefore largely depends on
      the hardware.
     </p></dd><dt><span class="term">Hibernation (suspend to disk)<a class="indexterm" name="id502830"></a>
    </span></dt><dd><p>
      In this operating mode, the entire system state is written to the hard
      disk and the system is powered off. There must be a swap partition at
      least as big as the RAM to write all the active data. Reactivation
      from this state takes about 30 to 90 seconds. The state prior to the
      suspend is restored. Some manufacturers offer useful hybrid variants
      of this mode, such as RediSafe in IBM Thinkpads. The corresponding
      ACPI state is <code class="literal">S4</code>. In Linux, suspend to disk is
      performed by kernel routines that are independent from ACPI.
     </p></dd><dt><span class="term">Battery Monitor<a class="indexterm" name="id502863"></a>
    </span></dt><dd><p>
      ACPI checks the battery charge status and provides information about
      it. Additionally, it coordinates actions to perform when a critical
      charge status is reached.
     </p></dd><dt><span class="term">Automatic Power-Off</span></dt><dd><p>
      Following a shutdown, the computer is powered off. This is especially
      important when an automatic shutdown is performed shortly before the
      battery is empty.
     </p></dd><dt><span class="term">Processor Speed Control</span></dt><dd><p>
      In connection with the CPU, energy can be saved in three different
      ways: frequency and voltage scaling (also known as
      <span class="productname">PowerNow!</span> or
      <span class="productname">Speedstep</span>), throttling and putting the
      processor to sleep (C-states). Depending on the operating mode of the
      computer, these methods can also be combined.
     </p></dd></dl></div></div><div class="sect1" title="31.2. Advanced Configuration and Power Interface (ACPI)"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.pmanage.acpi"></a>31.2. Advanced Configuration and Power Interface (ACPI)<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.pmanage.acpi">¶</a></span></h2></div></div></div><a class="indexterm" name="idx.power_management_ACPI"></a><p>
   ACPI was designed to enable the operating system to set up and control
   the individual hardware components. ACPI supersedes both Power Management
   Plug and Play (PnP) and Advanced Power Management (APM). It delivers
   information about the battery, AC adapter, temperature, fan and system
   events, like <span class="quote">&#8220;<span class="quote">close lid</span>&#8221;</span> or <span class="quote">&#8220;<span class="quote">battery low.</span>&#8221;</span>
  </p><p>
   The BIOS provides tables containing information about the individual
   components and hardware access methods. The operating system uses this
   information for tasks like assigning interrupts or activating and
   deactivating components. Because the operating system executes commands
   stored in the BIOS, the functionality depends on the BIOS implementation.
   The tables ACPI can detect and load are reported in
   <code class="filename">/var/log/boot.msg</code>. See
   <a class="xref" href="cha.pmanage.html#sec.pmanage.probs" title="31.2.3. Troubleshooting">Section 31.2.3, &#8220;Troubleshooting&#8221;</a> for more information about
   troubleshooting ACPI problems.
  </p><a class="indexterm" name="id502981"></a><div class="sect2" title="31.2.1. Controlling the CPU Performance"><div class="titlepage"><div><div><h3 class="title"><a name="sec.pmanage.powernow"></a>31.2.1. Controlling the CPU Performance<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.pmanage.powernow">¶</a></span></h3></div></div></div><p>
    The CPU can save energy in three ways:
   </p><div class="itemizedlist"><ul class="itemizedlist" type="bullet"><li class="listitem" style="list-style-type: disc"><p>
      <a class="xref" href="cha.pmanage.html#sec.pmanage.powernow.scale" title="31.2.1.1. Frequency and Voltage Scaling">Frequency and Voltage Scaling</a>
     </p></li><li class="listitem" style="list-style-type: disc"><p>
      <a class="xref" href="cha.pmanage.html#sec.pmanage.powernow.throttle" title="31.2.1.2. Throttling the Clock Frequency (T-states)">Throttling the Clock Frequency (T-states)</a>
     </p></li><li class="listitem" style="list-style-type: disc"><p>
      <a class="xref" href="cha.pmanage.html#sec.pmanage.powernow.sleep" title="31.2.1.3. Putting the Processor to Sleep (C-states)">Putting the Processor to Sleep (C-states)</a>
     </p></li></ul></div><p>
    Depending on the operating mode of the computer, these methods can be
    combined. Saving energy also means that the system heats up less and the
    fans are activated less frequently.
   </p><p>
    Frequency scaling and throttling are only relevant if the processor is
    busy, because the most economic C-state is applied anyway when the
    processor is idle. If the CPU is busy, frequency scaling is the
    recommended power saving method. Often the processor only works with a
    partial load. In this case, it can be run with a lower frequency.
    Usually, dynamic frequency scaling controlled by the kernel on-demand
    governor is the best approach.
   </p><p>
    Throttling should be used as the last resort, for example, to extend the
    battery operation time despite a high system load. However, some systems
    do not run smoothly when they are throttled too much. Moreover, CPU
    throttling does not make sense if the CPU has little to do.
   </p><div class="sect3" title="31.2.1.1. Frequency and Voltage Scaling"><div class="titlepage"><div><div><h4 class="title"><a name="sec.pmanage.powernow.scale"></a>31.2.1.1. Frequency and Voltage Scaling<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.pmanage.powernow.scale">¶</a></span></h4></div></div></div><p>
     <span class="productname">PowerNow!</span> and
     <span class="productname">Speedstep</span> are the designations AMD and Intel
     use for this technology. However, this technology is also applied in
     processors of other manufacturers. The clock frequency of the CPU and
     its core voltage are reduced at the same time, resulting in more than
     linear energy savings. This means that when the frequency is halved
     (half performance), far less than half of the energy is consumed. This
     technology is independent from ACPI.
    </p><p>
     There are two main approaches to performing CPU frequency
     scaling&#8212;by the kernel itself (CPUfreq infrastructure with
     in-kernel governors) or by a userspace application. The in-kernel
     governors are policy governors that can change the CPU frequency based
     on different criteria (a sort of pre-configured power schemes for the
     CPU). The following governors are available with the CPUfreq
     subsystem:
    </p><div class="variablelist"><dl><dt><span class="term">Performance Governor</span></dt><dd><p>
        The CPU frequency is statically set to the highest possible for
        maximum performance. Consequently, saving power is not the focus of
        this governor.
       </p></dd><dt><span class="term">Powersave Governor</span></dt><dd><p>
        The CPU frequency is statically set to the lowest possible. This can
        have severe impact on the performance, as the system will never rise
        above this frequency no matter how busy the processors are.
       </p></dd><dt><span class="term">On-demand Governor</span></dt><dd><p>
        The kernel implementation of a dynamic CPU frequency policy: The
        governor monitors the processor utilization. As soon as it exceeds a
        certain threshold, the governor will set the frequency to the
        highest available. If the utilization is less than the threshold,
        the next lowest frequency is used. If the system continues to be
        underutilized, the frequency is again reduced until the lowest
        available frequency is set.
       </p></dd><dt><span class="term">Conservative Governor</span></dt><dd><p>
        Similar to the on-demand implementation, this governor also
        dynamically adjusts frequencies based on processor utilization,
        except that it allows for a more gradual increase in power. If
        processor utilization exceeds a certain threshold, the governor does
        not immediately switch to the highest available frequency (as the
        on-demand governor does), but only to next higher frequency
        available.
       </p></dd></dl></div><p>
     The relevant files for the kernel governors are located at
     <code class="filename">/sys/devices/system/cpu/cpu*/cpufreq/</code>. If your
     machine has more than one CPU,
     <code class="filename">/sys/devices/system/cpu/</code> will hold a subdirectory
     for each processor: <code class="filename">cpu0</code>,
     <code class="filename">cpu1</code>, etc. If your system currently uses the
     on-demand or conservative governor, you will see a separate
     subdirectory for those governors in <code class="filename">cpufreq</code>,
     containing the parameters for the governors.
    </p></div><div class="sect3" title="31.2.1.2. Throttling the Clock Frequency (T-states)"><div class="titlepage"><div><div><h4 class="title"><a name="sec.pmanage.powernow.throttle"></a>31.2.1.2. Throttling the Clock Frequency (T-states)<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.pmanage.powernow.throttle">¶</a></span></h4></div></div></div><p>
     This technology omits a certain percentage of the clock signal impulses
     for the CPU. At 25% throttling, every fourth impulse is omitted. At
     87.5%, only every eighth impulse reaches the processor. However, the
     energy savings are a little less than linear. Normally, throttling is
     only used if frequency scaling is not available or to maximize power
     savings. This technology must be controlled by a special process, as
     well. The system interface for Processor Throttling States (T-states)
     is <code class="filename">/proc/acpi/processor/*/throttling</code>.
    </p></div><div class="sect3" title="31.2.1.3. Putting the Processor to Sleep (C-states)"><div class="titlepage"><div><div><h4 class="title"><a name="sec.pmanage.powernow.sleep"></a>31.2.1.3. Putting the Processor to Sleep (C-states)<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.pmanage.powernow.sleep">¶</a></span></h4></div></div></div><p>
     Modern processors have several power saving modes called
     <code class="literal">C-states</code>. They reflect the capability of an idle
     processor to turn off unused components in order to save power. The
     operating system puts the processor to sleep whenever there is no
     activity. In this case, the operating system sends the CPU a
     <span class="command"><strong>halt</strong></span> command. There are three idle states:
     <code class="literal">C1</code>, <code class="literal">C2</code>, and
     <code class="literal">C3</code>. In the most economic state,
     <code class="literal">C3</code>, even the synchronization of the processor cache
     with the main memory is halted. Therefore, this state can only be
     applied if no other device modifies the contents of the main memory via
     bus master activity. Some drivers prevent the use of
     <code class="literal">C3</code>. The current state is displayed in
     <code class="filename">/proc/acpi/processor/*/power</code>.
    </p></div></div><div class="sect2" title="31.2.2. Tools"><div class="titlepage"><div><div><h3 class="title"><a name="sec.pmanage.tools"></a>31.2.2. Tools<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.pmanage.tools">¶</a></span></h3></div></div></div><p>
    To view or adjust the current settings of the CPUfreq subsystem use
    the tools provided by
    <code class="systemitem">cpufrequtils</code> for that.
    After you have installed the
    <code class="systemitem">cpufrequtils</code> package, use the
    <span class="command"><strong>cpufreq-info</strong></span> to retrieve CPUfreq kernel
    information. The <span class="command"><strong>cpufreq-set</strong></span> command can be used to
    modify CPUfreq settings. For example, run the following command as
    <code class="systemitem">root</code> to activate the on-demand governor at runtime:
   </p><pre class="screen">cpufreq-set -g ondemand</pre><p>
    For more details and the available options, refer to the
    <span class="command"><strong>cpufreq-info</strong></span> and the <span class="command"><strong>cpufreq-set</strong></span>
    man pages or run
    <span class="command"><strong>cpufreq-info <code class="option">--help</code></strong></span> or
    <span class="command"><strong>cpufreq-set <code class="option">--help</code></strong></span>,
    respectively.
   </p><p>
    A useful tool for monitoring system power consumption is powerTOP,
    available after installation of the
    <code class="systemitem">powertop</code> package. It
    helps you to identify the reasons for unnecessary high power consumption
    (for example, processes that are mainly responsible for waking up a
    processor from its idle state) and to optimize your system settings to
    avoid these. It supports both Intel and AMD processors. For detailed
    information, refer to the powerTOP project page at
    <a class="ulink" href="http://www.lesswatts.org/projects/powertop/" target="_top">http://www.lesswatts.org/projects/powertop/</a>.
   </p><p>
    Apart from the tools above, the following ACPI utilities is available:
   </p><div class="itemizedlist"><ul class="itemizedlist" type="bullet"><li class="listitem" style="list-style-type: disc"><p>
      To merely display information, like the battery charge level and the
      temperature, you can use the <span class="command"><strong>acpi</strong></span> command. For a
      list of available options, run <span class="command"><strong>acpi --help</strong></span>.
     </p></li><li class="listitem" style="list-style-type: disc"><p>
      For editing the ACPI tables in the BIOS, install the
      <code class="systemitem">acpica</code> package.
     </p></li></ul></div></div><div class="sect2" title="31.2.3. Troubleshooting"><div class="titlepage"><div><div><h3 class="title"><a name="sec.pmanage.probs"></a>31.2.3. Troubleshooting<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.pmanage.probs">¶</a></span></h3></div></div></div><p>
    There are two different types of problems. On one hand, the ACPI code of
    the kernel may contain bugs that were not detected in time. In this
    case, a solution will be made available for download. More often, the
    problems are caused by the BIOS. Sometimes, deviations from the ACPI
    specification are purposely integrated in the BIOS to circumvent errors
    in the ACPI implementation of other widespread operating systems.
    Hardware components that have serious errors in the ACPI implementation
    are recorded in a blacklist that prevents the Linux kernel from using
    ACPI for these components.
   </p><p>
    The first thing to do when problems are encountered is to update the
    BIOS. If the computer does not boot at all, one of the following boot
    parameters may be helpful:
   </p><div class="variablelist"><dl><dt><span class="term">pci=noacpi</span></dt><dd><p>
       Do not use ACPI for configuring the PCI devices.
      </p></dd><dt><span class="term">acpi=ht</span></dt><dd><p>
       Only perform a simple resource configuration. Do not use ACPI for
       other purposes.
      </p></dd><dt><span class="term">acpi=off</span></dt><dd><p>
       Disable ACPI.
      </p></dd></dl></div><div class="warning"><table border="0" cellpadding="3" cellspacing="0" width="100%" summary="Warning: Problems Booting without ACPI"><tr class="head"><td width="32"><img alt="[Warning]" src="admon/warning.png"></td><th align="left">Problems Booting without ACPI</th></tr><tr><td colspan="2" align="left" valign="top"><p>
     Some newer machines (especially SMP systems and AMD64 systems) need
     ACPI for configuring the hardware correctly. On these machines,
     disabling ACPI can cause problems.
    </p></td></tr></table></div><p>
    Sometimes, the machine is confused by hardware that is attached over USB
    or FireWire. If a machine refuses to boot, unplug all unneeded hardware
    and try again.
   </p><p>
    Monitor the boot messages of the system with the command <span class="command"><strong>dmesg
    <code class="option">| grep -2i acpi</code></strong></span> (or all messages, because the
    problem may not be caused by ACPI) after booting. If an error occurs
    while parsing an ACPI table, the most important table&#8212;the DSDT
    (<span class="emphasis"><em>Differentiated System Description Table</em></span>)&#8212;can
    be replaced with an improved version. In this case, the faulty DSDT of
    the BIOS is ignored. The procedure is described in
    <a class="xref" href="cha.pmanage.html#sec.powersave.trouble.acpi" title="31.4.1. ACPI Activated with Hardware Support but Functions Do Not Work">Section 31.4.1, &#8220;ACPI Activated with Hardware Support but Functions Do Not Work&#8221;</a>.
   </p><p>
    In the kernel configuration, there is a switch for activating ACPI debug
    messages. If a kernel with ACPI debugging is compiled and installed,
    experts searching for an error can be supported with detailed
    information.
   </p><p>
    If you experience BIOS or hardware problems, it is always advisable to
    contact the manufacturers. Especially if they do not always provide
    assistance for Linux, they should be confronted with the problems.
    Manufacturers will only take the issue seriously if they realize that an
    adequate number of their customers use Linux.
   </p><div class="sect3" title="31.2.3.1. For More Information"><div class="titlepage"><div><div><h4 class="title"><a name="sec.pmanage.info"></a>31.2.3.1. For More Information<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.pmanage.info">¶</a></span></h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="bullet"><li class="listitem" style="list-style-type: disc"><p>
       <a class="ulink" href="http://tldp.org/HOWTO/ACPI-HOWTO/" target="_top">http://tldp.org/HOWTO/ACPI-HOWTO/</a> (detailed ACPI
       HOWTO, contains DSDT patches)
      </p></li><li class="listitem" style="list-style-type: disc"><p>
       <a class="ulink" href="http://www.acpi.info" target="_top">http://www.acpi.info</a> (Advanced Configuration &amp;
       Power Interface Specification)
      </p></li><li class="listitem" style="list-style-type: disc"><p>
       <a class="ulink" href="http://www.lesswatts.org/projects/acpi/" target="_top">http://www.lesswatts.org/projects/acpi/</a> (the
       ACPI4Linux project at Sourceforge)
      </p></li><li class="listitem" style="list-style-type: disc"><p>
       <a class="ulink" href="http://acpi.sourceforge.net/dsdt/index.php" target="_top">http://acpi.sourceforge.net/dsdt/index.php</a> (DSDT
       patches by Bruno Ducrot)
      </p></li></ul></div><a class="indexterm" name="id503606"></a></div></div></div><div class="sect1" title="31.3. Rest for the Hard Disk"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.pmanage.silenthd"></a>31.3. Rest for the Hard Disk<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.pmanage.silenthd">¶</a></span></h2></div></div></div><p>
   In Linux, the hard disk can be put to sleep entirely if it is not needed
   or it can be run in a more economic or quieter mode. On modern laptops,
   you do not need to switch off the hard disks manually, because they
   automatically enter an economic operating mode whenever they are not
   needed. However, if you want to maximize power savings, test some of the
   following methods, using the <span class="command"><strong>hdparm</strong></span> command.
  </p><p>
   It can be used to modify various hard disk settings. The option
   <code class="option">-y</code> instantly switches the hard disk to the standby mode.
   <code class="option">-Y</code> puts it to sleep. <span class="command"><strong>hdparm <code class="option">-S
   x</code></strong></span> causes the hard disk to be spun down after a certain
   period of inactivity. Replace <em class="replaceable"><code>x</code></em> as follows:
   <code class="literal">0</code> disables this mechanism, causing the hard disk to
   run continuously. Values from <code class="literal">1</code> to
   <code class="literal">240</code> are multiplied by 5 seconds. Values from
   <code class="literal">241</code> to <code class="literal">251</code> correspond to 1 to 11
   times 30 minutes.
  </p><p>
   Internal power saving options of the hard disk can be controlled with the
   option <code class="literal">-B</code>. Select a value from <code class="literal">0</code> to
   <code class="literal">255</code> for maximum saving to maximum throughput. The
   result depends on the hard disk used and is difficult to assess. To make
   a hard disk quieter, use the option <code class="literal">-M</code>. Select a value
   from <code class="literal">128</code> to <code class="literal">254</code> for quiet to fast.
  </p><p>
   Often, it is not so easy to put the hard disk to sleep. In Linux,
   numerous processes write to the hard disk, waking it up repeatedly.
   Therefore, it is important to understand how Linux handles data that
   needs to be written to the hard disk. First, all data is buffered in the
   RAM. This buffer is monitored by the
   <code class="systemitem">pdflush</code> daemon. When the data
   reaches a certain age limit or when the buffer is filled to a certain
   degree, the buffer content is flushed to the hard disk. The buffer size
   is dynamic and depends on the size of the memory and the system load. By
   default, pdflush is set to short intervals to achieve maximum data
   integrity. It checks the buffer every 5 seconds and writes the data to
   the hard disk. The following variables are interesting:
  </p><div class="variablelist"><dl><dt><span class="term"><code class="filename">/proc/sys/vm/dirty_writeback_centisecs</code>
    </span></dt><dd><p>
      Contains the delay until a pdflush thread wakes up (in hundredths of a
      second).
     </p></dd><dt><span class="term"><code class="filename">/proc/sys/vm/dirty_expire_centisecs</code>
    </span></dt><dd><p>
      Defines after which timeframe a dirty page should be written out
      latest. Default is <code class="literal">3000</code>, which means 30 seconds.
     </p></dd><dt><span class="term"><code class="filename">/proc/sys/vm/dirty_background_ratio</code>
    </span></dt><dd><p>
      Maximum percentage of dirty pages until pdflush begins to write them.
      Default is <code class="literal">5</code>%.
     </p></dd><dt><span class="term"><code class="filename">/proc/sys/vm/dirty_ratio</code>
    </span></dt><dd><p>
      When the dirty page exceeds this percentage of the total memory,
      processes are forced to write dirty buffers during their time slice
      instead of continuing to write.
     </p></dd></dl></div><div class="warning"><table border="0" cellpadding="3" cellspacing="0" width="100%" summary="Warning: Impairment of the Data Integrity"><tr class="head"><td width="32"><img alt="[Warning]" src="admon/warning.png"></td><th align="left">Impairment of the Data Integrity</th></tr><tr><td colspan="2" align="left" valign="top"><p>
    Changes to the pdflush daemon settings endanger the data integrity.
   </p></td></tr></table></div><p>
   Apart from these processes, journaling file systems, like
   <code class="systemitem">ReiserFS</code>,
   <code class="systemitem">Ext3</code>,
   <code class="systemitem">Ext4</code> and others write their
   metadata independently from pdflush, which also prevents the hard disk
   from spinning down. To avoid this, a special kernel extension has been
   developed for mobile devices. To make use of the extension, install the
   <code class="systemitem">laptop-mode-tools</code> package and
   see
   <code class="filename">/usr/src/linux/Documentation/laptops/laptop-mode.txt</code>
   for details.
  </p><p>
   Another important factor is the way active programs behave. For example,
   good editors regularly write hidden backups of the currently modified
   file to the hard disk, causing the disk to wake up. Features like this
   can be disabled at the expense of data integrity.
  </p><p>
   In this connection, the mail daemon postfix makes use of the variable
   <code class="systemitem">POSTFIX_LAPTOP</code>. If this variable is set to
   <code class="literal">yes</code>, postfix accesses the hard disk far less
   frequently.
  </p><a class="indexterm" name="id503872"></a><a class="indexterm" name="id503878"></a></div><div class="sect1" title="31.4. Troubleshooting"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.powersave.trouble"></a>31.4. Troubleshooting<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.powersave.trouble">¶</a></span></h2></div></div></div><p>
   All error messages and alerts are logged in the file
   <code class="filename">/var/log/messages</code>. The following sections cover the
   most common problems.
  </p><div class="sect2" title="31.4.1. ACPI Activated with Hardware Support but Functions Do Not Work"><div class="titlepage"><div><div><h3 class="title"><a name="sec.powersave.trouble.acpi"></a>31.4.1. ACPI Activated with Hardware Support but Functions Do Not Work<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.powersave.trouble.acpi">¶</a></span></h3></div></div></div><p>
    If you experience problems with ACPI, search the output of
    <span class="command"><strong>dmesg</strong></span> for ACPI-specific messages by using the command
    <span class="command"><strong>dmesg|grep <code class="option">-i acpi</code></strong></span>.
   </p><p>
    A BIOS update may be required to resolve the problem. Go to the home
    page of your laptop manufacturer, look for an updated BIOS version, and
    install it. Ask the manufacturer to comply with the latest ACPI
    specification. If the errors persist after the BIOS update, proceed as
    follows to replace the faulty DSDT table in your BIOS with an updated
    DSDT:
   </p><div class="procedure" title="Procedure 31.1. Updating the DSDT Table in the BIOS"><a name="id503936"></a><p class="title"><b>Procedure 31.1. Updating the DSDT Table in the BIOS</b></p><p>
     For the procedure below, make sure the following packages are
     installed: <code class="systemitem">kernel-source</code>,
     <code class="systemitem">acpica</code>, and
     <code class="systemitem">mkinitrd</code>.
    </p><ol class="procedure" type="1"><li><p>
      Download the DSDT for your system from
      <a class="ulink" href="http://acpi.sourceforge.net/dsdt/index.php" target="_top">http://acpi.sourceforge.net/dsdt/index.php</a>.
      Check if the file is decompressed and compiled as shown by the file
      extension <code class="literal">.aml</code> (ACPI machine language). If this is
      the case, continue with step 3.
     </p></li><li><p>
      If the file extension of the downloaded table is
      <code class="literal">.asl</code> (ACPI source language) instead, compile it by
      executing the following command:
     </p><pre class="screen">iasl <code class="option">-sa file.asl</code></pre></li><li><p>
      Copy the (resulting) file <code class="filename">DSDT.aml</code> to any
      location (<code class="filename">/etc/DSDT.aml</code> is recommended).
     </p></li><li><p>
      Edit <code class="filename">/etc/sysconfig/kernel</code> and adapt the path to
      the DSDT file accordingly.
     </p></li><li><p>
      Start <span class="command"><strong>mkinitrd</strong></span>. Whenever you install the kernel and
      use <span class="command"><strong>mkinitrd</strong></span> to create an
      <code class="filename">initrd</code> file, the modified DSDT is integrated and
      loaded when the system is booted.
     </p></li></ol></div></div><div class="sect2" title="31.4.2. CPU Frequency Does Not Work"><div class="titlepage"><div><div><h3 class="title"><a name="sec.powersave.trouble.cpufreq"></a>31.4.2. CPU Frequency Does Not Work<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.powersave.trouble.cpufreq">¶</a></span></h3></div></div></div><p>
    Refer to the kernel sources to see if your processor is supported. You
    may need a special kernel module or module option to activate CPU
    frequency control. If the
    <code class="systemitem">kernel-source</code> package is
    installed, this information is available in
    <code class="filename">/usr/src/linux/Documentation/cpu-freq/*</code>.
   </p></div><div class="sect2" title="31.4.3. Suspend and Standby Do Not Work"><div class="titlepage"><div><div><h3 class="title"><a name="sec.powersave.trouble.suspend"></a>31.4.3. Suspend and Standby Do Not Work<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.powersave.trouble.suspend">¶</a></span></h3></div></div></div><p>
    ACPI systems may have problems with suspend and standby due to a faulty
    DSDT implementation (BIOS). If this is the case, update the BIOS.
   </p><p>
    When the system tries to unload faulty modules, the system is arrested
    or the suspend event is not triggered. The same can also happen if you
    do not unload modules or stop services that prevent a successful
    suspend. In both cases, try to identify the faulty module that prevented
    the sleep mode. The log file
    <code class="filename">/var/log/pm-suspend.log</code> contains detailed
    information about what is going on and where possible errors are. Modify
    the <code class="systemitem">SUSPEND_MODULES</code> variable in
    <code class="filename">/usr/lib/pm-utils/defaults</code> to unload problematic
    modules prior to a suspend or standby.
   </p><p>
    Refer to <a class="ulink" href="http://old-en.opensuse.org/Pm-utils" target="_top">http://old-en.opensuse.org/Pm-utils</a> and
    <a class="ulink" href="http://wiki.opensuse.org/SDB:Suspend_to_RAM" target="_top">http://wiki.opensuse.org/SDB:Suspend_to_RAM</a> to get
    more detailed information on how to modify the suspend and resume
    process.
   </p></div></div><div class="sect1" title="31.5. For More Information"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.powersave.info"></a>31.5. For More Information<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.powersave.info">¶</a></span></h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="bullet"><li class="listitem" style="list-style-type: disc"><p>
     <a class="ulink" href="http://www.acpi.info" target="_top">http://www.acpi.info</a> (Advanced Configuration and Power
     Interface Specification)
    </p></li><li class="listitem" style="list-style-type: disc"><p>
     <a class="ulink" href="http://www.lesswatts.org/projects/acpi/" target="_top">http://www.lesswatts.org/projects/acpi/</a> (the ACPI4Linux
     project at Sourceforge)
    </p></li><li class="listitem" style="list-style-type: disc"><p>
     <a class="ulink" href="http://acpi.sourceforge.net/dsdt/index.php" target="_top">http://acpi.sourceforge.net/dsdt/index.php</a> (DSDT patches
     by Bruno Ducrot)
    </p></li><li class="listitem" style="list-style-type: disc"><p>
     <a class="ulink" href="http://wiki.opensuse.org/SDB:Suspend_to_RAM" target="_top">http://wiki.opensuse.org/SDB:Suspend_to_RAM</a>&#8212;How to
     get Suspend to RAM working
    </p></li><li class="listitem" style="list-style-type: disc"><p>
     <a class="ulink" href="http://old-en.opensuse.org/Pm-utils" target="_top">http://old-en.opensuse.org/Pm-utils</a>&#8212;How to modify
     the general suspend framework
    </p></li></ul></div></div></div><div class="navfooter"><table width="100%" summary="Navigation footer" border="0" class="bctable"><tr><td width="80%"><div class="breadcrumbs"><p><a href="index.html"> Documentation</a><span class="breadcrumbs-sep"> &gt; </span><a href="book.opensuse.reference.html">Reference</a><span class="breadcrumbs-sep"> &gt; </span><a href="part.reference.mobility.html">Mobility</a><span class="breadcrumbs-sep"> &gt; </span><strong><a accesskey="p" title="Chapter 30. Mobile Computing with Linux" href="cha.mobile.html"><span>&#9664;</span></a>  <a accesskey="n" title="Chapter 32. Wireless LAN" href="cha.wireless.wlan.html"><span>&#9654;</span></a></strong></p></div></td></tr></table></div></body></html>

ACC SHELL 2018