|
Lines 2478-2487
g_raid_shutdown_post_sync(void *arg, int howto)
Link Here
|
| 2478 |
g_topology_unlock(); |
2478 |
g_topology_unlock(); |
| 2479 |
} |
2479 |
} |
| 2480 |
|
2480 |
|
|
|
2481 |
static int uma_test_zone_item_size = 129024; |
| 2482 |
SYSCTL_UINT(_kern_geom_raid, OID_AUTO, uma_test_zone_item_size, CTLFLAG_RWTUN, |
| 2483 |
&uma_test_zone_item_size, 0, "Item size for uma test zone"); |
| 2484 |
|
| 2481 |
static void |
2485 |
static void |
| 2482 |
g_raid_init(struct g_class *mp) |
2486 |
g_raid_init(struct g_class *mp) |
| 2483 |
{ |
2487 |
{ |
|
|
2488 |
uma_zone_t uma_test_zone; |
| 2489 |
void *p; |
| 2490 |
static int i; |
| 2491 |
|
| 2492 |
uma_test_zone = uma_zcreate("uma_test", uma_test_zone_item_size, NULL, NULL, |
| 2493 |
NULL, NULL, 0, UMA_ZONE_NOFREE); |
| 2484 |
|
2494 |
|
|
|
2495 |
for (i = 0; i <= uma_test_zone_item_size; i++) { |
| 2496 |
p = uma_zalloc(uma_test_zone, M_WAITOK); |
| 2497 |
memset(p, 0x10, i); |
| 2498 |
G_RAID_DEBUG(1, "Freeing item after filling %d bytes.", i); |
| 2499 |
uma_zfree(uma_test_zone, p); |
| 2500 |
} |
| 2485 |
g_raid_post_sync = EVENTHANDLER_REGISTER(shutdown_post_sync, |
2501 |
g_raid_post_sync = EVENTHANDLER_REGISTER(shutdown_post_sync, |
| 2486 |
g_raid_shutdown_post_sync, mp, SHUTDOWN_PRI_FIRST); |
2502 |
g_raid_shutdown_post_sync, mp, SHUTDOWN_PRI_FIRST); |
| 2487 |
if (g_raid_post_sync == NULL) |
2503 |
if (g_raid_post_sync == NULL) |
| 2488 |
- |
|
|
| 2489 |
panic without touching the item first |
2504 |
panic without touching the item first |
| 2490 |
(kgdb) where |
2505 |
(kgdb) where |
| 2491 |
#0 __curthread () at ./machine/pcpu.h:222 |
2506 |
#0 __curthread () at ./machine/pcpu.h:222 |
| 2492 |
#1 doadump (textdump=1) at /usr/src/sys/kern/kern_shutdown.c:298 |
2507 |
#1 doadump (textdump=1) at /usr/src/sys/kern/kern_shutdown.c:298 |
| 2493 |
#2 0xffffffff80555465 in kern_reboot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:366 |
2508 |
#2 0xffffffff80555465 in kern_reboot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:366 |
| 2494 |
#3 0xffffffff80555a40 in vpanic (fmt=<optimized out>, ap=0xfffffe0113d69980) at /usr/src/sys/kern/kern_shutdown.c:759 |
2509 |
#3 0xffffffff80555a40 in vpanic (fmt=<optimized out>, ap=0xfffffe0113d69980) at /usr/src/sys/kern/kern_shutdown.c:759 |
| 2495 |
#4 0xffffffff80555876 in kassert_panic (fmt=0xffffffff808c521f "Assertion %s failed at %s:%d") at /usr/src/sys/kern/kern_shutdown.c:649 |
2510 |
#4 0xffffffff80555876 in kassert_panic (fmt=0xffffffff808c521f "Assertion %s failed at %s:%d") at /usr/src/sys/kern/kern_shutdown.c:649 |
| 2496 |
#5 0xffffffff807dd333 in keg_fetch_slab (keg=0xfffff80005b52480, zone=0xfffff80005b53700, flags=2) at /usr/src/sys/vm/uma_core.c:2343 |
2511 |
#5 0xffffffff807dd333 in keg_fetch_slab (keg=0xfffff80005b52480, zone=0xfffff80005b53700, flags=2) at /usr/src/sys/vm/uma_core.c:2343 |
| 2497 |
#6 0xffffffff807dc9ae in zone_fetch_slab (zone=0xfffff80005b53700, keg=0xfffff80005b52480, flags=2) at /usr/src/sys/vm/uma_core.c:2368 |
2512 |
#6 0xffffffff807dc9ae in zone_fetch_slab (zone=0xfffff80005b53700, keg=0xfffff80005b52480, flags=2) at /usr/src/sys/vm/uma_core.c:2368 |
| 2498 |
#7 0xffffffff807dca40 in zone_import (zone=0xfffff80005b53700, bucket=0xfffff800d7eae9f8, max=1, flags=2) at /usr/src/sys/vm/uma_core.c:2494 |
2513 |
#7 0xffffffff807dca40 in zone_import (zone=0xfffff80005b53700, bucket=0xfffff800d7eae9f8, max=1, flags=2) at /usr/src/sys/vm/uma_core.c:2494 |
| 2499 |
#8 0xffffffff807d9341 in zone_alloc_bucket (zone=0xfffff80005b53700, udata=0x0, flags=2) at /usr/src/sys/vm/uma_core.c:2524 |
2514 |
#8 0xffffffff807d9341 in zone_alloc_bucket (zone=0xfffff80005b53700, udata=0x0, flags=2) at /usr/src/sys/vm/uma_core.c:2524 |
| 2500 |
#9 uma_zalloc_arg (zone=0xfffff80005b53700, udata=0x0, flags=<optimized out>) at /usr/src/sys/vm/uma_core.c:2250 |
2515 |
#9 uma_zalloc_arg (zone=0xfffff80005b53700, udata=0x0, flags=<optimized out>) at /usr/src/sys/vm/uma_core.c:2250 |
| 2501 |
#10 0xffffffff8182329f in uma_zalloc (flags=2, zone=<optimized out>) at /usr/src/sys/vm/uma.h:336 |
2516 |
#10 0xffffffff8182329f in uma_zalloc (flags=2, zone=<optimized out>) at /usr/src/sys/vm/uma.h:336 |
| 2502 |
#11 g_raid_init (mp=0xffffffff81856838 <g_raid_class>) at /usr/src/sys/modules/geom/geom_raid/../../../geom/raid/g_raid.c:2496 |
2517 |
#11 g_raid_init (mp=0xffffffff81856838 <g_raid_class>) at /usr/src/sys/modules/geom/geom_raid/../../../geom/raid/g_raid.c:2496 |
| 2503 |
#12 0xffffffff804d1125 in g_load_class (arg=<optimized out>, flag=<optimized out>) at /usr/src/sys/geom/geom_subr.c:124 |
2518 |
#12 0xffffffff804d1125 in g_load_class (arg=<optimized out>, flag=<optimized out>) at /usr/src/sys/geom/geom_subr.c:124 |
| 2504 |
#13 0xffffffff804cd7c7 in one_event () at /usr/src/sys/geom/geom_event.c:264 |
2519 |
#13 0xffffffff804cd7c7 in one_event () at /usr/src/sys/geom/geom_event.c:264 |
| 2505 |
#14 g_run_events () at /usr/src/sys/geom/geom_event.c:286 |
2520 |
#14 g_run_events () at /usr/src/sys/geom/geom_event.c:286 |
| 2506 |
#15 0xffffffff80517e64 in fork_exit (callout=0xffffffff804cfa60 <g_event_procbody>, arg=0x0, frame=0xfffffe0113d69c00) at /usr/src/sys/kern/kern_fork.c:1040 |
2521 |
#15 0xffffffff80517e64 in fork_exit (callout=0xffffffff804cfa60 <g_event_procbody>, arg=0x0, frame=0xfffffe0113d69c00) at /usr/src/sys/kern/kern_fork.c:1040 |
| 2507 |
#16 <signal handler called> |
2522 |
#16 <signal handler called> |
| 2508 |
(kgdb) f 12 |
2523 |
(kgdb) f 12 |
| 2509 |
#12 0xffffffff804d1125 in g_load_class (arg=<optimized out>, flag=<optimized out>) at /usr/src/sys/geom/geom_subr.c:124 |
2524 |
#12 0xffffffff804d1125 in g_load_class (arg=<optimized out>, flag=<optimized out>) at /usr/src/sys/geom/geom_subr.c:124 |
| 2510 |
warning: Source file is more recent than executable. |
2525 |
warning: Source file is more recent than executable. |
| 2511 |
124 mp->init(mp); |
2526 |
124 mp->init(mp); |
| 2512 |
(kgdb) f 5 |
2527 |
(kgdb) f 5 |
| 2513 |
#5 0xffffffff807dd333 in keg_fetch_slab (keg=0xfffff80005b52480, zone=0xfffff80005b53700, flags=2) at /usr/src/sys/vm/uma_core.c:2343 |
2528 |
#5 0xffffffff807dd333 in keg_fetch_slab (keg=0xfffff80005b52480, zone=0xfffff80005b53700, flags=2) at /usr/src/sys/vm/uma_core.c:2343 |
| 2514 |
warning: Source file is more recent than executable. |
2529 |
warning: Source file is more recent than executable. |
| 2515 |
2343 MPASS(slab->us_keg == keg); |
2530 |
2343 MPASS(slab->us_keg == keg); |
| 2516 |
(kgdb) p slab->us_keg |
2531 |
(kgdb) p slab->us_keg |
| 2517 |
$1 = (uma_keg_t) 0xdeadc0dedeadc0de |
2532 |
$1 = (uma_keg_t) 0xdeadc0dedeadc0de |
| 2518 |
(kgdb) f 9 |
2533 |
(kgdb) f 9 |
| 2519 |
#9 uma_zalloc_arg (zone=0xfffff80005b53700, udata=0x0, flags=<optimized out>) at /usr/src/sys/vm/uma_core.c:2250 |
2534 |
#9 uma_zalloc_arg (zone=0xfffff80005b53700, udata=0x0, flags=<optimized out>) at /usr/src/sys/vm/uma_core.c:2250 |
| 2520 |
2250 bucket = zone_alloc_bucket(zone, udata, flags); |
2535 |
2250 bucket = zone_alloc_bucket(zone, udata, flags); |
| 2521 |
(kgdb) p zone |
2536 |
(kgdb) p zone |
| 2522 |
$2 = (uma_zone_t) 0xfffff80005b53700 |
2537 |
$2 = (uma_zone_t) 0xfffff80005b53700 |
| 2523 |
(kgdb) p *zone |
2538 |
(kgdb) p *zone |
| 2524 |
$3 = {uz_lock = {lock_object = {lo_name = 0xffffffff8184f85a "uma_test", lo_flags = 21168128, lo_data = 0, lo_witness = 0xfffffe0000a0cf80}, mtx_lock = 4}, uz_lockptr = 0xfffff80005b52480, |
2539 |
$3 = {uz_lock = {lock_object = {lo_name = 0xffffffff8184f85a "uma_test", lo_flags = 21168128, lo_data = 0, lo_witness = 0xfffffe0000a0cf80}, mtx_lock = 4}, uz_lockptr = 0xfffff80005b52480, |
| 2525 |
uz_name = 0xffffffff8184f85a "uma_test", uz_link = {le_next = 0x0, le_prev = 0xfffff80005b52510}, uz_buckets = {lh_first = 0x0}, uz_kegs = {lh_first = 0xfffff80005b537b0}, uz_klink = {kl_link = {le_next = 0x0, |
2540 |
uz_name = 0xffffffff8184f85a "uma_test", uz_link = {le_next = 0x0, le_prev = 0xfffff80005b52510}, uz_buckets = {lh_first = 0x0}, uz_kegs = {lh_first = 0xfffff80005b537b0}, uz_klink = {kl_link = {le_next = 0x0, |
| 2526 |
le_prev = 0xfffff80005b537a8}, kl_keg = 0xfffff80005b52480}, uz_slab = 0xffffffff807dc940 <zone_fetch_slab>, uz_ctor = 0xffffffff807dd730 <trash_ctor>, uz_dtor = 0xffffffff807dd780 <trash_dtor>, uz_init = 0x0, |
2541 |
le_prev = 0xfffff80005b537a8}, kl_keg = 0xfffff80005b52480}, uz_slab = 0xffffffff807dc940 <zone_fetch_slab>, uz_ctor = 0xffffffff807dd730 <trash_ctor>, uz_dtor = 0xffffffff807dd780 <trash_dtor>, uz_init = 0x0, |
| 2527 |
uz_fini = 0x0, uz_import = 0xffffffff807dc9f0 <zone_import>, uz_release = 0xffffffff807dcc90 <zone_release>, uz_arg = 0xfffff80005b53700, uz_flags = 0, uz_size = 129024, uz_allocs = 0, uz_fails = 0, uz_frees = 0, |
2542 |
uz_fini = 0x0, uz_import = 0xffffffff807dc9f0 <zone_import>, uz_release = 0xffffffff807dcc90 <zone_release>, uz_arg = 0xfffff80005b53700, uz_flags = 0, uz_size = 129024, uz_allocs = 0, uz_fails = 0, uz_frees = 0, |
| 2528 |
uz_sleeps = 0, uz_count = 1, uz_count_min = 1, uz_warning = 0x0, uz_ratecheck = {tv_sec = 0, tv_usec = 0}, uz_maxaction = {ta_link = {stqe_next = 0x0}, ta_pending = 0, ta_priority = 0, ta_func = 0x0, ta_context = 0x0}, |
2543 |
uz_sleeps = 0, uz_count = 1, uz_count_min = 1, uz_warning = 0x0, uz_ratecheck = {tv_sec = 0, tv_usec = 0}, uz_maxaction = {ta_link = {stqe_next = 0x0}, ta_pending = 0, ta_priority = 0, ta_func = 0x0, ta_context = 0x0}, |
| 2529 |
uz_cpu = {{uc_freebucket = 0x0, uc_allocbucket = 0x0, uc_allocs = 0, uc_frees = 0}}} |
2544 |
uz_cpu = {{uc_freebucket = 0x0, uc_allocbucket = 0x0, uc_allocs = 0, uc_frees = 0}}} |
| 2530 |
(kgdb) f 11 |
2545 |
(kgdb) f 11 |
| 2531 |
#11 g_raid_init (mp=0xffffffff81856838 <g_raid_class>) at /usr/src/sys/modules/geom/geom_raid/../../../geom/raid/g_raid.c:2496 |
2546 |
#11 g_raid_init (mp=0xffffffff81856838 <g_raid_class>) at /usr/src/sys/modules/geom/geom_raid/../../../geom/raid/g_raid.c:2496 |
| 2532 |
2496 p = uma_zalloc(uma_test_zone, M_WAITOK); |
2547 |
2496 p = uma_zalloc(uma_test_zone, M_WAITOK); |
| 2533 |
(kgdb) p i |
2548 |
(kgdb) p i |
| 2534 |
$4 = 0 |
2549 |
$4 = 0 |
| 2535 |
(kgdb) l - |
2550 |
(kgdb) l - |
| 2536 |
2491 |
2551 |
2491 |
| 2537 |
2492 uma_test_zone = uma_zcreate("uma_test", uma_test_zone_item_size, NULL, NULL, |
2552 |
2492 uma_test_zone = uma_zcreate("uma_test", uma_test_zone_item_size, NULL, NULL, |
| 2538 |
2493 NULL, NULL, 0, 0); |
2553 |
2493 NULL, NULL, 0, 0); |
| 2539 |
2494 |
2554 |
2494 |
| 2540 |
2495 for (i = 0; i <= uma_test_zone_item_size; i++) { |
2555 |
2495 for (i = 0; i <= uma_test_zone_item_size; i++) { |
| 2541 |
2496 p = uma_zalloc(uma_test_zone, M_WAITOK); |
2556 |
2496 p = uma_zalloc(uma_test_zone, M_WAITOK); |
| 2542 |
2497 memset(p, 0x10, i); |
2557 |
2497 memset(p, 0x10, i); |
| 2543 |
2498 G_RAID_DEBUG(1, "Freeing item after filling %d bytes.", i); |
2558 |
2498 G_RAID_DEBUG(1, "Freeing item after filling %d bytes.", i); |
| 2544 |
2499 uma_zfree(uma_test_zone, p); |
2559 |
2499 uma_zfree(uma_test_zone, p); |
| 2545 |
2500 } |
2560 |
2500 } |
| 2546 |
-- |
|
|
| 2547 |
sys/geom/raid/g_raid.c | 2 +- |
2561 |
sys/geom/raid/g_raid.c | 2 +- |
| 2548 |
1 file changed, 1 insertion(+), 1 deletion(-) |
2562 |
1 file changed, 1 insertion(+), 1 deletion(-) |