Swappolube

The SWAPPOLUBE Editor is a graphical user interface to the configuration of several parameters of the N900 kernel with the aim to make it faster.

It has been created with PyQT (PyQt v4.7.5 for Python v2.6) and the functionality is provided by Python.

The package changes a number of kernel parameters when installed and adds a script to event.d to make the changes persistent.

The issue has been discussed in two talk.maemo.org threads: "How to set swappiness" and "Swappolube to lubricate your gui".


Contents

Installation

The application can be installed directly by the Application Manager (HAM) and the Extras repositories. (Check here for its status)

You can also find the latest version in the garage project page.

Dependencies

The editor depends (not verified yet) at:

  • python2.5
  • python2.5-qt4-gui
  • python2.5-qt4-core
  • python2.5-qt4-maemo5

Usage

When it starts it loads a recommended configuration and the options already will be shown in the appropriate sections of the GUI.

FIXME: add explanations

Main configuration

  • The first row of checkboxes is to enable the setting. If unchecked it will not write anything for this option.
  • The second row if checked will give a "1" if not then it's a "0" , i.e. True/False.

See Current

See Proposed

Drop down menu

Popup Menu

Several popups inform the user on the action taken.

New Config Applied

New Config Created

Delete Tuning File

Credits

File:Swappolube credits.png

FIXME: add functionality

Explanation of options

  • Swappiness
    • echo "30" > /proc/sys/vm/swappiness
    • echo "0" > /proc/sys/vm/page-cluster
  • Laptop Mode
    • Description: laptop_mode is a knob that controls "laptop mode". When the knob is set, any physical disk I/O (that might have caused the hard disk to spin up, see /proc/sys/vm/block_dump) causes Linux to flush all dirty blocks. The result of this is that after a disk has spun down, it will not be spun up anymore to write dirty blocks, because those blocks had already been written immediately after the most recent read operation. The value of the laptop_mode knob determines the time between the occurrence of disk I/O and when the flush is triggered. A sensible value for the knob is 5 seconds. Setting the knob to 0 disables laptop mode.
    • Default: "0"
    • Suggested: "1"
    • echo "1" > /proc/sys/vm/laptop_mode
    • echo "1" > /proc/sys/vm/oom_kill_allocating_task
    • echo "0" > /proc/sys/vm/dirty_expire_centisecs
    • echo "0" > /proc/sys/vm/dirty_writeback_centisecs
    • echo "60" > /proc/sys/vm/dirty_background_ratio
    • echo "95" > /proc/sys/vm/dirty_ratio
    • echo "0" > /proc/sys/net/ipv4/tcp_timestamps
    • echo "1" > /proc/sys/net/ipv4/tcp_no_metrics_save
  • VFS Cache

Versions:

v.0.2.0-2 (current)

  • Changes:
    • Change of the Laptop Mode setting to string.
    • Updated description.
    • Some UI changes - beautifications.
  • issues:
    • none known/reported.

v.0.2.0-1

  • Changes:
    • Added two new buttons (current & proposed) to set the settings in the GUI.
    • Added icons for the application manager and the desktop.
    • Many code changes/splits in methods.
    • Added several protections when handling updates.
    • Fixed in GUI directional errors.
    • Constrained the entry values to 4 digits.

v.0.1.0-8

  • changelog:
    • New button to update the settings.
    • Transformed several fields from boolean to strings.

NOTE: For older versions please see the changelogs in the garage page

Future Development

  • Read the current configuration stored in the tuning script and automatically display it.
  • Decide an appropriate name.

Swappolube-nogui

For those who don't want to tinker too much with kernel parameters, the package swappolube-nogui provides a fixed tuning profile "known to work". Kernel parameters are modified at installation time, and the modification persist at the next boots. Package removal reverts parameters to the default values. The swappolube-nogui package conflicts with the swappolube package because both use the same script /etc/event.d/tuning for persistence. The common application managers should prompt for removal of one when trying to install the other.

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 only.

Disclaimer

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.