[Bug 1270913] Re: zram-config doesn't start if zram is built-in, not module

2019-03-04 Thread stuart naylor
PS just had a thought and this is from chromium OS

https://chromium.googlesource.com/chromiumos/platform/init/+/factory-3536.B/swap.conf

# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
description "Setup compressed memory swap"
author  "chromium-os-...@chromium.org"
# Set margin for low-memory notifier (for tab discarder)
# Configure and start swap if SWAP_ENABLE_FILE exists.
# SWAP_ENABLE_FILE may optionally contain the uncompressed swap size (in Mb).
# Otherwise it is set to 1.5 times total RAM.
#
# To start swap, create file /home/chronos/.swap_enabled and run "start swap"
# or reboot.  To stop swap, remove the file and reboot.
start on starting system-services
script
  SWAP_ENABLE_FILE=/home/chronos/.swap_enabled
  HIST_MIN=100
  HIST_MAX=1
  HIST_BUCKETS=50
  HIST_ARGS="$HIST_MIN $HIST_MAX $HIST_BUCKETS"
  # Extract second field of MemTotal entry in /proc/meminfo.
  # NOTE: this could be done with "read", "case", and a function
  # that sets ram=$2, for a savings of about 3ms on an Alex.
  ram=$(awk '/MemTotal/ { print $2; }' < /proc/meminfo)
  [ "$ram" = "" ] && logger -t "$UPSTART_JOB" "could not get MemTotal"
  # compute fraction of total RAM used for low-mem margin.  The fraction is
  # given in bips.  A "bip" or "basis point" is 1/100 of 1%.  This unit is
  # typically used in finance and in low-memory margin calculations.
  MARGIN_BIPS=520
  margin=$(($ram / 1000 * $MARGIN_BIPS / 1))  # MB
  # set the margin
  echo $margin > /sys/kernel/mm/chromeos-low_mem/margin
  logger -t "$UPSTART_JOB" "setting low-mem margin to $margin MB"
  if [ ! -f $SWAP_ENABLE_FILE ]; then
metrics_client Platform.CompressedSwapSize 0 $HIST_ARGS
exit 0
  fi
  # Load zram module.  Ignore failure (it could be compiled in the kernel).
  modprobe zram || logger -t "$UPSTART_JOB" "modprobe zram failed (compiled?)"
  # Allocate zram (compressed ram disk) for swap.
  # Default for uncompressed size is 1.5 of total memory.
  # Override with content of .swap_enabled (in Mb).
  # Calculations are in Kb to avoid 32 bit overflow.
  # For security, only read first few bytes of SWAP_ENABLE_FILE.
  REQUESTED_SIZE_MB="$(head -c 4 $SWAP_ENABLE_FILE)"
  if [ -z "$REQUESTED_SIZE_MB" ]; then
ZRAM_SIZE_KB=$(awk '/MemTotal/ { print $2 * 3 / 2 }' /proc/meminfo)
  elif [ "$REQUESTED_SIZE_MB" != 500 -a \
 "$REQUESTED_SIZE_MB" != 1000 -a \
 "$REQUESTED_SIZE_MB" != 2000 -a \
 "$REQUESTED_SIZE_MB" != 3000 -a \
 "$REQUESTED_SIZE_MB" != 4000 -a \
 "$REQUESTED_SIZE_MB" != 4500 -a \
 "$REQUESTED_SIZE_MB" != 6000 ]; then
logger -t "$UPSTART_JOB" "invalid value $REQUESTED_SIZE_MB for swap"
metrics_client Platform.CompressedSwapSize 0 $HIST_ARGS
exit 1
  else
ZRAM_SIZE_KB=$(($REQUESTED_SIZE_MB * 1024))
  fi
  logger -t "$UPSTART_JOB" "setting zram size to $ZRAM_SIZE_KB Kb"
  # Approximate the kilobyte to byte conversion to avoid issues
  # with 32-bit signed integer overflow.
  echo ${ZRAM_SIZE_KB}000 >/sys/block/zram0/disksize ||
  logger -t "$UPSTART_JOB" "failed to set zram size"
  mkswap /dev/zram0 || logger -t "$UPSTART_JOB" "mkswap /dev/zram0 failed"
  swapon /dev/zram0 || logger -t "$UPSTART_JOB" "swapon /dev/zram0 failed"
  metrics_client Platform.CompressedSwapSize \
$(($ZRAM_SIZE_KB / 1024)) $HIST_ARGS
end script

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1270913

Title:
  zram-config doesn't start if zram is built-in, not module

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zram-config/+bug/1270913/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1270913] Re: zram-config doesn't start if zram is built-in, not module

2019-03-04 Thread stuart naylor
zram_config because it makes absolutely no check and overwrites any
previous zram devices due to hard coding.

I have been trying to do something simple as use log2ram with a compressed zram 
drive.
Came to the conclusion that because of zero checks via zram_config its 
impossible to have both in operation unless provide zram control in log2ram.

After doing that and some reading of
https://www.kernel.org/doc/Documentation/blockdev/zram.txt I am
completely bemused to what, why and how zram_config operates and prob
someone needs to ask https://www.linkedin.com/in/nitingupta910 the
kernel author of zram some advise.

You can have a look at what I have done in 
https://github.com/StuartIanNaylor/log2ram/blob/master/log2ram but wouldn't 
touch zram_config with a bargepole.
Also asked these questions in 
https://answers.launchpad.net/ubuntu/+source/zram-config/+question/678905

As there seems to be little correlation with zram_config &
https://www.kernel.org/doc/Documentation/blockdev/zram.txt !!?

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1270913

Title:
  zram-config doesn't start if zram is built-in, not module

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zram-config/+bug/1270913/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1270913] Re: zram-config doesn't start if zram is built-in, not module

2019-03-04 Thread stuart naylor
https://www.kernel.org/doc/Documentation/blockdev/zram.txt

"num_devices parameter is optional and tells zram how many devices should be
pre-created. Default: 1"

The whole first procedure is a question to why and completely fails to check 
previous devices or modprobe zram services:- 
***
# load dependency modules
if grep ZRAM=m /boot/config-$(uname -r)
  NRDEVICES=$(grep -c ^processor /proc/cpuinfo | sed 's/^0$/1/')
  if modinfo zram | grep -q ' zram_num_devices:' 2>/dev/null; then
MODPROBE_ARGS="zram_num_devices=${NRDEVICES}"
  elif modinfo zram | grep -q ' num_devices:' 2>/dev/null; then
MODPROBE_ARGS="num_devices=${NRDEVICES}"
  else
exit 1
  fi
  modprobe zram $MODPROBE_ARGS
fi
*
zram can be easily checked to see if it has a sys class

ZRAM_SYS_DIR='/sys/class/zram-control'
if [ ! -d "${ZRAM_SYS_DIR}" ]; then

if not then modprobe zram will create it.
So after a modprobe zram all you have to do is create first device /dev/zram0
As cat /sys/class/zram-control/hot_add will always contain the next device 
number and will already contain '1'

After that

  RAM_DEV=$(cat /sys/class/zram-control/hot_add)
  echo ${COMP_ALG_SWAP} > /sys/block/zram${RAM_DEV}/comp_algorithm
  echo ${mem} > /sys/block/zram${RAM_DEV}/disksize
  mkswap /dev/zram${RAM_DEV}
  swapon -p ${SWAP_PRI} /dev/zram${RAM_DEV}
is all that is needed as cat /sys/class/zram-control/hot_add is incremented on 
each addition

But then we have the questions of if a single device is automatically
allocated streams for all cores why add a block device for each core?

Also zram can use all crypto listed in proc/crypto but its hard coded.
Same for swap priority & size setting.

There is little correlation in the methods used in zram-config &
https://www.kernel.org/doc/Documentation/blockdev/zram.txt and maybe
someone should ask why?

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1270913

Title:
  zram-config doesn't start if zram is built-in, not module

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zram-config/+bug/1270913/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1270913] Re: zram-config doesn't start if zram is built-in, not module

2018-10-19 Thread Lenin
Maybe one of the zram-config maintainers want to update

end-zram-swapping 
#!/bin/sh

if DEVICES=$(grep zram /proc/swaps | awk '{print $1}'); then
  for i in $DEVICES; do
swapoff $i
  done
fi
lsmod |grep zram >/dev/null && rmmod zram


init-zram-swapping
#!/bin/sh

# load dependency modules
if grep ZRAM=m /boot/config-$(uname -r)
  NRDEVICES=$(grep -c ^processor /proc/cpuinfo | sed 's/^0$/1/')
  if modinfo zram | grep -q ' zram_num_devices:' 2>/dev/null; then
MODPROBE_ARGS="zram_num_devices=${NRDEVICES}"
  elif modinfo zram | grep -q ' num_devices:' 2>/dev/null; then
MODPROBE_ARGS="num_devices=${NRDEVICES}"
  else
exit 1
  fi
  modprobe zram $MODPROBE_ARGS
fi

# Calculate memory to use for zram (1/2 of ram)
totalmem=`LC_ALL=C free | grep -e "^Mem:" | sed -e 's/^Mem: *//' -e 's/  *.*//'`
mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024))

# initialize the devices
for i in $(seq ${NRDEVICES}); do
  DEVNUMBER=$((i - 1))
  echo $mem > /sys/block/zram${DEVNUMBER}/disksize
  mkswap /dev/zram${DEVNUMBER}
  swapon -p 5 /dev/zram${DEVNUMBER}
done

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1270913

Title:
  zram-config doesn't start if zram is built-in, not module

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zram-config/+bug/1270913/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[Bug 1270913] Re: zram-config doesn't start if zram is built-in, not module

2016-09-09 Thread Launchpad Bug Tracker
Status changed to 'Confirmed' because the bug affects multiple users.

** Changed in: zram-config (Ubuntu)
   Status: New => Confirmed

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1270913

Title:
  zram-config doesn't start if zram is built-in, not module

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zram-config/+bug/1270913/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


[Bug 1270913] Re: zram-config doesn't start if zram is built-in, not module

2015-05-07 Thread Brian Murray
** Changed in: zram-config (Ubuntu)
   Importance: Undecided = Medium

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1270913

Title:
  zram-config doesn't start if zram is built-in, not module

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zram-config/+bug/1270913/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs