From: Minchan Kim <minchan@kernel.org>
To: "Alexander E. Patrakov" <patrakov@gmail.com>
Cc: util-linux@vger.kernel.org, Kai Krakow <hurikhan77@gmail.com>,
systemd-devel@lists.freedesktop.org, kay@vrfy.org,
Nitin Gupta <ngupta@vflare.org>
Subject: Re: [systemd-devel] systemd-213: regression with zram
Date: Tue, 24 Jun 2014 07:21:12 +0000 [thread overview]
Message-ID: <20140624065816.GA11030@gmail.com> (raw)
In-Reply-To: <53A91C0A.2020807@gmail.com>
On Tue, Jun 24, 2014 at 12:34:50PM +0600, Alexander E. Patrakov wrote:
> 24.06.2014 12:22, Minchan Kim wrote:
> >
> >Hello,
> >
> >Sorry for the late response.
>
> Better late than never.
>
> >If I parse your problem correctly, you meant that changing disksize is
> >failed while someone opens /dev/zram0?
> >
> >I tried test which opens "/dev/zram0" with O_RDWR and sleep forever
> >and then echo $((512<<20)) > /sys/block/zram0/disksize is successful.
> >IOW, it's okay with me.
>
> No, this is only a part of the problem. A valid test would be:
>
> 0. Reset the unused zram device.
> 1. Use a program that opens /dev/zram0 with O_RDWR and sleeps until killed.
> 2. While that program sleeps, echo the correct value to
> /sys/block/zram0/disksize.
> 3. Verify (e.g. in /proc/partitions) that the disk size is applied
> correctly. It is.
> 4. While that program still sleeps, attempt to mkswap /dev/zram0.
> This fails:
>
> mkswap: error: swap area needs to be at least 40 KiB
>
> There is nothing in dmesg.
Thanks. I could reproduce.
When I read strace result, fstat access closed fd which seem to be
a culprit.
Cced util-linux.
<snip>
open("/dev/zram0", O_RDONLY) = 4
uname({sys="Linux", node="bboxv", ...}) = 0
ioctl(4, BLKGETSIZE64, 0x7fffa2384888) = 0
close(4) = 0
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8a058ea000
read(4, "# Locale name alias data base.\n#"..., 4096) = 2570
read(4, "", 4096) = 0
close(4) = 0
munmap(0x7f8a058ea000, 4096) = 0
open("/usr/share/locale/en_US/LC_MESSAGES/util-linux.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/util-linux.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_US/LC_MESSAGES/util-linux.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en/LC_MESSAGES/util-linux.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, "mkswap: ", 8mkswap: ) = 8
write(2, "error: swap area needs to be at "..., 44error: swap area needs to be at least 40 KiB) = 44
write(2, "\n", 1
) = 1
write(2, "\nUsage:\n mkswap [options] device"..., 40
Usage:
mkswap [options] device [size]
) = 40
write(2, "\nOptions:\n -c, --check "..., 479
Options:
-c, --check check bad blocks before creating the swap area
-f, --force allow swap size area be larger than device
-p, --pagesize SIZE specify page size in bytes
-L, --label LABEL specify label
-v, --swapversion NUM specify swap-space version number
-U, --uuid UUID specify the uuid to use
-V, --version output version information and exit
-h, --help display this help and exit
) = 479
exit_group(1) = ?
But when it was successful, it was as follows via stat("/dev/zram0").
<snip>
open("/dev/zram0", O_RDONLY) = 4
uname({sys="Linux", node="bboxv", ...}) = 0
ioctl(4, BLKGETSIZE64, 0x7fff85926088) = 0
close(4) = 0
stat("/dev/zram0", {st_mode=S_IFBLK|0660, st_rdev=makedev(252, 0), ...}) = 0
open("/dev/zram0", O_RDWR|O_EXCL) = 4
open("/etc/mtab", O_RDONLY|O_CLOEXEC) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=725, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f984f537000
read(5, "/dev/vda1 / ext4 rw,errors=remou"..., 4096) = 725
read(5, "", 4096) = 0
close(5) = 0
munmap(0x7f984f537000, 4096) = 0
ioctl(4, BLKALIGNOFF, 0x7fff85925fcc) = 0
lseek(4, 0, SEEK_SET) = 0
ioctl(4, 0x301, 0x7fff85925fc0) = -1 ENOTTY (Inappropriate ioctl for device)
fadvise64(4, 0, 0, POSIX_FADV_RANDOM) = 0
fstat(4, {st_mode=S_IFBLK|0660, st_rdev=makedev(252, 0), ...}) = 0
uname({sys="Linux", node="bboxv", ...}) = 0
ioctl(4, BLKGETSIZE64, 0x15f72b0) = 0
ioctl(4, CDROM_GET_CAPABILITY, 0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_SET) = 0
read(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) = 1024
ioctl(4, BLKSSZGET, 0x15f72c8) = 0
lseek(4, 15872, SEEK_SET) = 15872
read(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 512) = 512
lseek(4, 28672, SEEK_SET) = 28672
read(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) = 1024
lseek(4, 0, SEEK_SET) = 0
write(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) = 1024
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f984f537000
read(5, "# Locale name alias data base.\n#"..., 4096) = 2570
read(5, "", 4096) = 0
close(5) = 0
munmap(0x7f984f537000, 4096) = 0
open("/usr/share/locale/en_US/LC_MESSAGES/util-linux.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/util-linux.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_US/LC_MESSAGES/util-linux.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en/LC_MESSAGES/util-linux.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
fstat(1, {st_mode=S_IFREG|0644, st_size=8472, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f984f537000
lseek(4, 1024, SEEK_SET) = 1024
write(4, "\1\0\0\0\377\377\0\0\0\0\0\0\205\236:\36b\377N\324\255\224\5\341CH(\376\0\0\0\0"..., 3072) = 3072
fsync(4) = 0
write(1, "Setting up swapspace version 1, "..., 102Setting up swapspace version 1, size = 262140 KiB
no label, UUID=859e3a1e-62ff-4ed4-ad94-05e1434828fe
) = 102
exit_group(0) = ?
>
> --
> Alexander E. Patrakov
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel
next parent reply other threads:[~2014-06-24 7:21 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <53953D5C.1080004@gmail.com>
[not found] ` <i8pg6b-mg8.ln1@hurikhan77.spdns.de>
[not found] ` <5395BE60.70309@gmail.com>
[not found] ` <pd8h6b-ufa.ln1@hurikhan77.spdns.de>
[not found] ` <5395FF3A.9050407@gmail.com>
[not found] ` <20140624062209.GA10661@gmail.com>
[not found] ` <53A91C0A.2020807@gmail.com>
2014-06-24 7:21 ` Minchan Kim [this message]
2014-06-24 7:49 ` [systemd-devel] systemd-213: regression with zram Minchan Kim
2014-06-25 0:36 ` Minchan Kim
2014-06-25 4:57 ` Alexander E. Patrakov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140624065816.GA11030@gmail.com \
--to=minchan@kernel.org \
--cc=hurikhan77@gmail.com \
--cc=kay@vrfy.org \
--cc=ngupta@vflare.org \
--cc=patrakov@gmail.com \
--cc=systemd-devel@lists.freedesktop.org \
--cc=util-linux@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox