kmem map too small panic after updating to STABLE-7 r192996
Kip Macy
kmacy at freebsd.org
Thu Jun 4 21:13:45 UTC 2009
As I mentioned in the initial e-mail, auto-tuning is only safe to rely
on on amd64.
-Kip
On Thu, Jun 4, 2009 at 7:48 AM, Tim Chase <tim at chase2k.com> wrote:
> Hello,
>
> I decided to give the new zfs code a try and upgraded my stable-7 system
> and discovered a panic that I can reproduce at will.
>
> This is an i386 system with 1.5GB of RAM and a single zfs pool:
>
> appbuild# zpool status
> pool: backup
> state: ONLINE
> status: The pool is formatted using an older on-disk format. The
> pool can
> still be used, but some features are unavailable.
> action: Upgrade the pool using 'zpool upgrade'. Once this is done,
> the
> pool will no longer be accessible on older software versions.
> scrub: none requested
> config:
>
> NAME STATE READ WRITE CKSUM
> backup ONLINE 0 0 0
> mirror ONLINE 0 0 0
> ad4 ONLINE 0 0 0
> ad6 ONLINE 0 0 0
>
> errors: No known data errors
>
> I had previously used the following zfs tuning:
>
> vm.kmem_size="512M"
> vm.kmem_size_max="512M"
> vfs.zfs.arc_max="100M"
>
> After getting this panic, I removed these tunables. The panic happens
> in either case.
>
> Reproducing the panic is easy: I keep a copy of the FreeBSD svn tree
> in a compressed zfs file system (compression ratio runs around 1.35x).
> An "svn update" (or the requisite "svn cleanup" following a system crash)
> in my checkout area will _always_ result in a "kmem map too small" panic.
> Here's a stack trace from my most recent panic:
>
> (kgdb) bt
> #0 doadump () at pcpu.h:196
> #1 0xc052c963 in boot (howto=260) at
> /root/stable-7/sys/kern/kern_shutdown.c:418
> #2 0xc052cb9d in panic (fmt=Variable "fmt" is not available.
> ) at /root/stable-7/sys/kern/kern_shutdown.c:574
> #3 0xc069fa2a in kmem_malloc (map=0xc105408c, size=131072, flags=2) at
> /root/stable-7/sys/vm/vm_kern.c:305
> #4 0xc0696587 in page_alloc (zone=0x0, bytes=131072, pflag=0xe6dbcb47
> "\002", wait=2)
> at /root/stable-7/sys/vm/uma_core.c:952
> #5 0xc0699000 in uma_large_malloc (size=131072, wait=2) at
> /root/stable-7/sys/vm/uma_core.c:2706
> #6 0xc051af38 in malloc (size=131072, mtp=0xc094f060, flags=2) at
> /root/stable-7/sys/kern/kern_malloc.c:393
> #7 0xc085db00 in zfs_kmem_alloc (size=131072, kmflags=2)
> at
> /root/stable-7/sys/modules/zfs/../../cddl/compat/opensolaris/kern/opensolaris_kmem.c:74
> #8 0xc08d1c79 in zio_buf_alloc (size=131072)
> at
> /root/stable-7/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c:207
> #9 0xc08bcc40 in vdev_queue_io_to_issue (vq=0xc492b334,
> pending_limit=Variable "pending_limit" is not available.
> )
> at
> /root/stable-7/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c:227
> #10 0xc08bce42 in vdev_queue_io_done (zio=0xd420a000)
> at
> /root/stable-7/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c:313
> #11 0xc08d4162 in zio_vdev_io_done (zio=0xd420a000)
> at
> /root/stable-7/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c:1847
> #12 0xc08d2532 in zio_execute (zio=0xd420a000)
> at
> /root/stable-7/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c:998
> #13 0xc0862aa0 in taskq_thread (arg=0xc44a10cc)
> at
> /root/stable-7/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/os/taskq.c:854
> #14 0xc0506816 in fork_exit (callout=0xc0862960 <taskq_thread>,
> arg=0xc44a10cc, frame=0xe6dbcd38)
> at /root/stable-7/sys/kern/kern_fork.c:811
> #15 0xc06d4670 in fork_trampoline () at
> /root/stable-7/sys/i386/i386/exception.s:264
> (kgdb) print panicstr
> $1 = 0xc0792320 "kmem_malloc(131072): kmem_map too small: 325656576 total
> allocated"
>
>
> The arc size is now auto-tuned as:
>
> kstat.zfs.misc.arcstats.c_min: 26214400
> kstat.zfs.misc.arcstats.c_max: 209715200
>
> and while monitoring kstat.zfs.misc.arcstats.size I noticed it fluctuated
> between around 140 and 150 million. Interestingly enough, immediately
> before the last panic, It (arcstats.size) had just been reduced from
> 150038268 to 128790020.
>
> I'm going to continue to poke around in my core dumps and see if I can
> figure out what's going on. Any hints as to what to look for or monitor
> while the system is running would be appreciated.
>
> Thanks,
> Tim
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
>
--
When bad men combine, the good must associate; else they will fall one
by one, an unpitied sacrifice in a contemptible struggle.
Edmund Burke
More information about the freebsd-stable
mailing list