* [d-kernel] rtlinux package
@ 2004-01-01 9:09 Evgeny Sinelnikov
2004-01-01 9:49 ` Sergey Vlasov
0 siblings, 1 reply; 5+ messages in thread
From: Evgeny Sinelnikov @ 2004-01-01 9:09 UTC (permalink / raw)
To: Алексей
Турбин
Cc: Sergey Vlasov, devel-kernel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Здравствуйте.
Есть готовое решение в плане реализации пакета RTLinux.
Задержка связана с крайней нестабильностью ядра rtlinux c определённым набором
патчей (тех, что изменяют содержимое include/asm-i386/), а также с некоторыми
"опциями" ядра (APM, ACPI, Kernel hacking features). Но даже это не было
главным препятствием. На текущий момент выяснилась причина, весьма странная,
многих нестабильностей на моей машине. Оказалось, что проблема была в выборе
процессора для при сборке ядра. i586 ядра на моём P4 (1.4GHz) падают при
загрузке модулей rtlinux (а именно, rtl.o), хотя ядра, с той же конфигурацией,
но для P4 идут:
- ------------------------------------------------------------------------
- ------------------------------------------------------------------------
Kernel BUG at page_alloc.c:95!
invalid operand: 0000
ksymoops 2.4.9 on i686 2.4.22-rts3-up-alt13. Options used
-v /usr/src/RPM/BUILD/kernel-image-rts3-up-2.4.22-alt13/kernel-source-2.4.22/vmlinux (specified)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.22-rts3-up-alt13/ (default)
-m /boot/System.map-2.4.22-rts3-up-alt13 (default)
Warning (compare_ksyms_lsmod): module reiserfs is in lsmod but not in ksyms, probably no symbols exported
CPU: 0
EIP: 0010:[<c012df04>] Not Tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010248
eax: 00000000 ebx: c1284ff0 ecx: c1284ff0 edx: 00000000
esi: 00000000 edi: 00021000 ebp: ceb755b4 esp: cd951ee4
ds: 0018 es: 0018 ss: 0018
Process insmod (pid: 1475, stackpage=cd951ee4)
Stack: c1284ff0 0d6ff067 00021000 ceb755b4 cd951efc d0d02b96 cd951efc c01088a7
00032000 c1284ff0 0000d6ff 0d6ff067 00021000 c012e855 c012ec7b c1284ff0
c01237a9 c1284ff0 00032000 c0123bc6 0d6ff067 cdd69ec0 cffeb8a0 4014c000
Call Trace: [<d0d02b96>] [<c01088a7>] [<c012e855>] [<c012ec7b>] [<c01237a9>]
[<c0123bc6>] [<c01261e5>] [<c011622e>] [<c011a355>] [<c011a52f>] [<c0108877>]
Code: 0f 0b 5f 00 35 5a 20 c0 89 d8 e8 f1 f1 ff ff 83 7b 28 00 74
>>EIP; c012df04 <__free_pages_ok+24/2fc> <=====
>>ebx; c1284ff0 <_end+faf240/1093b2b0>
>>ecx; c1284ff0 <_end+faf240/1093b2b0>
>>ebp; ceb755b4 <_end+e89f804/1093b2b0>
>>esp; cd951ee4 <_end+d67c134/1093b2b0>
Trace; d0d02b96 <.data.end+2b63/????>
Trace; c01088a7 <restore_all+b/24>
Trace; c012e855 <__free_pages+1d/20>
Trace; c012ec7b <free_page_and_swap_cache+33/38>
Trace; c01237a9 <__free_pte+59/60>
Trace; c0123bc6 <zap_page_range+1b6/26c>
Trace; c01261e5 <exit_mmap+b5/118>
Trace; c011622e <mmput+4a/60>
Trace; c011a355 <do_exit+a1/254>
Trace; c011a52f <sys_exit+f/10>
Trace; c0108877 <system_call+47/50>
Code; c012df04 <__free_pages_ok+24/2fc>
00000000 <_EIP>:
Code; c012df04 <__free_pages_ok+24/2fc> <=====
0: 0f 0b ud2a <=====
Code; c012df06 <__free_pages_ok+26/2fc>
2: 5f pop %edi
Code; c012df07 <__free_pages_ok+27/2fc>
3: 00 35 5a 20 c0 89 add %dh,0x89c0205a
Code; c012df0d <__free_pages_ok+2d/2fc>
9: d8 e8 fsubr %st(0),%st
Code; c012df0f <__free_pages_ok+2f/2fc>
b: f1 icebp
Code; c012df10 <__free_pages_ok+30/2fc>
c: f1 icebp
Code; c012df11 <__free_pages_ok+31/2fc>
d: ff (bad)
Code; c012df12 <__free_pages_ok+32/2fc>
e: ff 83 7b 28 00 74 incl 0x7400287b(%ebx)
<0>Kernel panic: Aiee, killing interrupt handler!
1 warning issued. Results may not be reliable.
- ------------------------------------------------------------------------
ksymoops 2.4.9 on i686 2.4.22-rts3-up-alt13. Options used
-v /usr/src/RPM/BUILD/kernel-image-rts3-up-2.4.22-alt13/kernel-source-2.4.22/vmlinux (specified)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.22-rts3-up-alt13/ (default)
-m /boot/System.map-2.4.22-rts3-up-alt13 (default)
Warning (compare_ksyms_lsmod): module reiserfs is in lsmod but not in ksyms, probably no symbols exported
Oops: 0007
CPU: 0
EIP: 0023:[<08070b6e>] Not Tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010246
eax: 00000d3d ebx: 00000d57 ecx: 00000000 edx: 00000000
esi: bffff2a0 edi: 00000000 ebp: bffff3b8 esp: bffff290
ds: 002b es: 002b ss: 002b
Process regression.sh (pid: 3389, stackpage=c9813000)
<0>Kernel panic: Aiee, killing interrupt handler!
Warning (Oops_read): Code line not seen, dumping what data is available
>>EIP; 08070b6e Before first symbol <=====
2 warnings issued. Results may not be reliable.
- ------------------------------------------------------------------------
- ------------------------------------------------------------------------
Меня интересует вопрос по поводу размещения модулей и библиотек
rtlinux (для каждого из ядер они свои).
Текущее разделение на пакеты следущее:
1) стандартное ядро с дополнительным патчем: kernel-feat-rtl-2003.10.28-alt1.src.rpm
2) модули kernel-rtlinux-2.4.22-rtl-up-3.2-alt1 (может быть стоит kernel-modules-rtlinux-2.4.22-rtl-up-3.2-alt1 ):
Name : kernel-rtlinux-2.4.22-rtl-up Relocations: (not relocateable)
Version : 3.2 Vendor: ALT Linux Team
Release : alt1 Build Date: Вск 14 Дек 2003 03:22:29
Install date: (not installed) Build Host: localhost.localdomain
Group : Система/Ядро и оборудование Source RPM: kernel-rtlinux-2.4.22-rtl-up-3.2-alt1.src.rpm
Size : 2310621 License: GPL
Packager : Evgeny Sinelnikov <sin@altlinux.ru>
URL : http://www.rlinux-gpl.org/
Summary : Modules for the RTLinux kernel
Description :
This package contains the RTLinux modules that is used to
extension your system with hard real time scheduler. Also it contains
few specific real time modules and libraries like rtl_fifo.
/lib/modules/2.4.22-rtl-up-alt12/misc 272 1071361292 040755 root root 0 0 0 X
/lib/modules/2.4.22-rtl-up-alt12/misc/mbuff.o 48 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/mbuff.o
/lib/modules/2.4.22-rtl-up-alt12/misc/psc.o 46 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/psc.o
/lib/modules/2.4.22-rtl-up-alt12/misc/rtl.o 46 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl.o
/lib/modules/2.4.22-rtl-up-alt12/misc/rtl_fifo.o 51 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_fifo.o
/lib/modules/2.4.22-rtl-up-alt12/misc/rtl_posixio.o 54 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_posixio.o
/lib/modules/2.4.22-rtl-up-alt12/misc/rtl_sched.o 52 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_sched.o
/lib/modules/2.4.22-rtl-up-alt12/misc/rtl_time.o 51 1071361292 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_time.o
/lib/modules/2.4.22-rtl-up-alt12/misc/rtsock.o 49 1071361292 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtsock.o
/usr/rtlinux-2.4.22-rtl-up-alt12/bin 104 1071361324 040755 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/bin/rtl-config 6329 1071361324 bb47120e4b44f0a08f52f464aa85f3ea 0100755 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/bin/rtlinux 24 1071361324 0120777 root root 0 0 0 /etc/rc.d/init.d/rtlinux
/usr/rtlinux-2.4.22-rtl-up-alt12/modules 272 1071361292 040755 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/mbuff.o 275582 1071361291 2dd35d3a7d4aced05c2108390f2d0a48 0100644 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/psc.o 256796 1071361291 f5fb3bbf5d830069848912dabd939e87 0100644 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl.o 256338 1071361291 b0fbdbb35c47c6571beaef9ab737539a 0100644 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_fifo.o 252000 1071361291 1977e83a58716c1cf6c9365f490d08c0 0100644 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_posixio.o 244268 1071361291 15f84f66fbf75f136906520c3c605b03 0100644 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_sched.o 414841 1071361291 65acbd6bdd7f0e906a497fdd772a8993 0100644 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_time.o 240579 1071361291 a7617fa50e2a33f08e0ae3088fbfbeb0 0100644 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtsock.o 363888 1071361292 53bc12c12ea03e435e9e4c5f74d6c7ca 0100644 root root 0 0 0 X
Здесь модули лежат /usr/rtlinux-2.4.22-rtl-up-alt12/modules/, как это сделано
в при стандартной установке. Кроме того этот пакет требует
kernel-rtlinux-common-3.2-alt1, который содержит общие файлы для данной версии
rtlinux,а также скрипты, поправляющие ссылку /usr/rtlinux для текущего ядра,
подобно kheaders-common.
3) kernel-rtlinux-regression-rtl-up-2.4.22-3.2-alt1
пакет минимального тестирования (лежит в /usr/rtlinux-2.4.22-rtl-up-alt12/regression)
4) kernel-rtlinux-devel-rtl-up-2.4.22-3.2-alt1
пакет для разработки (лежит в /usr/rtlinux-2.4.22-rtl-up-alt12/{include,lib})
Хотелось бы знать замечания тех, кто, может быть, ожидает этот пакет или
использует rtlinux.
Приму во внимание любые предложения.
- --
Sin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)
iD8DBQE/8+PmHC/AO6kh2soRAnfeAJ0RskBHNavSDcjAeEprQw6T9ySEuQCgn+BK
YHwmAgWUyTHCeqWosh5au8A=
=lN9F
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [d-kernel] rtlinux package
2004-01-01 9:09 [d-kernel] rtlinux package Evgeny Sinelnikov
@ 2004-01-01 9:49 ` Sergey Vlasov
2004-01-01 9:56 ` Alexander Bokovoy
0 siblings, 1 reply; 5+ messages in thread
From: Sergey Vlasov @ 2004-01-01 9:49 UTC (permalink / raw)
To: devel-kernel
[-- Attachment #1: Type: text/plain, Size: 6413 bytes --]
On Thu, Jan 01, 2004 at 12:09:49PM +0300, Evgeny Sinelnikov wrote:
> Есть готовое решение в плане реализации пакета RTLinux.
> Задержка связана с крайней нестабильностью ядра rtlinux c определённым набором
> патчей (тех, что изменяют содержимое include/asm-i386/), а также с некоторыми
> "опциями" ядра (APM, ACPI, Kernel hacking features). Но даже это не было
> главным препятствием. На текущий момент выяснилась причина, весьма странная,
> многих нестабильностей на моей машине. Оказалось, что проблема была в выборе
> процессора для при сборке ядра. i586 ядра на моём P4 (1.4GHz) падают при
> загрузке модулей rtlinux (а именно, rtl.o), хотя ядра, с той же конфигурацией,
> но для P4 идут:
[ужасы skip]
Похоже, где-то что-то портится в памяти. Возможно, причина в том, что
где-то происходит переполнение буфера, но при сборке для P4 из-за
большего значения CONFIG_X86_L1_CACHE_SHIFT (7, вместо 5 для 586) эти
данные попадают в неиспользуемые области для выравнивания, поэтому
ошибка остаётся незамеченной.
Можно попробовать собрать ядро с CONFIG_DEBUG_SLAB (Debug memory
allocations) и посмотреть, что будет - возможно, ошибка при этом будет
отловлена ближе к месту её возникновения.
> Меня интересует вопрос по поводу размещения модулей и библиотек
> rtlinux (для каждого из ядер они свои).
> Текущее разделение на пакеты следущее:
> 1) стандартное ядро с дополнительным патчем: kernel-feat-rtl-2003.10.28-alt1.src.rpm
> 2) модули kernel-rtlinux-2.4.22-rtl-up-3.2-alt1 (может быть стоит kernel-modules-rtlinux-2.4.22-rtl-up-3.2-alt1 ):
Вообще-то при нашей системе сборки это будет
kernel-modules-rtlinux-rtl-up-3.2-alt1.1 (это если собирать
автоматизированно из CVS - в release добавляется номер сборки ядра).
Версия ядра там не нужна - при смене ядра придётся увеличить первую
часть release.
> Name : kernel-rtlinux-2.4.22-rtl-up Relocations: (not relocateable)
> Version : 3.2 Vendor: ALT Linux Team
> Release : alt1 Build Date: Вск 14 Дек 2003 03:22:29
> Install date: (not installed) Build Host: localhost.localdomain
> Group : Система/Ядро и оборудование Source RPM: kernel-rtlinux-2.4.22-rtl-up-3.2-alt1.src.rpm
> Size : 2310621 License: GPL
> Packager : Evgeny Sinelnikov <sin@altlinux.ru>
> URL : http://www.rlinux-gpl.org/
> Summary : Modules for the RTLinux kernel
> Description :
> This package contains the RTLinux modules that is used to
> extension your system with hard real time scheduler. Also it contains
> few specific real time modules and libraries like rtl_fifo.
> /lib/modules/2.4.22-rtl-up-alt12/misc 272 1071361292 040755 root root 0 0 0 X
> /lib/modules/2.4.22-rtl-up-alt12/misc/mbuff.o 48 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/mbuff.o
> /lib/modules/2.4.22-rtl-up-alt12/misc/psc.o 46 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/psc.o
> /lib/modules/2.4.22-rtl-up-alt12/misc/rtl.o 46 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl.o
> /lib/modules/2.4.22-rtl-up-alt12/misc/rtl_fifo.o 51 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_fifo.o
> /lib/modules/2.4.22-rtl-up-alt12/misc/rtl_posixio.o 54 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_posixio.o
> /lib/modules/2.4.22-rtl-up-alt12/misc/rtl_sched.o 52 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_sched.o
> /lib/modules/2.4.22-rtl-up-alt12/misc/rtl_time.o 51 1071361292 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_time.o
> /lib/modules/2.4.22-rtl-up-alt12/misc/rtsock.o 49 1071361292 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtsock.o
> /usr/rtlinux-2.4.22-rtl-up-alt12/bin 104 1071361324 040755 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/bin/rtl-config 6329 1071361324 bb47120e4b44f0a08f52f464aa85f3ea 0100755 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/bin/rtlinux 24 1071361324 0120777 root root 0 0 0 /etc/rc.d/init.d/rtlinux
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules 272 1071361292 040755 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/mbuff.o 275582 1071361291 2dd35d3a7d4aced05c2108390f2d0a48 0100644 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/psc.o 256796 1071361291 f5fb3bbf5d830069848912dabd939e87 0100644 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl.o 256338 1071361291 b0fbdbb35c47c6571beaef9ab737539a 0100644 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_fifo.o 252000 1071361291 1977e83a58716c1cf6c9365f490d08c0 0100644 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_posixio.o 244268 1071361291 15f84f66fbf75f136906520c3c605b03 0100644 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_sched.o 414841 1071361291 65acbd6bdd7f0e906a497fdd772a8993 0100644 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_time.o 240579 1071361291 a7617fa50e2a33f08e0ae3088fbfbeb0 0100644 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtsock.o 363888 1071361292 53bc12c12ea03e435e9e4c5f74d6c7ca 0100644 root root 0 0 0 X
>
> Здесь модули лежат /usr/rtlinux-2.4.22-rtl-up-alt12/modules/, как это сделано
> в при стандартной установке. Кроме того этот пакет требует
> kernel-rtlinux-common-3.2-alt1, который содержит общие файлы для данной версии
> rtlinux,а также скрипты, поправляющие ссылку /usr/rtlinux для текущего ядра,
> подобно kheaders-common.
Опять это не лезет в FHS :(
И обязательно ли класть модули в /usr? Если уж скрипты так хотят их
там видеть, почему бы не сделать наоборот - реальные файлы в
/lib/modules, а в /usr/... - ссылки на них?
> 3) kernel-rtlinux-regression-rtl-up-2.4.22-3.2-alt1
> пакет минимального тестирования (лежит в /usr/rtlinux-2.4.22-rtl-up-alt12/regression)
> 4) kernel-rtlinux-devel-rtl-up-2.4.22-3.2-alt1
> пакет для разработки (лежит в /usr/rtlinux-2.4.22-rtl-up-alt12/{include,lib})
Если эти файлы действительно привязаны к конкретной сборке ядра,
вероятно, пакет должен называться как-то вроде
kernel-headers-rtlinux-rtl-up (см. пример в kernel-modules-v4l-*,
kernel-headers-v4l-*).
> Хотелось бы знать замечания тех, кто, может быть, ожидает этот пакет или
> использует rtlinux.
> Приму во внимание любые предложения.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [d-kernel] rtlinux package
2004-01-01 9:49 ` Sergey Vlasov
@ 2004-01-01 9:56 ` Alexander Bokovoy
2004-01-02 19:26 ` Evgeny Sinelnikov
0 siblings, 1 reply; 5+ messages in thread
From: Alexander Bokovoy @ 2004-01-01 9:56 UTC (permalink / raw)
To: ALT Linux kernel packages development
On Thu, Jan 01, 2004 at 12:49:17PM +0300, Sergey Vlasov wrote:
> On Thu, Jan 01, 2004 at 12:09:49PM +0300, Evgeny Sinelnikov wrote:
> > Есть готовое решение в плане реализации пакета RTLinux.
> > Задержка связана с крайней нестабильностью ядра rtlinux c определённым набором
> > патчей (тех, что изменяют содержимое include/asm-i386/), а также с некоторыми
> > "опциями" ядра (APM, ACPI, Kernel hacking features). Но даже это не было
> > главным препятствием. На текущий момент выяснилась причина, весьма странная,
> > многих нестабильностей на моей машине. Оказалось, что проблема была в выборе
> > процессора для при сборке ядра. i586 ядра на моём P4 (1.4GHz) падают при
> > загрузке модулей rtlinux (а именно, rtl.o), хотя ядра, с той же конфигурацией,
> > но для P4 идут:
> [ужасы skip]
>
> Похоже, где-то что-то портится в памяти. Возможно, причина в том, что
> где-то происходит переполнение буфера, но при сборке для P4 из-за
> большего значения CONFIG_X86_L1_CACHE_SHIFT (7, вместо 5 для 586) эти
> данные попадают в неиспользуемые области для выравнивания, поэтому
> ошибка остаётся незамеченной.
Кстати, на схожую тему -- имеющаяся конфигурация для 2.6.0 в наших
предварительных сборках не работает на Pentium M, совсем не работает --
сразу после передачи управления загрузчиком ядру происходит перезагрузка
машины.
Расследование показало, что по крайней мере виноваты
CONFIG_X86_L1_CACHE_SHIFT и CONFIG_X86_GENERIC. После этого, по крайней
мере, дело доходит до initscripts. Правда, далее кто-то поедает всю память
и система загрузиться до конца не может.
--
/ Alexander Bokovoy
Samba Team http://www.samba.org/
ALT Linux Team http://www.altlinux.org/
Midgard Project Ry http://www.midgard-project.org/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [d-kernel] rtlinux package
2004-01-01 9:56 ` Alexander Bokovoy
@ 2004-01-02 19:26 ` Evgeny Sinelnikov
2004-01-02 20:42 ` Sergey Vlasov
0 siblings, 1 reply; 5+ messages in thread
From: Evgeny Sinelnikov @ 2004-01-02 19:26 UTC (permalink / raw)
To: ALT Linux kernel packages development
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
> > Похоже, где-то что-то портится в памяти. Возможно, причина в том, что
> > где-то происходит переполнение буфера, но при сборке для P4 из-за
> > большего значения CONFIG_X86_L1_CACHE_SHIFT (7, вместо 5 для 586) эти
> > данные попадают в неиспользуемые области для выравнивания, поэтому
> > ошибка остаётся незамеченной.
>
> Кстати, на схожую тему -- имеющаяся конфигурация для 2.6.0 в наших
> предварительных сборках не работает на Pentium M, совсем не работает --
> сразу после передачи управления загрузчиком ядру происходит перезагрузка
> машины.
>
> Расследование показало, что по крайней мере виноваты
> CONFIG_X86_L1_CACHE_SHIFT и CONFIG_X86_GENERIC. После этого, по крайней
> мере, дело доходит до initscripts. Правда, далее кто-то поедает всю память
> и система загрузиться до конца не может.
Тест памяти (memtest-3.0) ошибок не выявил. Хотя это и было на 192М вместо
256М (поражаюсь вашей прозорливостью - с утра машина не загрузилась в
положенные 256Мб указанные параметром ядра, BIOS, как и memtest, не
досчитались 64Мб; кстати это уже второй случай, до последнего времени я
грешил на перебои с питанием, теперь даже не знаю, что и думать, хотя
напряжение в сети, в последние дни, тоже оставляло желать лучшего).
Попытка включить CONFIG_DEBUG_SLAB дала следующий результат:
- ----------------------------------------------------------------------------
ksymoops 2.4.9 on i686 2.4.22-rts4-up-alt13. Options used
-v /usr/src/RPM/BUILD/kernel-image-rts4-up-2.4.22-alt13/kernel-source-2.4.22/vmlinux (specified)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.22-rts4-up-alt13/ (default)
-m /boot/System.map-2.4.22-rts4-up-alt13 (default)
Warning (compare_ksyms_lsmod): module reiserfs is in lsmod but not in ksyms, probably no symbols exported
CPU: 0
EIP: 0010:[<c01150b9>] Not Tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010246
eax: 00000018 ebx: 00000000 ecx: c9ac2000 edx: cbfec764
esi: fffffe00 edi: c9ac2000 ebp: c9ac3f84 esp: c9ac3f60
ds: 0018 es: 0018 ss: 0018
Process regression.sh (pid: 1429, stackpage=c9ac3000)
Stack: c0204dde 00000000 fffffe00 c9ac2000 c011631d 00000200 00000000 c9ac2000
00000200 c9ac3fbc c011ad6f c9ac2000 00000000 00000000 c9ac3fac 00000000
c9ac2000 00000000 00000000 00000000 c9ac2000 c9ac20bc c9ac20bc bffff348
Call Trace: [<c0111631d>] [<c01ad6f>] [<c0108ae7>]
Code: 0f 0b 34 02 d6 4d 20 c0 83 c4 04 8b 4d f4 c1 e1 05 81 c1 20
>>EIP; c01150b9 <schedule+4d/330> <=====
>>ecx; c9ac2000 <_end+97ea230/c939290>
>>edx; cbfec764 <_end+bd14994/c939290>
>>edi; c9ac2000 <_end+97ea230/c939290>
>>ebp; c9ac3f84 <_end+97ec1b4/c939290>
>>esp; c9ac3f60 <_end+97ec190/c939290>
Trace; c0111631d <END_OF_CODE+b3441726a/????>
Trace; 0c01ad6f Before first symbol
Trace; c0108ae7 <system_call+47/50>
Code; c01150b9 <schedule+4d/330>
00000000 <_EIP>:
Code; c01150b9 <schedule+4d/330> <=====
0: 0f 0b ud2a <=====
Code; c01150bb <schedule+4f/330>
2: 34 02 xor $0x2,%al
Code; c01150bd <schedule+51/330>
4: d6 (bad)
Code; c01150be <schedule+52/330>
5: 4d dec %ebp
Code; c01150bf <schedule+53/330>
6: 20 c0 and %al,%al
Code; c01150c1 <schedule+55/330>
8: 83 c4 04 add $0x4,%esp
Code; c01150c4 <schedule+58/330>
b: 8b 4d f4 mov 0xfffffff4(%ebp),%ecx
Code; c01150c7 <schedule+5b/330>
e: c1 e1 05 shl $0x5,%ecx
Code; c01150ca <schedule+5e/330>
11: 81 c1 20 00 00 00 add $0x20,%ecx
<0>Kernel panic: Aiee, killing interrupt handler!
1 warning issued. Results may not be reliable.
- ----------------------------------------------------------------------------
Не знаю насколько это показательно, потому что самая частая
ошибка выглядит так (предыдущая была первой, но появилась
всего лишь однажды):
- ----------------------------------------------------------------------------
ksymoops 2.4.9 on i686 2.4.22-rts4-up-alt13. Options used
-v /usr/src/RPM/BUILD/kernel-image-rts4-up-2.4.22-alt13/kernel-source-2.4.22/vmlinux (specified)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.22-rts4-up-alt13/ (default)
-m /boot/System.map-2.4.22-rts4-up-alt13 (default)
Warning (compare_ksyms_lsmod): module reiserfs is in lsmod but not in ksyms, probably no symbols exported
Oops: 0007
CPU: 0
EIP: 0023:[<08072650>] Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010246
eax: 00000000 ebx: 080cfd88 ecx: 080cb008 edx: 00000000
esi: 00000000 edi: 080caa08 ebp: bffff1f8 esp: bffff1d0
ds: 002b es: 002b ss: 002b
Process regression.sh (pid: 1958, stackpage=c5b17000)
<0>Kernel panic: Aiee, killing interrupt handler!
Warning (Oops_read): Code line not seen, dumping what data is available
>>EIP; 08072650 Before first symbol <=====
2 warnings issued. Results may not be reliable.
PS: Какой смысл имеет значение CONFIG_X86_L1_CACHE_SHIFT? Для чего оно
используется? Если я правильно понял, в данном случае, оно определяет
выравнивание на 16 и 64 байта. Это верно? Где это может быть критично?
- --
Sin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)
iD8DBQE/9cYMHC/AO6kh2soRAjnEAJwKZspBBiFy0VpaaEuUJBea7l59JQCg2H4F
muGlAfONAzPXblcruNERIGM=
=o2fF
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [d-kernel] rtlinux package
2004-01-02 19:26 ` Evgeny Sinelnikov
@ 2004-01-02 20:42 ` Sergey Vlasov
0 siblings, 0 replies; 5+ messages in thread
From: Sergey Vlasov @ 2004-01-02 20:42 UTC (permalink / raw)
To: ALT Linux kernel packages development
[-- Attachment #1: Type: text/plain, Size: 5896 bytes --]
On Fri, Jan 02, 2004 at 10:26:57PM +0300, Evgeny Sinelnikov wrote:
> Тест памяти (memtest-3.0) ошибок не выявил. Хотя это и было на 192М вместо
> 256М (поражаюсь вашей прозорливостью - с утра машина не загрузилась в
> положенные 256Мб указанные параметром ядра, BIOS, как и memtest, не
> досчитались 64Мб; кстати это уже второй случай, до последнего времени я
> грешил на перебои с питанием, теперь даже не знаю, что и думать, хотя
> напряжение в сети, в последние дни, тоже оставляло желать лучшего).
А по какой причине был добавлен параметр mem=...? Ситуации, когда
автоматическое определение объёма памяти не работает, сейчас
встречаются крайне редко.
Вообще симптомы весьма нехорошие...
> Попытка включить CONFIG_DEBUG_SLAB дала следующий результат:
>
> - ----------------------------------------------------------------------------
> ksymoops 2.4.9 on i686 2.4.22-rts4-up-alt13. Options used
> -v /usr/src/RPM/BUILD/kernel-image-rts4-up-2.4.22-alt13/kernel-source-2.4.22/vmlinux (specified)
> -k /proc/ksyms (default)
> -l /proc/modules (default)
> -o /lib/modules/2.4.22-rts4-up-alt13/ (default)
> -m /boot/System.map-2.4.22-rts4-up-alt13 (default)
>
> Warning (compare_ksyms_lsmod): module reiserfs is in lsmod but not in ksyms, probably no symbols exported
> CPU: 0
> EIP: 0010:[<c01150b9>] Not Tainted
> Using defaults from ksymoops -t elf32-i386 -a i386
> EFLAGS: 00010246
> eax: 00000018 ebx: 00000000 ecx: c9ac2000 edx: cbfec764
> esi: fffffe00 edi: c9ac2000 ebp: c9ac3f84 esp: c9ac3f60
> ds: 0018 es: 0018 ss: 0018
> Process regression.sh (pid: 1429, stackpage=c9ac3000)
> Stack: c0204dde 00000000 fffffe00 c9ac2000 c011631d 00000200 00000000 c9ac2000
> 00000200 c9ac3fbc c011ad6f c9ac2000 00000000 00000000 c9ac3fac 00000000
> c9ac2000 00000000 00000000 00000000 c9ac2000 c9ac20bc c9ac20bc bffff348
> Call Trace: [<c0111631d>] [<c01ad6f>] [<c0108ae7>]
> Code: 0f 0b 34 02 d6 4d 20 c0 83 c4 04 8b 4d f4 c1 e1 05 81 c1 20
>
>
> >>EIP; c01150b9 <schedule+4d/330> <=====
>
> >>ecx; c9ac2000 <_end+97ea230/c939290>
> >>edx; cbfec764 <_end+bd14994/c939290>
> >>edi; c9ac2000 <_end+97ea230/c939290>
> >>ebp; c9ac3f84 <_end+97ec1b4/c939290>
> >>esp; c9ac3f60 <_end+97ec190/c939290>
>
> Trace; c0111631d <END_OF_CODE+b3441726a/????>
> Trace; 0c01ad6f Before first symbol
> Trace; c0108ae7 <system_call+47/50>
>
> Code; c01150b9 <schedule+4d/330>
> 00000000 <_EIP>:
> Code; c01150b9 <schedule+4d/330> <=====
> 0: 0f 0b ud2a <=====
Ну это опять таки явный вызов BUG()...
> Code; c01150bb <schedule+4f/330>
> 2: 34 02 xor $0x2,%al
...причём, если kernel/sched.c не патчился, и строка 564 осталась на
месте, это Scheduling in interrupt (что вполне согласуется с
появившимся потом killing interrupt handler).
> Code; c01150bd <schedule+51/330>
> 4: d6 (bad)
> Code; c01150be <schedule+52/330>
> 5: 4d dec %ebp
> Code; c01150bf <schedule+53/330>
> 6: 20 c0 and %al,%al
> Code; c01150c1 <schedule+55/330>
> 8: 83 c4 04 add $0x4,%esp
> Code; c01150c4 <schedule+58/330>
> b: 8b 4d f4 mov 0xfffffff4(%ebp),%ecx
> Code; c01150c7 <schedule+5b/330>
> e: c1 e1 05 shl $0x5,%ecx
> Code; c01150ca <schedule+5e/330>
> 11: 81 c1 20 00 00 00 add $0x20,%ecx
>
> <0>Kernel panic: Aiee, killing interrupt handler!
>
> 1 warning issued. Results may not be reliable.
> - ----------------------------------------------------------------------------
>
> Не знаю насколько это показательно, потому что самая частая
> ошибка выглядит так (предыдущая была первой, но появилась
> всего лишь однажды):
>
> - ----------------------------------------------------------------------------
> ksymoops 2.4.9 on i686 2.4.22-rts4-up-alt13. Options used
> -v /usr/src/RPM/BUILD/kernel-image-rts4-up-2.4.22-alt13/kernel-source-2.4.22/vmlinux (specified)
> -k /proc/ksyms (default)
> -l /proc/modules (default)
> -o /lib/modules/2.4.22-rts4-up-alt13/ (default)
> -m /boot/System.map-2.4.22-rts4-up-alt13 (default)
>
> Warning (compare_ksyms_lsmod): module reiserfs is in lsmod but not in ksyms, probably no symbols exported
> Oops: 0007
> CPU: 0
> EIP: 0023:[<08072650>] Not tainted
> Using defaults from ksymoops -t elf32-i386 -a i386
> EFLAGS: 00010246
> eax: 00000000 ebx: 080cfd88 ecx: 080cb008 edx: 00000000
> esi: 00000000 edi: 080caa08 ebp: bffff1f8 esp: bffff1d0
> ds: 002b es: 002b ss: 002b
> Process regression.sh (pid: 1958, stackpage=c5b17000)
> <0>Kernel panic: Aiee, killing interrupt handler!
> Warning (Oops_read): Code line not seen, dumping what data is available
>
>
> >>EIP; 08072650 Before first symbol <=====
Адрес явно из userspace, да и код 0007 - (user-mode, write, protection
fault). А вот почему он превратился в Oops, а не в SIGSEGV...
получается, что userspace-код был вызван в процессе обработки
прерывания. Т.е. тут что-то не в порядке с обработкой прерываний
(насколько я помню, там rtlinux такое выделывает...).
> PS: Какой смысл имеет значение CONFIG_X86_L1_CACHE_SHIFT? Для чего оно
> используется? Если я правильно понял, в данном случае, оно определяет
> выравнивание на 16 и 64 байта. Это верно? Где это может быть критично?
По всему ядру достаточно переменных, помеченных __cacheline_aligned,
да и в функциях распределения памяти используется SLAB_HWCACHE_ALIGN
(в частности, для struct request, struct dentry, struct buffer_head,
struct file, struct dquot, struct kiobuf, struct inode... дальше
искать надоело). Т.е. распределение памяти при изменении
CONFIG_X86_L1_CACHE_SHIFT может существенно отличаться, из-за чего
некоторые ошибки могут проявляться только при определённых значениях.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2004-01-02 20:42 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-01 9:09 [d-kernel] rtlinux package Evgeny Sinelnikov
2004-01-01 9:49 ` Sergey Vlasov
2004-01-01 9:56 ` Alexander Bokovoy
2004-01-02 19:26 ` Evgeny Sinelnikov
2004-01-02 20:42 ` Sergey Vlasov
ALT Linux kernel packages development
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel-kernel/0 devel-kernel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel-kernel devel-kernel/ http://lore.altlinux.org/devel-kernel \
devel-kernel@altlinux.org devel-kernel@altlinux.ru devel-kernel@altlinux.com
public-inbox-index devel-kernel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel-kernel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git