[edit] Introduction

Flopswap is a Swap management Tool for N900.

It features as a GUI to refresh your devices Linux Swap to speed up your VM.

[edit] Partition Requirements

Before Flopswap will function your micro SD card needs setting up with two equally sized linux-swap partitions and one on the device (backup).

If you have not removed the swap partition on your device the later will already be working.

[edit] Fragmentation

Swap fragmentation starts to occur, when total number of megabytes written during swap's life time exceed it's maximum size. Until that, swap is written in a sequential manner. Blocks that are no longer needed are marked as free, but never used.

After reaching end of swap space, previously used and freed blocks are rewritten, using new content. This means no longer writing sequentially causing massive slowdowns, to an already sluggish swap; when compared to RAM.

A workaround to this is to disable and enable swap again - linuxswap filesystem content doesn't live through restarts, and once re-enabled, is written sequentially again.

Flopswap does this by switching to a fresh swap space on every "reswap". By doing this it saves moving swap to B and back again, hence "Flopswap".

[edit] Main Swap Partition on Micro SD

Putting the Main Swap space on your microSD saves the device from I/O conflicts between swap and /opt requests. Also flash based devices don't handle simultaneous, autonomous requests very well. Another huge advantage is that it reduces a large amount of wear & tear from the devices non-replaceable flash device, at expense of a cheap and replaceable microSD card.

[edit] More

More information on the package can be found ...

talk.maemo.org thread FlopSwap

Package Page

[edit] Installation

Flopswap can be found in the Extras repository and can be installed using the N900 Application Manager (HAM).

[edit] Operation

There are four main operations:-

  • Fresh Swap

This swaps to a fresh SD swap space from either the device or another SD swap.

  • Swap to Device

This moves the swap space to the device so the back cover can be removed.

  • Show Current

Shows currently active swap(s) (cat /proc/swaps)

  • Check Usage

Shows current fresh swap usage percentage via hildon banner and recommends fresh swap at your selected threshold via hildon dialog.


  • Enable FlopSwap

This setting should be enabled to use FlopSwap. It is provided to disable starting on uSD swap for whatever reason.

  • Threshold for Swap Used Warning

This sets the Percentage of used Fresh Swap before the warning message is shown.

[edit] Bugs

Please report bugs to the talk.maemo.org thread page.

[edit] FAQ


How do I setup linux-swap?


The easiest way is to use GParted on a desktop. Then make two equally sized "linux-swap" partitions, 800MB is fine. These partitions are best located after the first FAT partition.

The card will then have a FAT part (partition 1) swap1 (partition 2) and swap2 (partition 3).


Can we make Flopswap run on a timer or schedule?


Yes, you can call the swap refresh script from a shell or cron/alarmed

sudo /opt/flopswap/script/swapswitch.sh


Flopswap shows a dialog message saying swap can no longer be calculated


Unfortunately you have reached the limit that the stock N900 shell can calculate. Use the timer method listed above to grab a fresh swap, while you sleep"


What type does the first partition have to be?


FAT32 is recommended as this type will work on all variations of Maemo. There is no reason why other file systems cannot be used.

Even if an incorrect file type is used this will not effect the operation of FlopSwap. However the card may show as "corrupt" to the device, you therefore cannot use this to store data.

Currently tested first partition types are :-

FAT32, ext2 and ext3

[edit] License/Disclaimer

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

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.

[edit] To-Do


[edit] Changelog

0.1.10 (Extras-Devel)

  • Minor fixes to some scripts
  • Switch to external swap on boot enabled as default
  • Busy indication
  • Check status on start option (thanks pichlo)

0.1.9 (Extras)

  • Bugfix - int32 workround fixed
  • Code cleanup


  • Bugfix - Show Swap to Device banner once


  • Update Instructions
  • Disable Check Status GUI button on int32


  • Fixes to int32 overrun message
  • Add button icons
  • Minor fix to control file


  • Fix typos


  • Added initial start help text
  • Delete QSettings due to incorrect permissions


  • Change how swap spaces are located to fix UUID issue
  • Added extra banner message during refresh


  • Small UI changes
  • Set labels in source


  • Added Spinbox and QSetting for Swap Used Warning threshold


  • Big changes to backend, so new version number
  • Change to get swap locations from blkid
  • Change upstart file to use blkid
  • Support for CSSU upstart swap_sd in mount-ops-overwrite
  • General clean up and small fixes


  • Fix bug on Settings page stopping upstart file being created.


  • int32 workarounds by peterleinchen
  • Fix issue calculation issue after swapping to device


  • Changed Check Usage to Status
  • Changed scripts to work off swap written not swap used
  • Removed rootsh and sudser from depends list now uses update.sudoers


  • Added Keyboard shortcuts to Q,W,A and S keys.
  • Added Check Swap Usage button.


  • Added optional event.d upstart file (in settings menu)
  • Depends rootsh and sudser due to new event.d file


  • Initial Release

[edit] Wiki Update

sixwheeledbeast 23:45, 10 January 2014 (UTC)