zfs userspace or groupspace generate call trace
witalis opened this issue · comments
first of all thanks for the zfs module, in test environment it seems to be quite stable.
after invoking zfs userspace or zfs groupspace i've got real values, but also call trace
[ 1766.422757] SPL: Showing stack for process 2575 [ 1766.422763] Pid: 2575, comm: zfs Tainted: P 2.6.35.10-74.fc14.x86_64 #1 [ 1766.422767] Call Trace: [ 1766.422784] [] spl_debug_dumpstack+0x30/0x32 [spl] [ 1766.422794] [] kmem_alloc_debug+0x35/0xd7 [spl] [ 1766.422847] [] zfs_ioc_userspace_many+0x40/0xe2 [zfs] [ 1766.422854] [] ? dataset_namecheck+0xf0/0x177 [zcommon] [ 1766.422888] [] ? dsl_prop_get+0xba/0xf0 [zfs] [ 1766.422928] [] zfsdev_ioctl+0x100/0x15c [zfs] [ 1766.422935] [] vfs_ioctl+0x36/0xa7 [ 1766.422938] [] do_vfs_ioctl+0x468/0x49b [ 1766.422942] [] sys_ioctl+0x56/0x79 [ 1766.422947] [] system_call_fastpath+0x16/0x1b is it something wrong ? os: fedora 14 x86_64 kernel: 2.6.35.10-74.fc14.x86_64 zfs module v0.5.1 self compiled
This is not an oops message. Probably the ZFS was compiled with the --enable-debug option. This option tracks the memory allocations (see a call to kmem_alloc_debug).
If the code is allocating more than 2 continuous pages the function spl_debug_dumpstack() is called. This function dumps the complete call trace.
void *
kmem_alloc_debug(size_t size, int flags, const char *func, int line,
int node_alloc, int node)
{
....
....
if (unlikely((size > PAGE_SIZE * 2) && !(flags & KM_NODEBUG))) {
SDEBUG(SD_CONSOLE | SD_WARNING,
"large kmem_alloc(%llu, 0x%x) at %s:%d (%lld/%llu)\n",
(unsigned long long) size, flags, func, line,
kmem_alloc_used_read(), kmem_alloc_max);
spl_debug_dumpstack(NULL);
}
....
....
}
Just to summarize in few words this is harmless. Please let us know if you think otherwise, if you agree I kindly request you to close the bug report.
Thanks a lot for using the ZFS on Linux.
ok, it's rather harmless