[Bug 1078165] Re: zram-config fails to start/install on a system with more then 30 processors

Oibaf 1078165 at bugs.launchpad.net
Mon Aug 25 09:11:49 UTC 2014


Note that with kernel 3.15, this should be revised. 3.15 indeed support multi-stream functionality:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=beca3ec71fe5490ee9237dc42400f50402baf83e

It is no longer needed to set up many devices, just use 1 device and the use something like:
echo `nproc` > /sys/block/zram0/max_comp_streams

(I still haven't tried it myself if it scales better or worse)

For more info see: http://kernelnewbies.org/Linux_3.15#head-
52af9ef123b7c0792b09a1a0222fdc8c21ab5d4c

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

Title:
  zram-config fails to start/install on a system with more then 30
  processors

Status in “zram-config” package in Ubuntu:
  Confirmed

Bug description:
  I have an dual processor "Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz".

  Its an octo core with hyper-thread so the number of virtual processors are 32:
  # grep -c ^processor /proc/cpuinfo
  32

  zram fails to install and start. from dmesg:

  [20817.608907] zram: Creating 32 devices ...
  [20817.621309] Adding 514360k swap on /dev/zram0.  Priority:5 extents:1 across:514360k SS
  [20817.624251] Adding 514360k swap on /dev/zram1.  Priority:5 extents:1 across:514360k SS
  [20817.627307] Adding 514360k swap on /dev/zram2.  Priority:5 extents:1 across:514360k SS
  [20817.630403] Adding 514360k swap on /dev/zram3.  Priority:5 extents:1 across:514360k SS
  [20817.633359] Adding 514360k swap on /dev/zram4.  Priority:5 extents:1 across:514360k SS
  [20817.636437] Adding 514360k swap on /dev/zram5.  Priority:5 extents:1 across:514360k SS
  [20817.639563] Adding 514360k swap on /dev/zram6.  Priority:5 extents:1 across:514360k SS
  [20817.642648] Adding 514360k swap on /dev/zram7.  Priority:5 extents:1 across:514360k SS
  [20817.645693] Adding 514360k swap on /dev/zram8.  Priority:5 extents:1 across:514360k SS
  [20817.648791] Adding 514360k swap on /dev/zram9.  Priority:5 extents:1 across:514360k SS
  [20817.651829] Adding 514360k swap on /dev/zram10.  Priority:5 extents:1 across:514360k SS
  [20817.654847] Adding 514360k swap on /dev/zram11.  Priority:5 extents:1 across:514360k SS
  [20817.657859] Adding 514360k swap on /dev/zram12.  Priority:5 extents:1 across:514360k SS
  [20817.660907] Adding 514360k swap on /dev/zram13.  Priority:5 extents:1 across:514360k SS
  [20817.663990] Adding 514360k swap on /dev/zram14.  Priority:5 extents:1 across:514360k SS
  [20817.666961] Adding 514360k swap on /dev/zram15.  Priority:5 extents:1 across:514360k SS
  [20817.669740] Adding 514360k swap on /dev/zram16.  Priority:5 extents:1 across:514360k SS
  [20817.672784] Adding 514360k swap on /dev/zram17.  Priority:5 extents:1 across:514360k SS
  [20817.675825] Adding 514360k swap on /dev/zram18.  Priority:5 extents:1 across:514360k SS
  [20817.678807] Adding 514360k swap on /dev/zram19.  Priority:5 extents:1 across:514360k SS
  [20817.681866] Adding 514360k swap on /dev/zram20.  Priority:5 extents:1 across:514360k SS
  [20817.684797] Adding 514360k swap on /dev/zram21.  Priority:5 extents:1 across:514360k SS
  [20817.687597] Adding 514360k swap on /dev/zram22.  Priority:5 extents:1 across:514360k SS
  [20817.690546] Adding 514360k swap on /dev/zram23.  Priority:5 extents:1 across:514360k SS
  [20817.693530] Adding 514360k swap on /dev/zram24.  Priority:5 extents:1 across:514360k SS
  [20817.696615] Adding 514360k swap on /dev/zram25.  Priority:5 extents:1 across:514360k SS
  [20817.699563] Adding 514360k swap on /dev/zram26.  Priority:5 extents:1 across:514360k SS
  [20817.702580] Adding 514360k swap on /dev/zram27.  Priority:5 extents:1 across:514360k SS
  [20817.705844] init: zram-config pre-start process (7513) terminated with status 255

  From my tests I see that the maximum number of swaps linux accepts to
  create is 29. I already had 1 swap partition so zram-config fails to
  start trying to create the 28th extent.

  I made a patch to zram-config.conf that, before starting zram-config,
  counts how many swap spaces are already configured and reduce them
  from the number of extents to create:

  patch:
  # diff -u zram-config.conf.dpkg-dist zram-config.conf
  --- zram-config.conf.dpkg-dist	2012-01-09 11:29:00.000000000 -0200
  +++ zram-config.conf	2012-11-13 02:10:30.122396348 -0200
  @@ -6,6 +6,8 @@
   pre-start script
     # load dependency modules
     NRDEVICES=$(grep -c ^processor /proc/cpuinfo | sed 's/^0$/1/')
  +  NRSWAPS=$(($(cat /proc/swaps | wc -l)+$NRDEVICES))
  +  if [ $NRSWAPS>=30 ]; then NRDEVICES=$((30+$NRDEVICES-$NRSWAPS)); fi
     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

  I have tested on a 32 core and 4 core machines with 1 swap partition
  and no error at start.

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



More information about the foundations-bugs mailing list