Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jun 2011 09:38:36 GMT
From:      Pavel Polyakov <bsd@kobyla.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   amd64/158197: geom_cache with size>1000 leads to panics
Message-ID:  <201106230938.p5N9caRL053369@red.freebsd.org>
Resent-Message-ID: <201106230940.p5N9e8ue038172@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         158197
>Category:       amd64
>Synopsis:       geom_cache with size>1000 leads to panics
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-amd64
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jun 23 09:40:08 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Pavel Polyakov
>Release:        gcache create -b128k -s2000
>Organization:
me
>Environment:
FreeBSD cel.home 9.0-CURRENT FreeBSD 9.0-CURRENT #0 r223293M: Mon Jun 20 03:06:27 EEST 2011     root@cel.home:/usr/obj/var/src9/sys/PDC90  amd64

>Description:
Using geom_cache with size>1000 leads to panics in g_up/g_down (g_cache_deliver/g_cache_read)

panic44:    full log http://paste.org.ru/?l1sjnk
Tracing pid 13 tid 100014 td 0xfffffe0002c20460
kdb_enter() at kdb_enter+0x3b
panic() at panic+0x180
g_cache_deliver() at g_cache_deliver+0x274
g_cache_done() at g_cache_done+0x80
g_io_schedule_up() at g_io_schedule_up+0xce
g_up_procbody() at g_up_procbody+0x72
fork_exit() at fork_exit+0x135
fork_trampoline() at fork_trampoline+0xe
--- trap 0, rip = 0, rsp = 0xffffff8000275d00, rbp = 0 ---

panic45:    full log http://paste.org.ru/?egp7hk
Tracing pid 13 tid 100015 td 0xfffffe0002c20000
g_cache_read() at g_cache_read+0xee
g_cache_start() at g_cache_start+0x34e
g_io_schedule_down() at g_io_schedule_down+0x1d4
g_down_procbody() at g_down_procbody+0x72
fork_exit() at fork_exit+0x135
fork_trampoline() at fork_trampoline+0xe
--- trap 0, rip = 0, rsp = 0xffffff800027ad00, rbp = 0 ---


>How-To-Repeat:
Create geom cache with parameters like "gcache create -b128k -s2000 test".
(seems gcache works stable if using size 100-200, but panics on 1000+).
ports & src trees work good as test pattern for filesystem.  
  
panics occur during massive io operations:
"find /mnt/test" or reading all files often leads to panic in g_down;
dumping/restoring entire fs (ports+src) always triggers panic.

>Fix:
Using smaller size for gcache or turning it off with kern.geom.cache.enable=0


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106230938.p5N9caRL053369>