See! "logical block 88319"! 88319 * 4096 = 361754624; error on bite number 361754624 (one block = 4096 bites)
I was create 361758720 bites (echo $((345*1024*1024)) returns 361758720;
3617858720 (memory, for zram) - 361754624 (number of bite with error ) = 4096!
Zram create device, with damaged last sector!
How to solve it?
mkswap --help:
....
-c, --check check bad blocks before creating the swap area
mkswap -c /dev/zram0
one bad page
Setting up swapspace version 1, size = 353272 KiB
no label, UUID=bb7a0771-5f00-47b0-9238-723b8cd61b20
Yes, one bad page!
(you can see difference in size; - without "-c" option "size = 353276 KiB", with it - succesfully find "one bad page", and size is 4 KB less:
size = 353272 KiB
You can see, time(in beginning of "dmesg"): time not when you run "swapon", time = time when "mkswap" check partition"; so, your "swap" is safe and stable!
...
[ 1.659040] Adding 1025396k swap on /dev/zram0. Priority:100 extents:1 across:1025396k SS
[ 20.719906] Buffer I/O error on device zram0, logical block 256349
...
Lets try to calculate:
(what a pity, I can not see bites, only kilobites! but...)
(block ) 256349 * 4 (four kilobites per page) = 1025396k (place of "bad" sector); as you can see, it is the last sector : ""[1.659040] Adding 1025396k swap on /dev/zram0"
Time of this error can be random.... When OS try to use this "last zram sector", it freezes or somethind else...
here is solution:
run mkswap with "-c"
mkswap -c /dev/zram0
(you can fix this in package zram-config, if you want :) zram-config. conf | grep mkswap {DEVNUMBER}
cat /etc/init/
mkswap /dev/zram$
you need to change this line to: {DEVNUMBER}
mkswap -c /dev/zram$
Explanation:
See:
modprobe zram zram_num_devices=1
( dmesg | grep zram ) :
[ 979.545213] zram: module is from the staging directory, the quality is unknown, you have been warned.
[ 979.550810] zram: Creating 1 devices ...
Next:
echo $((345*1024*1024)) > /sys/block/ zram0/disksize
(dmesg still silent....)
Next:
mkswap /dev/zram0 fb27-4dce- 8006-3e3cbf9a6f 75
Setting up swapspace version 1, size = 353276 KiB
no label, UUID=a95522e0-
(dmesg:)
[ 1115.120823] Buffer I/O error on device zram0, logical block 88319
[ 1115.120838] Buffer I/O error on device zram0, logical block 88319
[ 1115.121111] Buffer I/O error on device zram0, logical block 88319
[ 1115.121145] Buffer I/O error on device zram0, logical block 88319
[ 1115.121166] Buffer I/O error on device zram0, logical block 88319
....
See! "logical block 88319"! 88319 * 4096 = 361754624; error on bite number 361754624 (one block = 4096 bites)
I was create 361758720 bites (echo $((345*1024*1024)) returns 361758720;
3617858720 (memory, for zram) - 361754624 (number of bite with error ) = 4096!
Zram create device, with damaged last sector!
How to solve it?
mkswap --help:
....
-c, --check check bad blocks before creating the swap area
mkswap -c /dev/zram0 5f00-47b0- 9238-723b8cd61b 20
one bad page
Setting up swapspace version 1, size = 353272 KiB
no label, UUID=bb7a0771-
Yes, one bad page!
(you can see difference in size; - without "-c" option "size = 353276 KiB", with it - succesfully find "one bad page", and size is 4 KB less:
size = 353272 KiB
....
swapon /dev/zram0 -p 10
and, dmesg:
1546.782347] Buffer I/O error on device zram0, logical block 88319
[ 1546.782369] Buffer I/O error on device zram0, logical block 88319
[ 1546.782500] Buffer I/O error on device zram0, logical block 88319
....
You can see, time(in beginning of "dmesg"): time not when you run "swapon", time = time when "mkswap" check partition"; so, your "swap" is safe and stable!
Enjoy!
And some explanation (I use another bugreports) /bugs.launchpad .net/ubuntu/ +source/ linux/+ bug/1215513/ comments/ 25
Just comment here, #25 : https:/
...
[ 1.659040] Adding 1025396k swap on /dev/zram0. Priority:100 extents:1 across:1025396k SS
[ 20.719906] Buffer I/O error on device zram0, logical block 256349
...
Lets try to calculate:
(what a pity, I can not see bites, only kilobites! but...)
(block ) 256349 * 4 (four kilobites per page) = 1025396k (place of "bad" sector); as you can see, it is the last sector : ""[1.659040] Adding 1025396k swap on /dev/zram0"
Time of this error can be random.... When OS try to use this "last zram sector", it freezes or somethind else...