aboutsummaryrefslogtreecommitdiffstats
path: root/package/system/zram-swap
Commit message (Collapse)AuthorAgeFilesLines
* zram-swap: bail out early if the kernel doesn't support swapRui Salvaterra2021-04-181-0/+5
| | | | | | | | | Since KERNEL_SWAP is only enabled by default for !SMALL_FLASH targets, we need to check if the current kernel supports swap before trying to configure zram-swap, as opkg can't check for kernel dependencies. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com> (cherry picked from commit 565dfeb1280343fb3f838581169e5d7a1c947862)
* zram-swap: remove the compression streams settingsRui Salvaterra2020-12-131-15/+0
| | | | | | | | | Zram switched to per-cpu compression streams since Linux 4.7 [1]. Drop the irrelevant configuration (no-op). [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/block/zram?h=v4.7&id=43209ea2d17aae1540d4e28274e36404f72702f2 Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* zram-swap: use new extra_command wrapperFlorian Eckert2020-11-022-4/+3
| | | | | | Use new `extra_command` wrapper to fix the alignement. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* zram-swap: explicitly use mkswap/swapon/swapoff from /sbinRui Salvaterra2020-09-202-11/+11
| | | | | | | | | | | | | The required BusyBox applets are enabled by default, so we can rely on them being present in the system. This way, we make sure there are no conflicts with less featured variants of these same applets which might also be present in the system. Fixes: 0bd7dfa3ed60 ("zram-swap: enable swap discard") Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com> [wrap commit description] Signed-off-by: David Bauer <mail@david-bauer.net>
* zram-swap: default to lzo instead of lzo-rle compressionRui Salvaterra2020-09-171-2/+3
| | | | | | | | | | | | | | | | | | | On devices with small amounts of RAM, zram-swap fails to initialise due to the default compression algorithm (lzo-rle). Startup example on an AirGrid M2, with 32 MiB of RAM: root@airgrid:/etc/config# /etc/init.d/zram start zram_start: activating '/dev/zram0' for swapping (13 MegaBytes) zram_reset: enforcing defaults via /sys/block/zram0/reset sh: write error: Out of memory mkswap: image is too small swapon: /dev/zram0: Invalid argument root@airgrid:/etc/config# Fix this by defaulting to traditional lzo, which works fine and is always available. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* treewide: bump PKG_RELEASE after replacing `which`Adrian Schmutzler2020-08-121-1/+1
| | | | | | | | | Bump PKG_RELEASE for the affected packages as replacing "which" by "command -v" represents a content change. Fixes: 1fdf6b745cc3 ("treewide: replace `which` with `command -v`") Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: replace `which` with `command -v`Paul Spooren2020-08-121-3/+3
| | | | | | | | | | | | | | | | | Fix shellcheck SC2230 > which is non-standard. Use builtin 'command -v' instead. Using `command -v` is POSIX compliant while `which` is not. Also to mention, `command -v` is a shell builtin whereas `which` is a separate busybox applet. Once applied to everything concerning OpenWrt we can disable the busybox feature `which` and save 3.8kB. Acked-by: Stijn Tintel <stijn@linux-ipv6.be> Signed-off-by: Paul Spooren <mail@aparcar.org> [also replace cases in zram-swap] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* package: drop PKG_VERSION for purely local packagesAdrian Schmutzler2020-07-151-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the package guidelines, PKG_VERSION is supposed to be used as "The upstream version number that we're downloading", while PKG_RELEASE is referred to as "The version of this package Makefile". Thus, the variables in a strict interpretation provide a clear distinction between "their" (upstream) version in PKG_VERSION and "our" (local OpenWrt trunk) version in PKG_RELEASE. For local (OpenWrt-only) packages, this implies that those will only need PKG_RELEASE defined, while PKG_VERSION does not apply following a strict interpretation. While the majority of "our" packages actually follow that scheme, there are also some that mix both variables or have one of them defined but keep them at "1". This is misleading and confusing, which can be observed by the fact that there typically either one of the variables is never bumped or the choice of the variable to increase depends on the person doing the change. Consequently, this patch aims at clarifying the situation by consistently using only PKG_RELEASE for "our" packages. To achieve that, PKG_VERSION is removed there, bumping PKG_RELEASE where necessary to ensure the resulting package version string is bigger than before. During adjustment, one has to make sure that the new resulting composite package version will not be considered "older" than the previous one. A useful tool for evaluating that is 'opkg compare-versions'. In principle, there are the following cases: 1. Sole PKG_VERSION replaced by sole PKG_RELEASE: In this case, the resulting version string does not change, it's just the value of the variable put in the file. Consequently, we do not bump the number in these cases so nobody is tempted to install the same package again. 2. PKG_VERSION and PKG_RELEASE replaced by sole PKG_RELEASE: In this case, the resulting version string has been "version-release", e.g. 1-3 or 1.0-3. For this case, the new PKG_RELEASE will just need to be higher than the previous PKG_VERSION. For the cases where PKG_VERSION has always sticked to "1", and PKG_RELEASE has been incremented, we take the most recent value of PKG_RELEASE. Apart from that, a few packages appear to have developed their own complex versioning scheme, e.g. using x.y.z number for PKG_VERSION _and_ a PKG_RELEASE (qos-scripts) or using dates for PKG_VERSION (adb-enablemodem, wwan). I didn't touch these few in this patch. Cc: Hans Dedecker <dedeckeh@gmail.com> Cc: Felix Fietkau <nbd@nbd.name> Cc: Andre Valentin <avalentin@marcant.net> Cc: Matthias Schiffer <mschiffer@universe-factory.net> Cc: Jo-Philipp Wich <jo@mein.io> Cc: Steven Barth <steven@midlink.org> Cc: Daniel Golle <dgolle@allnet.de> Cc: John Crispin <john@phrozen.org> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* zram-swap: correctly express the required dependenciesRui Salvaterra2020-07-111-1/+1
| | | | | | | | The block-mount swapon implementation doesn't support discard, so make zram-swap depend only on the default BusyBox implementation or, when unavailable, on the one present in the swap-utils package. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* zram-swap: enable swap discardRui Salvaterra2020-07-111-1/+1
| | | | | | | | | | | Zram block devices have supported trim/discard for over six years, let's enable it. This allows the zram device to actually free up allocated memory when it's marked as unused in the filesystem metadata, as explained in more detail in the original commit message [1]. [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/block/zram/zram_drv.c?h=linux-4.14.y&id=f4659d8e620d08bd1a84a8aec5d2f5294a242764 Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* zram-swap: init: replace backticks with $()Rui Salvaterra2020-06-301-4/+4
| | | | | | | | This replaces deprecated backticks by more versatile $(...) syntax. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com> [add commit description] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* zram-swap: support swap priorityMaxim Storchak2020-01-152-2/+4
| | | | | | | | If zram-backed swap is added after an existing swap, it gets a lower priority. Assiming that usually all other swaps are slower, there should be a way to assign a higher priority to zram swap. Signed-off-by: Maxim Storchak <m.storchak@gmail.com>
* zram-swap: Add extra commands for status/compactionEmil Muratov2019-07-071-21/+34
| | | | | | | | | This patch adds two new commands: zram status - shows memory stats for all zram swaps zram compaction - trigger compaction for all zram swaps Signed-off-by: Emil Muratov <gpm@hotplug.ru> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* zram-swap: Add zram compaction and statistics info outputEmil Muratov2019-07-072-2/+58
| | | | | | | | | Executing '/etc/init.d/zram start' during runtime (with a swap being already mounted) triggers zram device compaction and prints out nice stats info about zram memory usage Signed-off-by: Emil Muratov <gpm@hotplug.ru> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [use IEC's MiB unit]
* zram-swap: Fix busybox dependency checkEmil Muratov2019-07-071-1/+1
| | | | | | | | - fix dependency on BUSYBOX_CONFIG_SWAPONOFF (removed in 84da2a6) - add busybox defaults checking (fix zram-swap always installs swap-utils and libblkid as dependency, even if busybox includes mkswap by default) Signed-off-by: Emil Muratov <gpm@hotplug.ru>
* zram-swap: bump pkg versionEmil Muratov2018-09-291-1/+1
| | | | Signed-off-by: Emil Muratov <gpm@hotplug.ru>
* zram-swap: Add "max compression streams" configuration optionEmil Muratov2018-09-291-0/+14
| | | | | | | | | | Config option to limit maximum compression streams per zram dev for multicore CPU's. This could be defined via 'zram_comp_streams' option in the 'system' section of '/etc/config/system' file or via cli (for e.x. with 'uci set system.@System[0].zram_comp_streams=2 && uci commit system'). Default is number of logical CPU cores. Signed-off-by: Emil Muratov <gpm@hotplug.ru>
* zram-swap: fix number of created zram devices for multicore CPU'sEmil Muratov2018-09-291-45/+29
| | | | | | | | | Use only one zram swap device of the specified $size instead of [N x $size] devices for multicore CPUs Now zram module uses multiple compression streams for each dev by default, so we do not need to create several zram devs to utilize multicore CPUs. Signed-off-by: Emil Muratov <gpm@hotplug.ru>
* zram-swap: fix zram dev reset for multicore cpu devicesEmil Muratov2018-09-291-12/+10
| | | | | | | | | | * "zram stop" could reset up to $(num_of_cores) zram devices even if some of those were not mounted as swap dev's. This fix tries to enumerate mounted swap zram dev's before making a reset * remove hot-added zram devs on stop (except zram0) Signed-off-by: Emil Muratov <gpm@hotplug.ru>
* zram-swap: compression algorithm configuration optionEmil Muratov2018-09-291-0/+18
| | | | | | | | | | | | Compression algorithms for zram are provided by kernel crypto API, could be any of [lzo|zl4|deflate|<some_more>] depending on kernel modules. Compress algo for zram-swap could be defined via 'zram_comp_algo' option in 'system' section of '/etc/config/system' file, or via cli (for e.x. with 'uci set system.@System[0].zram_comp_algo=lz4 && uci commit system'). check available algo's via 'cat /sys/block/zram0 /comp_algorithm' Signed-off-by: Emil Muratov <gpm@hotplug.ru>
* zram-swap: Shell cosmeticSamuel Casa2018-09-241-4/+4
| | | | Signed-off-by: Samuel Casa <samuel.casa@neratec.com>
* zram-swap: remove trailing whitespaces in init scriptSamuel Casa2018-09-241-2/+2
| | | | | | Signed-off-by: Samuel Casa <samuel.casa@neratec.com> [slightly reword subject] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* zram-swap: CONFIG_PROCD_ZRAM_TMPFS compatibilityConn O'Griofa2016-09-051-2/+11
| | | | | | | | Enable CONFIG_PROCD_ZRAM_TMPFS compatibility via two changes to list_cpu_idx(): * detect if /tmp is being used by /dev/zram0; if yes, offset initial value by 1 to skip first zram device. * hot-add /dev/zram1, if not already present. Signed-off-by: Conn O'Griofa >connogriofa@gmail.com>
* cosmetic: remove trailing whitespacesLuka Perkov2015-10-151-1/+1
| | | | | | Signed-off-by: Luka Perkov <luka@openwrt.org> SVN-Revision: 47197
* license info - revert r43155John Crispin2014-11-031-3/+0
| | | | | | | | turns out that r43155 adds duplicate info. Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 43167
* Add more license tags with SPDX identifiersJohn Crispin2014-11-031-0/+3
| | | | | | | | | | | | | | | | | | Note, that licensing stuff is a nightmare: many packages does not clearly state their licenses, and often multiple source files are simply copied together - each with different licensing information in the file headers. I tried hard to ensure, that the license information extracted into the OpenWRT's makefiles fit the "spirit" of the packages, e.g. such small packages which come without a dedicated source archive "inherites" the OpenWRT's own license in my opinion. However, I can not garantee that I always picked the correct information and/or did not miss license information. Signed-off-by: Michael Heimpold <mhei@heimpold.de> SVN-Revision: 43155
* zram-swap: fix dependenciesHauke Mehrtens2013-11-131-1/+1
| | | | | | | | | swapon/swapoff are no longer provided by swap-utils; they are provided by block-mount instead. Signed-off-by: Nathan Hintz <nlhintz@hotmail.com> SVN-Revision: 38795
* packages: clean up the package folderJohn Crispin2013-06-212-0/+169
Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 37007