public inbox for util-linux@vger.kernel.org
 help / color / mirror / Atom feed
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

       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