clone 413661 -1
reassign -1 nfs-kernel-server
found -1 1:1.1.0-4
retitle -1 rpc.mountd eats CPU, issues tons of ioctls
found 413661 e2fsprogs/1.39+1.40-wip-2006.11.14+dfsg-1
thanks

rpc.mountd on my NFS server stalls for several minutes at the first mount 
attempt from the client. During this time, "top" shows mountd eating some 90% 
of the CPU time. After a while it calms down, the mount succeeds and 
everything works. strace shows that mountd is issuing lots of ioctls during 
this time (over 20k calls in a minute or so).

The system is a Linksys NSLU2 running Debian etch (arm), nfs-kernel-server 
1.1.0-4, Debian kernel 2.6.21-1-ixp4xx. The configuration is NFSv4 with 
Kerberos authentication.

Upstream suggested [1] that this was related to #413661, so I'm cloning the 
bug.

I have about the same setup on other i386 servers where I didn't notice this 
behaviour. That may be because the NSLU2 is so slow.

Attached is a part of the strace output.

Regards,

Marcus
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_LIST_DEVICES, 0x37410)     = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_LIST_DEVICES, 0x37410)     = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_LIST_DEVICES, 0x37410)     = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_LIST_DEVICES, 0x37410)     = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_LIST_DEVICES, 0x37410)     = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_LIST_DEVICES, 0x37410)     = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0

<...lots more of the same...>

ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
stat64("/devices/mtdblock2", 0xbef91d1c) = -1 ENOENT (No such file or directory)
stat64("/devfs/mtdblock2", 0xbef91d1c)  = -1 ENOENT (No such file or directory)
stat64("/dev/mtdblock2", {st_mode=S_IFBLK|0660, st_rdev=makedev(31, 2), ...}) = 0
time(NULL)                              = 1183649062
open("/dev/mtdblock2", O_RDONLY)        = 12
fstat64(12, {st_mode=S_IFBLK|0660, st_rdev=makedev(31, 2), ...}) = 0
uname({sys="Linux", node="slug", ...})  = 0
ioctl(12, BLKGETSIZE64, 0xbef90ca0)     = 0
lseek(12, 65536, SEEK_SET)              = 65536
read(12, "\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"..., 4096) = 
4096
lseek(12, 0, SEEK_SET)                  = 0
read(12, "\0\1\377\340\0\0\0\0\0\0\0\0\0\0\0\0\356\21?\20\343\303"..., 69632) = 
69632
close(12)                               = 0
ioctl(10, DM_LIST_DEVICES, 0x37410)     = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0

<...lots more of the same...>

ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
stat64("/devices/mtdblock3", 0xbef91d1c) = -1 ENOENT (No such file or directory)
stat64("/devfs/mtdblock3", 0xbef91d1c)  = -1 ENOENT (No such file or directory)
stat64("/dev/mtdblock3", {st_mode=S_IFBLK|0660, st_rdev=makedev(31, 3), ...}) = 0
time(NULL)                              = 1183649064
open("/dev/mtdblock3", O_RDONLY)        = 12
fstat64(12, {st_mode=S_IFBLK|0660, st_rdev=makedev(31, 3), ...}) = 0
uname({sys="Linux", node="slug", ...})  = 0
ioctl(12, BLKGETSIZE64, 0xbef90ca0)     = 0
lseek(12, 1245184, SEEK_SET)            = 1245184
read(12, "\377\377\377\377\377\377\377\377\377\377\377\377\377\377"..., 4096) = 
4096
lseek(12, 0, SEEK_SET)                  = 0
read(12, "\0\22\342p\0\0\0\0\0\0\0\0\0\0\0\0\341\240\0\0\341\240"..., 69632) = 
69632
close(12)                               = 0
ioctl(10, DM_LIST_DEVICES, 0x37410)     = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0

<...lots more of the same...>

ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
stat64("/devices/mtdblock4", 0xbef91d1c) = -1 ENOENT (No such file or directory)
stat64("/devfs/mtdblock4", 0xbef91d1c)  = -1 ENOENT (No such file or directory)
stat64("/dev/mtdblock4", {st_mode=S_IFBLK|0660, st_rdev=makedev(31, 4), ...}) = 0
time(NULL)                              = 1183649066
open("/dev/mtdblock4", O_RDONLY)        = 12
fstat64(12, {st_mode=S_IFBLK|0660, st_rdev=makedev(31, 4), ...}) = 0
uname({sys="Linux", node="slug", ...})  = 0
ioctl(12, BLKGETSIZE64, 0xbef90ca0)     = 0
lseek(12, 6356992, SEEK_SET)            = 6356992
read(12, "\377\377\377\377\377\377\377\377\377\377\377\377\377\377"..., 4096) = 
4096
lseek(12, 0, SEEK_SET)                  = 0
read(12, "[EMAIL PROTECTED]"..., 69632) = 69632
close(12)                               = 0
ioctl(10, DM_LIST_DEVICES, 0x37410)     = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0

<...lots more of the same...>

ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
stat64("/devices/sda2", 0xbef91d1c)     = -1 ENOENT (No such file or directory)
stat64("/devfs/sda2", 0xbef91d1c)       = -1 ENOENT (No such file or directory)
ioctl(10, DM_LIST_DEVICES, 0x37410)     = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0

<...lots more of the same...>

ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
stat64("/devices/sdb5", 0xbef91d1c)     = -1 ENOENT (No such file or directory)
stat64("/devfs/sdb5", 0xbef91d1c)       = -1 ENOENT (No such file or directory)
stat64("/dev/sdb5", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 21), ...}) = 0
time(NULL)                              = 1183649074
open("/dev/sdb5", O_RDONLY)             = 12
fstat64(12, {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 21), ...}) = 0
uname({sys="Linux", node="slug", ...})  = 0
ioctl(12, BLKGETSIZE64, 0xbef90ca0)     = 0
_llseek(12, 150473146368, [150473146368], SEEK_SET) = 0
read(12, "\377\377\377\377\377\377\377\377\377\377\377\377\377\377"..., 4096) = 
4096
lseek(12, 0, SEEK_SET)                  = 0
read(12, "\377\377\377\377\377\377\377\377\377\377\377\377\377\377"..., 69632) 
= 69632
close(12)                               = 0
ioctl(10, DM_LIST_DEVICES, 0x37410)     = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0
ioctl(10, DM_TABLE_DEPS, 0x3b418)       = 0

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to