Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Nov 2009 00:53:26 +0300
From:      pluknet <pluknet@gmail.com>
To:        freebsd-stable <freebsd-stable@freebsd.org>
Subject:   Re: [geom] page fault in g_mbr_config()
Message-ID:  <a31046fc0911241353o49a356aahe60c7af1373994e4@mail.gmail.com>
In-Reply-To: <a31046fc0907240616n636dbbeam7ec2a3230c9562e4@mail.gmail.com>
References:  <a31046fc0907240611g7e5c086ft9a7f5d0e5e4dc7e0@mail.gmail.com> <a31046fc0907240616n636dbbeam7ec2a3230c9562e4@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
2009/7/24 pluknet <pluknet@gmail.com>:
> 2009/7/24 pluknet <pluknet@gmail.com>:
>> Hi.
>>
>> I got a panic while performing a repetitive =A0'fdisk -BI aacd0',
>> where aacd0 is a disk on aac0: <IBM ServeRAID-8k>.
>> This means that the command was issued after filesystems
>> were already created on aacd (after the first fdisk -BI aacd0
>> iteration), and are in umount'ed state.
>>
>> This is on 7.2-R, amd64. Config is a GENERIC plus ddb, carp, ipfw, quota=
.
>>
>> Fatal trap 12: page fault while in kernel mode
>> cpuid =3D 5; apic id =3D 05
>> fault virtual address =A0 =3D 0x20
>> fault code =A0 =A0 =A0 =A0 =A0 =A0 =A0=3D supervisor read data, page not=
 present
>> instruction pointer =A0 =A0 =3D 0x8:0xffffffff804cc554
>> stack pointer =A0 =A0 =A0 =A0 =A0 =3D 0x10:0xfffffffe80079b80
>> frame pointer =A0 =A0 =A0 =A0 =A0 =3D 0x10:0xfffffffe80079bd0
>> code segment =A0 =A0 =A0 =A0 =A0 =A0=3D base 0x0, limit 0xfffff, type 0x=
1b
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=3D DPL 0, pres 1, long 1=
, def32 0, gran 1
>> processor eflags =A0 =A0 =A0 =A0=3D interrupt enabled, resume, IOPL =3D =
0
>> current process =A0 =A0 =A0 =A0 =3D 2 (g_event)
>> [thread pid 2 tid 100013 ]
>> Stopped at =A0 =A0 =A0g_mbr_config+0x64: =A0 =A0 =A0movq =A0 =A00x20(%ra=
x),%r15
>> db> bt
>> Tracing pid 2 tid 100013 td 0xffffff000144da50
>> g_mbr_config() at g_mbr_config+0x64
>> g_run_events() at g_run_events+0x1b8
>> g_event_procbody() at g_event_procbody+0x57
>> fork_exit() at fork_exit+0x11f
>> fork_trampoline() at fork_trampoline+0xe
>> --- trap 0, rip =3D 0, rsp =3D 0xfffffffe80079d30, rbp =3D 0 ---
>
> And, of course...
>
> db> show proc 818
> Process 818 (fdisk) at 0xffffff0004ed1000:
> =A0state: NORMAL
> =A0uid: 0 =A0gids: 0, 0, 5
> =A0parent: pid 814 at 0xffffff00045c0478
> =A0ABI: FreeBSD ELF64
> =A0arguments: fdisk
> =A0threads: 1
> 100169 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 D =A0 =A0 =A0 g_waitfo 0xfffff=
f0004ec9100 fdisk
> db> bt 818
> Tracing pid 818 tid 100169 td 0xffffff0004fbf6e0
> sched_switch() at sched_switch+0x1fe
> mi_switch() at mi_switch+0x18e
> sleepq_timedwait() at sleepq_timedwait+0x31
> _sleep() at _sleep+0x354
> g_waitfor_event() at g_waitfor_event+0x9a
> g_ctl_ioctl() at g_ctl_ioctl+0x2df
> giant_ioctl() at giant_ioctl+0x7d
> devfs_ioctl_f() at devfs_ioctl_f+0x77
> kern_ioctl() at kern_ioctl+0xa2
> ioctl() at ioctl+0xf9
> syscall() at syscall+0x256
> Xfast_syscall() at Xfast_syscall+0xab
> --- syscall (54, FreeBSD ELF64, ioctl), rip =3D 0x8008200ec, rsp =3D
> 0x7fffffffe1d8, rbp =3D 0x4 ---
>

This makes me tied to GEOM_* -> GEOM_PART_* scheme (which is in 8+ in
DEFAULTS now).
After this replacement in DEFAULTS I see no more panics in 'fdisk -BI aacd0=
'.

--=20
wbr,
pluknet



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