On Sat, 17 Mar 2012 22:53:20 +0900 (JST), Ryusuke Konishi wrote:
> On Sat, 17 Mar 2012 20:43:43 +0900 (JST), Ryusuke Konishi wrote:
> > On Fri, 16 Mar 2012 07:21:39 -0700 (PDT), Sven-Göran_Bergh wrote:
> > > Hi dexen,
> > >
> > > thank you for a prompt reply.
> > >
> > >
> > >
> > > >> I am in the process of migrating an embedded project from
> > > >> ext2 to nilfs2 and have a problem with nilfs_cleanerd. It
> > > >> does not start on mount and I cannot start it manually.
> > > >> (...)
> > > >
> > > > Relevant snippet from strace of my nilfs_cleanerd (version nilfs-
> > > > utils-2.0.23):
> > > ...
> > > > 864 statfs("/dev/shm", {f_type=0x1021994, f_bsize=4096,
> > > > f_blocks=86016,
> > > > f_bfree=86010, f_bavail=86010, f_files=754077, f_ffree=754075,
> > > > f_fsid={0, 0},
> > > > f_namelen=255, f_frsize=4096}
> > > > ) = 0
> > > > 864 futex(0x7f551010d31c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
> > > > 864 open("/dev/shm/sem.nilfs-cleaner-2067", O_RDWR|O_NOFOLLOW) = -1
> > > > ENOENT
> > > > (No such file or directory)
> > > > 864 lstat("/dev/shm/sem.qLTneb", 0x7fffff54fb70) = -1 ENOENT (No
> > > > such file or
> > > > directory)
> > > > 864 open("/dev/shm/sem.qLTneb", O_RDWR|O_CREAT|O_EXCL, 0700) = 6
> > >
> > > Hmmm, quite different.
> >
> > Could you confirm whether /dev/shm is mounted on /run/shm (or
> > /var/run/shm) ?
> >
> > Some systems don't mount /dev/shm, and posix semaphores do not work in
> > such systems.
>
> Oops, /dev/shm is just a directory (not a device), and /run/shm was
> irrelevant. Sorry.
>
> The cause of this problem seems that posix semaphores are not
> available in your system. I'll dig into it.
>
> Ryusuke Konishi
I read the source code of sem_open() in glibc and found that
sem_open() fails if there is no tmpfs (former shm fs) mount in the
system.
According to your strace log, your /dev/shm is mounted with "ramfs"
whose magic number is 0x858458f6. This looks the cause of the error.
> statfs("/dev/shm", {f_type=0x858458f6, f_bsize=4096, f_blocks=0,
> f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0},
> f_namelen=255, f_frsize=4096}) = 0
Try following kernel configs to enable tmpfs and mount it to
/dev/shm instead of using ramfs.
- CONFIG_SHMEM
Generic setup ->
Configure standard kernel features (expert users) ->
Use full shmem filesystem
- CONFIG_TMPFS
File systems ->
Pseudo filesystems ->
Tmpfs virtual memory file system support (former shm fs)
Regards,
Ryusuke Konishi
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html