ZFS patches.
Max Laier
max at love2party.net
Mon Jul 28 12:54:42 UTC 2008
On Monday 28 July 2008 10:33:03 Pawel Jakub Dawidek wrote:
> On Sun, Jul 27, 2008 at 08:34:00PM +0200, Max Laier wrote:
> > Hi Pawel,
> >
> > On Sunday 27 July 2008 14:54:13 Pawel Jakub Dawidek wrote:
> > > http://people.freebsd.org/~pjd/patches/zfs_20080727.patch.bz2
> > >
> > > The patch above contains the most recent ZFS version that could be
> > > found in OpenSolaris as of today. Apart for large amount of new
> > > functionality, I belive there are many stability (and also performance)
> > > improvements compared to the version from the base system.
> >
> > nice!
> >
> > > Check out OpenSolaris website to find out the differences between base
> > > system version and patch version.
> > >
> > > Please test, test, test. If I get enough positive feedback, I may be
> > > able to squeeze it into 7.1-RELEASE, but this might be hard.
> > >
> > > If you have any questions, please use mailing lists
> > > (freebsd-fs at FreeBSD.org would be the best).
> >
> > Is this supposed to help with memory pressure on i386, too? Or do the
> > caveats from the wiki still apply? I heard some anecdotal evidence that
> > it would indeed help.
>
> Yes, it should fix most if not all 'kmem_map too small' panics, at least
> from what I tried. Tunning kmem_size is still needed to get better
> performance.
With the i386 default settings it was not too hard to get the attached panic.
Some cpdup and rm cycles of src and ports to a single disk zfs pool. With
512M I haven't been able to kill it, yet.
> > Everybody, remember to use "patch -p0" - just bit me ... again.
>
> Grr, forgot to mention that, sorry.
No problem, wasn't meant as criticism but as a community service rather.
--
/"\ Best regards, | mlaier at freebsd.org
\ / Max Laier | ICQ #67774661
X http://pf4freebsd.love2party.net/ | mlaier at EFnet
/ \ ASCII Ribbon Campaign | Against HTML Mail and News
-------------- next part --------------
Script started on Mon Jul 28 13:55:02 2008
You have mail.
fbsd8# kgdb -n 0
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"...
Unread portion of the kernel message buffer:
panic: kmem_malloc(131072): kmem_map too small: 333963264 total allocated
cpuid = 0
KDB: enter: panic
Physical memory: 2026 MB
Dumping 456 MB: 441 425 409 393 377 361 345 329 313 297 281 265 249 233 217 201 185 169 153 137 121 105 89 73 57 41 25 9
Reading symbols from /boot/kernel/zfs.ko...Reading symbols from /boot/kernel/zfs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/zfs.ko
Reading symbols from /boot/kernel/opensolaris.ko...Reading symbols from /boot/kernel/opensolaris.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/opensolaris.ko
Reading symbols from /boot/kernel/snd_hda.ko...Reading symbols from /boot/kernel/snd_hda.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/snd_hda.ko
Reading symbols from /boot/kernel/sound.ko...Reading symbols from /boot/kernel/sound.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/sound.ko
Reading symbols from /boot/modules/nvidia.ko...done.
Loaded symbols for /boot/modules/nvidia.ko
Reading symbols from /boot/kernel/linux.ko...Reading symbols from /boot/kernel/linux.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linux.ko
Reading symbols from /boot/kernel/acpi.ko...Reading symbols from /boot/kernel/acpi.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/acpi.ko
Reading symbols from /boot/kernel/linprocfs.ko...Reading symbols from /boot/kernel/linprocfs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linprocfs.ko
#0 doadump () at pcpu.h:196
196 pcpu.h: No such file or directory.
in pcpu.h
(kgdb) where
#0 doadump () at pcpu.h:196
#1 0xc0496429 in db_fncall (dummy1=-1060091392, dummy2=0, dummy3=3,
dummy4=0xe85ef49c "\200l\223Å") at /usr/src/sys/ddb/db_command.c:516
#2 0xc04969d8 in db_command (last_cmdp=0xc0c56ef0, cmd_table=0x0, dopager=1)
at /usr/src/sys/ddb/db_command.c:413
#3 0xc0496b0a in db_command_loop () at /usr/src/sys/ddb/db_command.c:466
#4 0xc04982fd in db_trap (type=3, code=0) at /usr/src/sys/ddb/db_main.c:228
#5 0xc07beea6 in kdb_trap (type=3, code=0, tf=0xe85ef644)
at /usr/src/sys/kern/subr_kdb.c:534
#6 0xc0ab5b4b in trap (frame=0xe85ef644) at /usr/src/sys/i386/i386/trap.c:683
#7 0xc0a999ab in calltrap () at /usr/src/sys/i386/i386/exception.s:165
#8 0xc07bf02a in kdb_enter (why=0xc0b46703 "panic", msg=0xc0b46703 "panic")
at cpufunc.h:60
#9 0xc0791dfc in panic (
fmt=0xc0b6c49b "kmem_malloc(%ld): kmem_map too small: %ld total allocated") at /usr/src/sys/kern/kern_shutdown.c:556
#10 0xc09cd520 in kmem_malloc (map=0xc1c71084, size=131072, flags=2)
at /usr/src/sys/vm/vm_kern.c:303
#11 0xc09c4c77 in page_alloc (zone=0x0, bytes=131072,
pflag=0xe85ef73b "\002", wait=2) at /usr/src/sys/vm/uma_core.c:959
#12 0xc09c5cd0 in uma_large_malloc (size=131072, wait=2)
at /usr/src/sys/vm/uma_core.c:2713
#13 0xc0780978 in malloc (size=131072, mtp=0xc0f4c9a0, flags=2)
at /usr/src/sys/kern/kern_malloc.c:393
---Type <return> to continue, or q <return> to quit---
#14 0xc0e5a980 in zfs_kmem_alloc (size=131072, kmflags=2)
at /usr/src/sys/modules/zfs/../../cddl/compat/opensolaris/kern/opensolaris_kmem.c:74
#15 0xc0ecd7a9 in zio_buf_alloc (size=131072)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c:248
#16 0xc0e6dda7 in arc_get_data_buf (buf=0xd0fd3a28)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c:2134
#17 0xc0e6df15 in arc_buf_alloc (spa=0xc6001000, size=131072, tag=0xd79db088,
type=ARC_BUFC_METADATA)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c:1143
#18 0xc0e73004 in dbuf_read (db=0xd79db088, zio=0xd974c480, flags=2)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c:488
#19 0xc0e7787a in dmu_buf_hold (os=0xc6471c18, object=44, offset=10616832,
tag=0xc660d820, dbp=0xc660d850)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c:107
#20 0xc0e70b4b in bplist_cache (bpl=0xc660d820, blkid=Unhandled dwarf expression opcode 0x93
)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/bplist.c:138
#21 0xc0e70be6 in bplist_enqueue (bpl=0xc660d820, bp=0xceaa3040,
---Type <return> to continue, or q <return> to quit---
tx=0xccade200)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/bplist.c:199
#22 0xc0e8e111 in dsl_dataset_block_kill (ds=0xc660d800, bp=0xceaa3040,
pio=0xd95196c0, tx=0xccade200)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c:170
#23 0xc0e86cc5 in free_blocks (dn=0xd7fe71c8, bp=0xceaa3040, num=1,
tx=0xccade200)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c:125
#24 0xc0e8786c in dnode_sync (dn=0xd7fe71c8, tx=0xccade200)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c:320
#25 0xc0e7dcf7 in dmu_objset_sync_dnodes (list=0xc660db7c, tx=0xccade200)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c:791
#26 0xc0e7de66 in dmu_objset_sync (os=0xc660da00, pio=0xd8138240,
tx=0xccade200)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c:882
#27 0xc0e92378 in dsl_pool_sync (dp=0xc670f400, txg=Unhandled dwarf expression opcode 0x93
)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c:295
---Type <return> to continue, or q <return> to quit---
#28 0xc0ea533e in spa_sync (spa=0xc6001000, txg=Unhandled dwarf expression opcode 0x93
)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c:3936
#29 0xc0eae66d in txg_sync_thread (arg=0xc670f400)
at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c:360
#30 0xc0770ba8 in fork_exit (callout=0xc0eae280 <txg_sync_thread>,
arg=0xc670f400, frame=0xe85efd38) at /usr/src/sys/kern/kern_fork.c:810
#31 0xc0a99a20 in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:270
(kgdb) q
fbsd8# ^Dexit
Script done on Mon Jul 28 13:55:27 2008
More information about the freebsd-fs
mailing list