Добрый день.Есть железка 2xXeon с HT (http://www.supermicro.com/products/system/1U/6015/SYS-6015B-...)
На ней FreeBSD 6.2 Release. Ядро идентичное GENERIC, добавлено SMP, выкинуты ненужные драйверы и debug.Падает время от времени, с сообщением
Fatal trap 12: Page fault while in kernel mode
Kernel panic...И дальше только ресет. Железо менял, с опциями ядра игрался, настройки почти все вернул к исходным - бесполезно.
Причем падает, похоже, независимо от нагрузки.На нем крутятся Nginx, Apache2, MySQL.
Подключен к сети гигабитом, реальная нагрузка 150-200 мегабит/сек. Нагрузка достаточно большая, поэтому без SMP никак нельзя :(Прогуглив нашел только много постов, что FreeBSD с SMP все еще работает плохо. Это так?
Есть-ли какие-то решения? Как можно более точно продиагностировать причины падений?Спасибо!
>[оверквотинг удален]
>
>На нем крутятся Nginx, Apache2, MySQL.
>Подключен к сети гигабитом, реальная нагрузка 150-200 мегабит/сек. Нагрузка достаточно большая, поэтому
>без SMP никак нельзя :(
>
>Прогуглив нашел только много постов, что FreeBSD с SMP все еще работает
>плохо. Это так?
>Есть-ли какие-то решения? Как можно более точно продиагностировать причины падений?
>
>Спасибо!знаете - фатал трап 12 самая веселая штука которую я когда либо встречал. стояла система, ничё не менялось. потом она просто при загрузке начала валиться в фатал трапу. винт на другую систему - та же история. переустановка не помогала. и в итоге через несколько дней, когда ее просто решили включить - она завелась и проработала еще пару лет. так что попробуйте поставить linux :)
А вы задумывались по поводу назначения -debug в ядре? Ненужных опций в ядре не бывает, бывает только неиспользуемое оборудование.1. Добавить в /etc/rc.conf:
dumpdev="AUTO"
dumpdir="/var/crash"
savecore_flags="-v"
2. Скомпилить ядрышко с -debug.
3. Перегрузить сервер.
4. При падении в /var/crash будет core файл, который вполне можно поиметь gdb-шкой(man gdb).
5. Делаем еще и обратный трэйс, и результаты выкладываем сюда.
6. Никогда не слушаем советы идиотов, которые при любой проблеме меняют систему.Итого:
man savecore
man gdb
man dumpon
man rc.conf
>Как можно более точно продиагностировать причины падений?Добавте в ядро (если нет)
makeoptions DEBUG=-gПересоберите, включите сохранение дампа памяти ядра при паниках на диск -
в /etc/rc.conf добавте:
dumpdev="AUTO"После очередной паники у вас должен появится в /var/crash файл дампа.
Далее выполните команды:
# cd /var/crash
# kgdb -q /boot/kernel/kernel vmcore.N | tee backtrace.txt (N - это номер дампа)
(kgdb) bt
(kgdb) bt full
(kgdb) quitПолученный файл backtrace.txt можете показать сюда или отправить мне на почту.
негусто как-то:# kgdb -q /boot/kernel/kernel vmcore.0 | tee backtrace.txt
[GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
Attempt to extract a component of a value that is not a structure pointer.
(no debugging symbols found)...(kgdb) bt
#0 0xc05ecfd2 in doadump ()
#1 0xc08440e0 in buf.0 ()
#2 0xe6ecabc8 in ?? ()
#3 0xc05ed4c5 in boot ()
Previous frame inner to this frame (corrupt stack?)
(kgdb) bt full
#0 0xc05ecfd2 in doadump ()
No symbol table info available.
#1 0xc08440e0 in buf.0 ()
No symbol table info available.
#2 0xe6ecabc8 in ?? ()
No symbol table info available.
#3 0xc05ed4c5 in boot ()
No symbol table info available.
(kgdb) quit
>негусто как-то:
>(kgdb) quitДа.. не густо. Покажите kldstat, и попробуйте в отладчике ещё выполнить команду:
(kgdb) printf "%s", (char *)msgbufp->msg_ptr
(kgdb) printf "%s", (char *)msgbufp->msg_ptr
Attempt to extract a component of a value that is not a structure pointer.# kldstat
Id Refs Address Size Name
1 4 0xc0400000 5229d4 kernel
2 1 0xc0923000 13200 geom_mirror.ko
3 1 0xc0937000 59e80 acpi.ko
>(kgdb) printf "%s", (char *)msgbufp->msg_ptr
>Attempt to extract a component of a value that is not a
>structure pointer.Странно.. Можете где-нибудь выложить ваш дамп и ядро? Пожатые.
у меня каким-то таинственным образом отладочные символы от старого ядра были. жду очередного panic..
>у меня каким-то таинственным образом отладочные символы от старого ядра были. жду
>очередного panic..Ядро новое (/boot/kernel/kernel), корка тоже сегодняшняя, опция в ядре:
makeoptions DEBUG=-grc.conf:
dumpdev="AUTO"
dumpdir="/var/crash"
savecore_flags="-v"------------------------------------------------------------------------------
nas1# kgdb -d /var/crash /boot/kernel/kernel /var/crash/vmcore.2
kgdb: kvm_nlist(_stopped_cpus):
kgdb: kvm_nlist(_stoppcbs):
[GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
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".
(no debugging symbols found)...Attempt to extract a component of a value that is not a structure pointer.
(kgdb) printf "%s", (char *)msgbufp->msg_ptr
Attempt to extract a component of a value that is not a structure pointer.
(kgdb) quit
You have new mail.
nas1# kldstat
Id Refs Address Size Name
1 19 0xc0400000 2de680 kernel
2 1 0xc06df000 5c304 acpi.ko
3 1 0xc4b3d000 3000 ng_tee.ko
4 12 0xc4b40000 a000 netgraph.ko
5 1 0xc4b4e000 2000 ng_ipfw.ko
6 1 0xc4b50000 2000 ng_nat.ko
7 1 0xc4b52000 9000 libalias.ko
8 1 0xc4b5d000 4000 ng_socket.ko
9 1 0xc4cad000 3000 ng_mppc.ko
10 1 0xc4cb0000 2000 rc4.ko
11 1 0xc4ceb000 4000 ng_pptpgre.ko
12 1 0xc4d14000 4000 ng_ksocket.ko
13 1 0xc4dfc000 3000 ng_iface.ko
14 1 0xc4e08000 6000 ng_ppp.ko
15 1 0xc4e1d000 4000 ng_netflow.ko
16 1 0xc4e12000 2000 ng_tcpmss.ko
17 1 0xc50f5000 4000 ng_vjc.ko
Виноват, всё получилось. Указывал не тот аргумент для kgdb.nas1# kgdb kernel.debug /var/crash/vmcore.2
kgdb: kvm_nlist(_stopped_cpus):
kgdb: kvm_nlist(_stoppcbs):
[GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
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:
kernel trap 12 with interrupts disabled
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x78
fault code = supervisor read, page not present
instruction pointer = 0x20:0xc04dee5d
stack pointer = 0x28:0xe31efc1c
frame pointer = 0x28:0xe31efc20
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = resume, IOPL = 0
current process = 13 (swi1: net)
trap number = 12
panic: page fault
Uptime: 16h58m24s
Dumping 1022 MB (2 chunks)
chunk 0: 1MB (157 pages) ... ok
chunk 1: 1022MB (261504 pages) 1006 990 974 958 942 926 910 894 878 862 846 830 814 798 782 766 750 734 718 702 686 670 654 638 622 606 590 574 558 542 526 510 494 478 462 446 430 414 398 382 366 350 334 318 302 286 270 254 238 222 206 190 174 158 142 126 110 94 78 62 46 30 14#0 doadump () at pcpu.h:165
165 __asm __volatile("movl %%fs:0,%0" : "=r" (td));
вот, теперь совсем другое дело:# kgdb kernel.debug /var/crash/vmcore.1
[GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
....Unread portion of the kernel message buffer:
kernel trap 12 with interrupts disabledFatal trap 12: page fault while in kernel mode
cpuid = 2; apic id = 06
fault virtual address = 0x104
fault code = supervisor read, page not present
instruction pointer = 0x20:0xc05df375
stack pointer = 0x28:0xe6e8ec90
frame pointer = 0x28:0xe6e8ec9c
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = resume, IOPL = 0
current process = 5 (thread taskq)
trap number = 12
panic: page fault
cpuid = 2
Uptime: 8h2m41s
Dumping 3326 MB (2 chunks)
chunk 0: 1MB (157 pages) ... ok
chunk 1: 3327MB (851552 pages) 3311 3295 3279 3263 3247 3231 3215 3199 3183 3167 3151 3135 3119 3103 3087 3071 3055 3039 3023 3007 2991 2975 2959 2943 2927 2911 2895 2879 2863 2847 2831 2815 2799 2783 2767 2751 2735 2719 2703 2687 2671 2655 2639 2623 2607 2591 2575 2559 2543 2527 2511 2495 2479 2463 2447 2431 2415 2399 2383 2367 2351 2335 2319 2303 2287 2271 2255 2239 2223 2207 2191 2175 2159 2143 2127 2111 2095 2079 2063 2047 2031 2015 1999 1983 1967 1951 1935 1919 1903 1887 1871 1855 1839 1823 1807 1791 1775 1759 1743 1727 1711 1695 1679 1663 1647 1631 1615 1599 1583 1567 1551 1535 1519 1503 1487 1471 1455 1439 1423 1407 1391 1375 1359 1343 1327 1311 1295 1279 1263 1247 1231 1215 1199 1183 1167 1151 1135 1119 1103 1087 1071 1055 1039 1023 1007 991 975 959 943 927 911 895 879 863 847 831 815 799 783 767 751 735 719 703 687 671 655 639 623 607 591 575 559 543 527 511 495 479 463 447 431 415 399 383 367 351 335 319 303 287 271 255 239 223 207 191 175 159 143 127 111 95 79 63 47 31 15#0 doadump () at pcpu.h:165
165 __asm __volatile("movl %%fs:0,%0" : "=r" (td));
(kgdb) bt
#0 doadump () at pcpu.h:165
#1 0xc05e814e in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409
#2 0xc05e8475 in panic (fmt=0xc079518a "%s") at /usr/src/sys/kern/kern_shutdown.c:565
#3 0xc07542f0 in trap_fatal (frame=0xe6e8ec50, eva=260) at /usr/src/sys/i386/i386/trap.c:837
#4 0xc0753aa6 in trap (frame=
{tf_fs = -936247288, tf_es = -925106136, tf_ds = -421003224, tf_edi = -936230528, tf_esi = 4, tf_ebp = -420942692, tf_isp = -420942724, tf_ebx = -924808656, tf_edx = 6, tf_ecx = 0, tf_eax = 1, tf_trapno = 12, tf_err = 0, tf_eip = -1067584651, tf_cs = 32, tf_eflags = 65538, tf_esp = -922315288, tf_ss = 4}) at /usr/src/sys/i386/i386/trap.c:270
#5 0xc07406ca in calltrap () at /usr/src/sys/i386/i386/exception.s:139
#6 0xc05df375 in _mtx_lock_sleep (m=0xc8e08a30, tid=3358736768, opts=0, file=0x0, line=0) at /usr/src/sys/kern/kern_mutex.c:546
#7 0xc062e6da in unp_gc (arg=0x0, pending=1) at /usr/src/sys/kern/uipc_usrreq.c:1714
#8 0xc0608df7 in taskqueue_run (queue=0xc837ce00) at /usr/src/sys/kern/subr_taskqueue.c:257
#9 0xc06092da in taskqueue_thread_loop (arg=0x1) at /usr/src/sys/kern/subr_taskqueue.c:376
#10 0xc05d1891 in fork_exit (callout=0xc0609248 <taskqueue_thread_loop>, arg=0xc083f0e8, frame=0xe6e8ed38)
at /usr/src/sys/kern/kern_fork.c:821
#11 0xc074072c in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:208
(kgdb) bt full
#0 doadump () at pcpu.h:165
No locals.
#1 0xc05e814e in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409
first_buf_printf = 1
#2 0xc05e8475 in panic (fmt=0xc079518a "%s") at /usr/src/sys/kern/kern_shutdown.c:565
td = (struct thread *) 0xc8324180
bootopt = 260
newpanic = 0
ap = 0xc8324180 "0\2042+ k2+"
buf = "page fault", '\0' <repeats 245 times>
#3 0xc07542f0 in trap_fatal (frame=0xe6e8ec50, eva=260) at /usr/src/sys/i386/i386/trap.c:837
code = 40
type = 12
ss = 40
esp = 0
softseg = {ssd_base = 0, ssd_limit = 1048575, ssd_type = 27, ssd_dpl = 0, ssd_p = 1, ssd_xx = 0, ssd_xx1 = 0,
ssd_def32 = 1, ssd_gran = 1}
msg = 0x0
#4 0xc0753aa6 in trap (frame=
{tf_fs = -936247288, tf_es = -925106136, tf_ds = -421003224, tf_edi = -936230528, tf_esi = 4, tf_ebp = -420942692, tf_isp = -420942724, tf_ebx = -924808656, tf_edx = 6, tf_ecx = 0, tf_eax = 1, tf_trapno = 12, tf_err = 0, tf_eip = -1067584651, tf_cs = 32, tf_eflags = 65538, tf_esp = -922315288, tf_ss = 4}) at /usr/src/sys/i386/i386/trap.c:270
td = (struct thread *) 0xc8324180
p = (struct proc *) 0xc8328430
sticks = 1391691531
i = 0
ucode = 0
type = 12
code = 0
eva = 260
#5 0xc07406ca in calltrap () at /usr/src/sys/i386/i386/exception.s:139
No locals.
#6 0xc05df375 in _mtx_lock_sleep (m=0xc8e08a30, tid=3358736768, opts=0, file=0x0, line=0) at /usr/src/sys/kern/kern_mutex.c:546
owner = (volatile struct thread *) 0x4
v = 6
#7 0xc062e6da in unp_gc (arg=0x0, pending=1) at /usr/src/sys/kern/uipc_usrreq.c:1714
fp = (struct file *) 0xc90695e8
nextfp = (struct file *) 0xc8e089bc
so = (struct socket *) 0xc8e089bc
extra_ref = (struct file **) 0xe6e8ece8
fpp = (struct file **) 0x4
nunref = -1067418688
i = 4
nfiles_snap = -922315288
nfiles_slack = 20
#8 0xc0608df7 in taskqueue_run (queue=0xc837ce00) at /usr/src/sys/kern/subr_taskqueue.c:257
task = (struct task *) 0xc0840a84
owned = 1
pending = 1
#9 0xc06092da in taskqueue_thread_loop (arg=0x1) at /usr/src/sys/kern/subr_taskqueue.c:376
tq = (struct taskqueue *) 0xc837ce00
#10 0xc05d1891 in fork_exit (callout=0xc0609248 <taskqueue_thread_loop>, arg=0xc083f0e8, frame=0xe6e8ed38)
at /usr/src/sys/kern/kern_fork.c:821
p = (struct proc *) 0xc8328430
td = (struct thread *) 0x6
#11 0xc074072c in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:208
No locals.(kgdb) where
#0 doadump () at pcpu.h:165
#1 0xc05e814e in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409
#2 0xc05e8475 in panic (fmt=0xc079518a "%s") at /usr/src/sys/kern/kern_shutdown.c:565
#3 0xc07542f0 in trap_fatal (frame=0xe6e8ec50, eva=260) at /usr/src/sys/i386/i386/trap.c:837
#4 0xc0753aa6 in trap (frame=
{tf_fs = -936247288, tf_es = -925106136, tf_ds = -421003224, tf_edi = -936230528, tf_esi = 4, tf_ebp = -420942692, tf_isp = -420942724, tf_ebx = -924808656, tf_edx = 6, tf_ecx = 0, tf_eax = 1, tf_trapno = 12, tf_err = 0, tf_eip = -1067584651, tf_cs = 32, tf_eflags = 65538, tf_esp = -922315288, tf_ss = 4}) at /usr/src/sys/i386/i386/trap.c:270
#5 0xc07406ca in calltrap () at /usr/src/sys/i386/i386/exception.s:139
#6 0xc05df375 in _mtx_lock_sleep (m=0xc8e08a30, tid=3358736768, opts=0, file=0x0, line=0) at /usr/src/sys/kern/kern_mutex.c:546
#7 0xc062e6da in unp_gc (arg=0x0, pending=1) at /usr/src/sys/kern/uipc_usrreq.c:1714
#8 0xc0608df7 in taskqueue_run (queue=0xc837ce00) at /usr/src/sys/kern/subr_taskqueue.c:257
#9 0xc06092da in taskqueue_thread_loop (arg=0x1) at /usr/src/sys/kern/subr_taskqueue.c:376
#10 0xc05d1891 in fork_exit (callout=0xc0609248 <taskqueue_thread_loop>, arg=0xc083f0e8, frame=0xe6e8ed38)
at /usr/src/sys/kern/kern_fork.c:821
#11 0xc074072c in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:208
(kgdb)
>(kgdb) where
>#6 0xc05df375 in _mtx_lock_sleep (m=0xc8e08a30, tid=3358736768, opts=0, file=0x0, line=0) at /usr/src/sys/kern/kern_mutex.c:546
>
>#7 0xc062e6da in unp_gc (arg=0x0, pending=1) at /usr/src/sys/kern/uipc_usrreq.c:1714
>#8 0xc0608df7 in taskqueue_run (queue=0xc837ce00) atРекомендую вам обновиться до RELENG_6.
http://www.freebsd.org/cgi/query-pr.cgi?pr=107325
так у меня сейчас 6.2. А откуда хотябы уши проблемы растут?
>так у меня сейчас 6.2. А откуда хотябы уши проблемы растут?Вы писали, что у вас FreeBSD 6.2 Release, а нужно обновиться до 6.2-STABLE.
Эта проблема пофикшена в STABLE.
http://freebsd.rambler.ru/bsdmail/cvs-src_2007/msg00318.html
>>так у меня сейчас 6.2. А откуда хотябы уши проблемы растут?
>
>Вы писали, что у вас FreeBSD 6.2 Release, а нужно обновиться до
>6.2-STABLE.
>Эта проблема пофикшена в STABLE.
>http://freebsd.rambler.ru/bsdmail/cvs-src_2007/msg00318.htmlВроде не чайник, но что-то я не понял как обновиться до STABLE?
>>>так у меня сейчас 6.2. А откуда хотябы уши проблемы растут?
>>
>>Вы писали, что у вас FreeBSD 6.2 Release, а нужно обновиться до
>>6.2-STABLE.
>>Эта проблема пофикшена в STABLE.
>>http://freebsd.rambler.ru/bsdmail/cvs-src_2007/msg00318.html
>
>Вроде не чайник, но что-то я не понял как обновиться до STABLE?
>При обновлении исходного кода через cvsup используйте tag=RELENG_6
>Вы писали, что у вас FreeBSD 6.2 Release, а нужно обновиться до 6.2-STABLE.Обновился до RELENG_6 и у меня получилось 6.3-PRERELEASE не совсем то, чего хотелось-бы, но посмотрим как она будет себя вести....
>На ней FreeBSD 6.2 Release. Ядро идентичное GENERIC, добавлено SMP, выкинуты
>ненужные драйверы и debug.cd /usr/src && make kernel KERNCONF=SMP
и посмотри, загрузишься ли ты на том, что получится. Если загрузишься - смотри опции своего ядра - что выкинул "ненужного".
после обновления до 6.2-STABLE, сервер работает без перезагрузок уже месяц
вроде помогло
у меня другая ситуация, но смысл тот же
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x0
fault code = supervisor write, page not present
instruction pointer = 0x20:0xc0510592
stack pointer = 0x28:0xe573bc04
frame pointer = 0x28:0xe573bc10
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 11 (swi4: clock)
trap number = 12FreeBSD nevagno_chto.tiripiri 6.2-RELEASE FreeBSD 6.2-RELEASE #7: Sun Jan 27 01:05:25 EET 2008 tcp@nevagno_chto.tiripiri:/usr/src/sys/i386/compile/LOCAL i386
сегодня сделаю как вы рекомендуете и выложу
падало постоянно ядро обновил ядро до tag=RELENG_6
все равно упало
(kgdb) [root@r25-x17 /home/tcp]# kgdb -q /usr/src/sys/i386/compile/NOPANIC/kerne crash/vmcore.2
kgdb: kvm_nlist(_stopped_cpus):
kgdb: kvm_nlist(_stoppcbs):
[GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]Unread portion of the kernel message buffer:
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x0
fault code = supervisor write, page not present
instruction pointer = 0x20:0xc0511be5
stack pointer = 0x28:0xe573bb18
frame pointer = 0x28:0xe573bb20
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 11 (swi1: net)
trap number = 12
panic: page fault
Uptime: 3h10m0s
Dumping 2038 MB (4 chunks)
chunk 0: 1MB (159 pages) ... ok
chunk 1: 2038MB (521575 pages) 2022 2006 1990 1974 1958 1942 1926 1910 1894 1878 1862 1846 1830 1814 1798 1782 1766 1750 1734 1718 1702 1686 1670 1654 1638 1622 1606 1590 1574 1558 1542 1526 1510 1494 1478 1462 1446 1430 1414 1398 1382 1366 1350 1334 1318 1302 1286 1270 1254 1238 1222 1206 1190 1174 1158 1142 1126 1110 1094 1078 1062 1046 1030 1014 998 982 966 950 934 918 902 886 870 854 838 822 806 790 774 758 742 726 710 694 678 662 646 630 614 598 582 566 550 534 518 502 486 470 454 438 422 406 390 374 358 342 326 310 294 278 262 246 230 214 198 182 166 150 134 118 102 86 70 54 38 22 6#0 doadump () at pcpu.h:165
165 pcpu.h: No such file or directory.
in pcpu.h(kgdb) bt
#0 doadump () at pcpu.h:165
#1 0xc04d5ba2 in boot (howto=260) at ../../../kern/kern_shutdown.c:409
#2 0xc04d5e38 in panic (fmt=0xc0627e51 "%s")
at ../../../kern/kern_shutdown.c:565
#3 0xc0606394 in trap_fatal (frame=0xe573bad8, eva=0)
at ../../../i386/i386/trap.c:838
#4 0xc06060fb in trap_pfault (frame=0xe573bad8, usermode=0, eva=0)
at ../../../i386/i386/trap.c:745
#5 0xc0605d59 in trap (frame=
{tf_fs = 8, tf_es = 40, tf_ds = 40, tf_edi = -944673984, tf_esi = -948881320, tf_ebp = -445400288, tf_isp = -445400316, tf_ebx = -949633916, tf_edx = -948881292, tf_ecx = 4, tf_eax = 0, tf_trapno = 12, tf_err = 2, tf_eip = -1068426267, tf_cs = 32, tf_eflags = 590406, tf_esp = -949633836, tf_ss = -949633916})
at ../../../i386/i386/trap.c:435
#6 0xc05f3a3a in calltrap () at ../../../i386/i386/exception.s:139
#7 0xc0511be5 in soisconnected (so=0xc765bc84)
at ../../../kern/uipc_socket2.c:138
#8 0xc0552040 in sohasdata (so=0xc7713874, arg=0x0, waitflag=1)
at ../../../netinet/accf_data.c:66
#9 0xc051280d in sowakeup (so=0xc765bc84, sb=0xc765bcd4)
at ../../../kern/uipc_socket2.c:422
#10 0xc051209a in soisdisconnected (so=0xc765bc84)
at ../../../kern/uipc_socket2.c:196
---Type <return> to continue, or q <return> to quit---
#11 0xc0566c9b in tcp_discardcb (tp=0xc7bfe3a0)
at ../../../netinet/tcp_subr.c:830
#12 0xc0566cb4 in tcp_close (tp=0x0) at ../../../netinet/tcp_subr.c:851
#13 0xc0562c66 in tcp_input (m=0xc6b6e900, off0=20)
at ../../../netinet/tcp_input.c:1575
#14 0xc055acc2 in ip_input (m=0xc6b6e900) at ../../../netinet/ip_input.c:791
#15 0xc054a09b in netisr_processqueue (ni=0xc067fe58)
at ../../../net/netisr.c:236
#16 0xc054a296 in swi_net (dummy=0x0) at ../../../net/netisr.c:349
#17 0xc04c1bed in ithread_execute_handlers (p=0xc6a7ca78, ie=0xc6a6c000)
at ../../../kern/kern_intr.c:682
#18 0xc04c1d08 in ithread_loop (arg=0xc6a65720)
at ../../../kern/kern_intr.c:766
#19 0xc04c0b9c in fork_exit (callout=0xc04c1cb4 <ithread_loop>,
arg=0xc6a65720, frame=0xe573bd38) at ../../../kern/kern_fork.c:788
#20 0xc05f3a9c in fork_trampoline () at ../../../i386/i386/exception.s:208
(kgdb) bt full
#0 doadump () at pcpu.h:165
No locals.
#1 0xc04d5ba2 in boot (howto=260) at ../../../kern/kern_shutdown.c:409
first_buf_printf = 1
#2 0xc04d5e38 in panic (fmt=0xc0627e51 "%s")
at ../../../kern/kern_shutdown.c:565
td = (struct thread *) 0xc6a7d780
bootopt = 260
newpanic = 0
ap = 0xc6a7d780 "xй╖ф \r╗ф"
buf = "page fault", '\0' <repeats 245 times>
#3 0xc0606394 in trap_fatal (frame=0xe573bad8, eva=0)
at ../../../i386/i386/trap.c:838
code = 40
ss = 40
esp = 0
type = 12
softseg = {ssd_base = 0, ssd_limit = 1048575, ssd_type = 27,
ssd_dpl = 0, ssd_p = 1, ssd_xx = 10, ssd_xx1 = 0, ssd_def32 = 1,
ssd_gran = 1}
msg = 0x0
#4 0xc06060fb in trap_pfault (frame=0xe573bad8, usermode=0, eva=0)
at ../../../i386/i386/trap.c:745
---Type <return> to continue, or q <return> to quit---
va = 0
vm = (struct vmspace *) 0x0
map = 0xc06776e0
rv = 1
ftype = 1 '\001'
td = (struct thread *) 0xc6a7d780
p = (struct proc *) 0xc6a7ca78
#5 0xc0605d59 in trap (frame=
{tf_fs = 8, tf_es = 40, tf_ds = 40, tf_edi = -944673984, tf_esi = -948881320, tf_ebp = -445400288, tf_isp = -445400316, tf_ebx = -949633916, tf_edx = -948881292, tf_ecx = 4, tf_eax = 0, tf_trapno = 12, tf_err = 2, tf_eip = -1068426267, tf_cs = 32, tf_eflags = 590406, tf_esp = -949633836, tf_ss = -949633916})
at ../../../i386/i386/trap.c:435
td = (struct thread *) 0xc6a7d780
p = (struct proc *) 0xc6a7ca78
sticks = 1342177792
type = 12
i = 0
ucode = 0
code = 2
eva = 0
#6 0xc05f3a3a in calltrap () at ../../../i386/i386/exception.s:139
No locals.
---Type <return> to continue, or q <return> to quit---
#7 0xc0511be5 in soisconnected (so=0xc765bc84)
at ../../../kern/uipc_socket2.c:138
head = (struct socket *) 0xc7713858
#8 0xc0552040 in sohasdata (so=0xc7713874, arg=0x0, waitflag=1)
at ../../../netinet/accf_data.c:66
No locals.
#9 0xc051280d in sowakeup (so=0xc765bc84, sb=0xc765bcd4)
at ../../../kern/uipc_socket2.c:422
No locals.
#10 0xc051209a in soisdisconnected (so=0xc765bc84)
at ../../../kern/uipc_socket2.c:196
No locals.
#11 0xc0566c9b in tcp_discardcb (tp=0xc7bfe3a0)
at ../../../netinet/tcp_subr.c:830
q = (struct tseg_qent *) 0x0
inp = (struct inpcb *) 0xc7b16b40
so = (struct socket *) 0xc765bc84
#12 0xc0566cb4 in tcp_close (tp=0x0) at ../../../netinet/tcp_subr.c:851
inp = (struct inpcb *) 0xc7b16b40
#13 0xc0562c66 in tcp_input (m=0xc6b6e900, off0=20)
at ../../../netinet/tcp_input.c:1575
th = (struct tcphdr *) 0xc7bfe3a0
ip = (struct ip *) 0xc7476020
---Type <return> to continue, or q <return> to quit---
---Type <return> to continue, or q <return> to quit---
ipov = (struct ipovly *) 0x4
inp = (struct inpcb *) 0xc7b16b40
optp = (u_char *) 0x0
optlen = 0
len = -943725664
tlen = 0
off = 20
drop_hdrlen = 40
tp = (struct tcpcb *) 0xc7bfe3a0
thflags = 4
so = (struct socket *) 0xc765bc84
todrop = -943725664
acked = -943725664
ourfinisacked = -445400176
needoutput = 0
tiwin = 0
to = {to_flags = 0, to_tsval = 0, to_tsecr = 0, to_mss = 0,
to_requested_s_scale = 0 '\0', to_nsacks = 0 '\0', to_sacks = 0x0}
headlocked = 1
rstreason = -943725664
#14 0xc055acc2 in ip_input (m=0xc6b6e900) at ../../../netinet/ip_input.c:791
ip = (struct ip *) 0xc7476020
ia = (struct in_ifaddr *) 0xc6d89000
---Type <return> to continue, or q <return> to quit---
---Type <return> to continue, or q <return> to quit---
ifa = (struct ifaddr *) 0xc7713874
checkif = 0
hlen = 20
sum = 0
dchg = 0
odst = {s_addr = 62266432}
#15 0xc054a09b in netisr_processqueue (ni=0xc067fe58)
at ../../../net/netisr.c:236
m = (struct mbuf *) 0xc6b6e900
#16 0xc054a296 in swi_net (dummy=0x0) at ../../../net/netisr.c:349
ni = (struct netisr *) 0xc067fe58
bits = 0
i = 4
#17 0xc04c1bed in ithread_execute_handlers (p=0xc6a7ca78, ie=0xc6a6c000)
at ../../../kern/kern_intr.c:682
ih = (struct intr_handler *) 0xc6add8c0
ihn = (struct intr_handler *) 0x0
#18 0xc04c1d08 in ithread_loop (arg=0xc6a65720)
at ../../../kern/kern_intr.c:766
intr_event = (struct intr_thread *) 0xc6a65720
ie = (struct intr_event *) 0xc6a6c000
td = (struct thread *) 0xc6a7d780
p = (struct proc *) 0xc6a7ca78
---Type <return> to continue, or q <return> to quit---
---Type <return> to continue, or q <return> to quit---
#19 0xc04c0b9c in fork_exit (callout=0xc04c1cb4 <ithread_loop>,
arg=0xc6a65720, frame=0xe573bd38) at ../../../kern/kern_fork.c:788
p = (struct proc *) 0xc6a7ca78
td = (struct thread *) 0xc7713874
#20 0xc05f3a9c in fork_trampoline () at ../../../i386/i386/exception.s:208
No locals.(kgdb) where
#0 doadump () at pcpu.h:165
#1 0xc04d5ba2 in boot (howto=260) at ../../../kern/kern_shutdown.c:409
#2 0xc04d5e38 in panic (fmt=0xc0627e51 "%s")
at ../../../kern/kern_shutdown.c:565
#3 0xc0606394 in trap_fatal (frame=0xe573bad8, eva=0)
at ../../../i386/i386/trap.c:838
#4 0xc06060fb in trap_pfault (frame=0xe573bad8, usermode=0, eva=0)
at ../../../i386/i386/trap.c:745
#5 0xc0605d59 in trap (frame=
{tf_fs = 8, tf_es = 40, tf_ds = 40, tf_edi = -944673984, tf_esi = -948881320, tf_ebp = -445400288, tf_isp = -445400316, tf_ebx = -949633916, tf_edx = -948881292, tf_ecx = 4, tf_eax = 0, tf_trapno = 12, tf_err = 2, tf_eip = -1068426267, tf_cs = 32, tf_eflags = 590406, tf_esp = -949633836, tf_ss = -949633916})
at ../../../i386/i386/trap.c:435
#6 0xc05f3a3a in calltrap () at ../../../i386/i386/exception.s:139
#7 0xc0511be5 in soisconnected (so=0xc765bc84)
at ../../../kern/uipc_socket2.c:138
#8 0xc0552040 in sohasdata (so=0xc7713874, arg=0x0, waitflag=1)
at ../../../netinet/accf_data.c:66
#9 0xc051280d in sowakeup (so=0xc765bc84, sb=0xc765bcd4)
at ../../../kern/uipc_socket2.c:422
#10 0xc051209a in soisdisconnected (so=0xc765bc84)
at ../../../kern/uipc_socket2.c:196
---Type <return> to continue, or q <return> to quit---
#11 0xc0566c9b in tcp_discardcb (tp=0xc7bfe3a0)
at ../../../netinet/tcp_subr.c:830
#12 0xc0566cb4 in tcp_close (tp=0x0) at ../../../netinet/tcp_subr.c:851
#13 0xc0562c66 in tcp_input (m=0xc6b6e900, off0=20)
at ../../../netinet/tcp_input.c:1575
#14 0xc055acc2 in ip_input (m=0xc6b6e900) at ../../../netinet/ip_input.c:791
#15 0xc054a09b in netisr_processqueue (ni=0xc067fe58)
at ../../../net/netisr.c:236
#16 0xc054a296 in swi_net (dummy=0x0) at ../../../net/netisr.c:349
#17 0xc04c1bed in ithread_execute_handlers (p=0xc6a7ca78, ie=0xc6a6c000)
at ../../../kern/kern_intr.c:682
#18 0xc04c1d08 in ithread_loop (arg=0xc6a65720)
at ../../../kern/kern_intr.c:766
#19 0xc04c0b9c in fork_exit (callout=0xc04c1cb4 <ithread_loop>,
arg=0xc6a65720, frame=0xe573bd38) at ../../../kern/kern_fork.c:788
#20 0xc05f3a9c in fork_trampoline () at ../../../i386/i386/exception.s:208
(kgdb)
помогите определить в чем дело ?
(kgdb) list *0xc0511be5
0xc0511be5 is in soisconnected (../../../kern/uipc_socket2.c:138).
133 if ((so->so_options & SO_ACCEPTFILTER) == 0) {
134 SOCK_UNLOCK(so);
135 TAILQ_REMOVE(&head->so_incomp, so, so_list);
136 head->so_incqlen--;
137 so->so_qstate &= ~SQ_INCOMP;
138 TAILQ_INSERT_TAIL(&head->so_comp, so, so_list);
139 head->so_qlen++;
140 so->so_qstate |= SQ_COMP;
141 ACCEPT_UNLOCK();
142 sorwakeup(head);
(kgdb) [root@r25-x17 /home/tcp]#
(kgdb) list *0xc0511be5
0xc0511be5 is in soisconnected (../../../kern/uipc_socket2.c:138).
133 if ((so->so_options & SO_ACCEPTFILTER) == 0) {
134 SOCK_UNLOCK(so);
135 TAILQ_REMOVE(&head->so_incomp, so, so_list);
136 head->so_incqlen--;
137 so->so_qstate &= ~SQ_INCOMP;
138 TAILQ_INSERT_TAIL(&head->so_comp, so, so_list);
139 head->so_qlen++;
140 so->so_qstate |= SQ_COMP;
141 ACCEPT_UNLOCK();
142 sorwakeup(head);
(kgdb) [root@r25-x17 /home/tcp]#
fbsd7.0, роутер, уже второй раз падает с очень похожими данными в core.
Подскажите, что можно сделать?icenet# kgdb kernel.debug /var/crash/vmcore.0
[GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
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:
fxp0: Microcode loaded, int_delay: 1000 usec bundle_max: 0
<6>fxp0: promiscuous mode disabled
Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address = 0xc
fault code = supervisor read, page not present
instruction pointer = 0x20:0xc079f1d8
stack pointer = 0x28:0xe421f934
frame pointer = 0x28:0xe421f950
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 35 (irq18: fxp0)
trap number = 12
panic: page fault
cpuid = 0
Uptime: 4d13h43m37s
Physical memory: 978 MB
Dumping 229 MB: 214 198 182 166 150 134 118 102 86 70 54 38 22 6#0 doadump () at pcpu.h:195
195 __asm __volatile("movl %%fs:0,%0" : "=r" (td));
(kgdb) bt
#0 doadump () at pcpu.h:195
#1 0xc07547b7 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409
#2 0xc0754a79 in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:563
#3 0xc0a5653c in trap_fatal (frame=0xe421f8f4, eva=12) at /usr/src/sys/i386/i386/trap.c:899
#4 0xc0a567c0 in trap_pfault (frame=0xe421f8f4, usermode=0, eva=12)
at /usr/src/sys/i386/i386/trap.c:812
#5 0xc0a5716c in trap (frame=0xe421f8f4) at /usr/src/sys/i386/i386/trap.c:490
#6 0xc0a3d0eb in calltrap () at /usr/src/sys/i386/i386/exception.s:139
#7 0xc079f1d8 in m_copydata (m=0x0, off=0, len=164, cp=0xc96f3d5c "i\210")
at /usr/src/sys/kern/uipc_mbuf.c:815
#8 0xc0838e00 in ip_forward (m=0xc9225200, srcrt=0) at /usr/src/sys/netinet/ip_input.c:1307
#9 0xc083a4a3 in ip_input (m=0xc9225200) at /usr/src/sys/netinet/ip_input.c:610
#10 0xc07f41b5 in netisr_dispatch (num=2, m=0xc9225200) at /usr/src/sys/net/netisr.c:185
#11 0xc07ea1f1 in ether_demux (ifp=0xc3fca400, m=0xc9225200)
at /usr/src/sys/net/if_ethersubr.c:834
#12 0xc45fa1cf in ?? ()
#13 0xc3fca400 in ?? ()
#14 0xc9225200 in ?? ()
#15 0x00000003 in ?? ()
#16 0xc9225200 in ?? ()
#17 0xc4468280 in ?? ()
#18 0xc8085360 in ?? ()
#19 0xc4579900 in ?? ()
#20 0xe421fb14 in ?? ()
#21 0xc456b4f7 in ?? ()
#22 0xc4579900 in ?? ()
#23 0xc8085360 in ?? ()
#24 0x00000000 in ?? ()
#25 0xc57ff300 in ?? ()
#26 0xc0c0b6a0 in enumerators ()
#27 0xe421fa90 in ?? ()
#28 0xc0a45355 in lapic_handle_timer (frame=0x0) at /usr/src/sys/i386/i386/local_apic.c:697
Previous frame inner to this frame (corrupt stack?)
(kgdb) quit
>fbsd7.0, роутер, уже второй раз падает с очень похожими данными в core.
>
>Подскажите, что можно сделать?
>без падений проработала машина почти год. После недавней пересборки ядра с поддержкой ipfw-nat и polling стала падать то по несколько раз в день, то по одному разу...
всё прошло после замены железа.
железо было NVIDIA MCP68 с REALTEK-8168 и двухкристальным AMD64.
Стало NVIDIA MCP77 c 4x AMD.на старом железе memtest не выполнял mlock, на новом выполняется.